Hi Juerd,
* Juerd Waalboer <[email protected]> [2007-05-18 18:15]:
> Can I get a copy of your vimrc? :)
sure, attached.
I’ve been wanting to HTMLify it and update the copy at
<http://plasmasturm.org/code/dotfiles/dot.vimrc>, but as
with so many things, I’ve not gotten around to it yet.
Regards,
--
Aristotle Pagaltzis // <http://plasmasturm.org/>
set nocompatible
" TODO
" :help folding
" :help auto-format " for mail?
augroup User
" safeguard for re-sourcing
autocmd!
" HACK: I don't want a .gvimrc but some stuff gets reset during GUI init,
" therefore re-source .vimrc at GUI start.
" Unfortunately re-sourcing isn't inherently idempotent, so gotta be careful
if has( "gui" )
autocmd GUIEnter * source <sfile>
endif
" editor behaviour
set autoindent " can't live without it
set copyindent " stick to the file's existing indent format
set tabstop=4 " tabs displayed at 4 columns
set softtabstop=4 " tab key shifts by 4 columns
set shiftwidth=4 " indentation at 4 columns
set shiftround " always in-/outdent to next tabstop
set backspace=2 " allow backspacing over indent,eol,start
set nojoinspaces " don't treat [.?!] specially when joining lines.
set nostartofline " don't jump to start of line on paging motions
set autowrite " auto-save prior to :! :make and others
set noswapfile " don't litter
set nobackup " don't litter
set nowritebackup " really, don't litter
set confirm " ask interactively instead of requiring a ! on commands
set history=2000 " 100x the default
set undolevels=5000 " 5x the default
" FIXME FIXME FIXME set viminfo
"set formatoptions+=n formatlistpat="^\s*\(\d\+[\]:.)}\t ]\|[*-]\)\s*" "
recognize numbered and bulleted lists when formatting
if exists( "&encoding" )
set encoding=utf-8 " use UTF-8 internally
set fileencodings=utf-8,iso-8859-15 " assume files are UTF-8; if that
fails, use Latin1
endif
if exists( ":filetype" )
filetype plugin indent on
runtime ftplugin/man.vim " to have :Man available
endif
" display setup
syntax on
set incsearch " incremental search is convenient
set ruler " show cursor Y,X in status line
set number " show line numbers
set showcmd " show (partial) command in status line
set report=1 " threshold for reporting how many lines were affected by a
:cmd
set linebreak " word wrap mode
set scrolloff=4 " scroll file when cursor gets this close to edge of window
set sidescrolloff=2 " ... or to other edge of window
set winminheight=0 " don't try to keep windows visible
set laststatus=2 " always show status line
set mouse=a " be mouse-aware, in all modes
set nomousehide " hidden pointer = disorienting
set lazyredraw " speed up macros
set noerrorbells " shut up
set visualbell " shut up
set t_vb= " no really, shut up
" make good typography easy to type
if has( "digraphs" )
digraphs -- 8211 " en-dash
digraphs ` 8216 " single left quote
digraphs ' 8217 " single right quote
digraphs `` 8220 " double left quote
digraphs '' 8221 " double right quote
digraphs ,, 8222 " double bottom quote
digraphs ** 8226 " bullet
digraphs .. 8230 " horizontal ellipsis
endif
" missing ZZ and ZQ counterparts:
" quick save-everything and quit-everything
nnoremap ZS :w<CR>
nnoremap ZX :qa<CR>
" break undo cycle at certain keys -- better granularity for undoing insert
mode work
" FIXME: do I need this? probably obsoleted by Vim 7 undo-branches, since
" motivation was to avoid the occasional loss of large inserts
" due to accidental edits erasing the redo list after undo
inoremap <CR> <BS><C-G>u
inoremap <CR> <CR><C-G>u
inoremap <Space> <Space><C-G>u
inoremap <Del> <C-G>u<Del>
inoremap <C-W> <C-G>u<C-W>
" much easier window switching
map <C-J> <C-W>j
map <C-K> <C-W>k
" whoohoo: Alt-LeftMouse for visual block selections
noremap <M-LeftMouse> <4-LeftMouse>
inoremap <M-LeftMouse> <4-LeftMouse>
onoremap <M-LeftMouse> <C-C><4-LeftMouse>
noremap <M-LeftDrag> <LeftDrag>
inoremap <M-LeftDrag> <LeftDrag>
onoremap <M-LeftDrag> <C-C><LeftDrag>
" keep current directory synchronised to the basedir of the current buffer,
" paying special attention to netrw stuff
if has( 'netbeans_intg' ) || has( 'sun_workshop' )
set autochdir " easy!
elseif exists( ':lcd' )
autocmd BufEnter * if bufname( "" ) !~ '^[[:alnum:]]*://' | silent!
exec "lcd" escape( matchstr( expand( '%:p:h' ), '^\(sudo:\)\?\zs.*' ), ' \' ) |
endif
else
" good grief, we're riding a dinosaur
autocmd BufEnter * if bufname( "" ) !~ '^[[:alnum:]]*://' | cd %:p:h |
endif
endif
" gooey settings
if has( "gui_running" ) " has( 'gui' ) alone is insufficient
set guioptions-=t " no tear-off menu items
set guioptions-=T " no toolbar
set guioptions+=c " use cmdline prompt instead of dialog windows for
confirmation
try | colorscheme slate | catch | colorscheme desert | endtry " XXX:
slate is now moria, give it a spin
if has( "gui_gtk2" )
set columns=160 lines=58
set guifont=Andale\ Mono\ 11
elseif has( "gui_win32" )
try | set guifont=Consolas:h10:cANSI | catch | set
guifont=Andale_Mono:h10:cANSI | endtry
elseif has( "gui_mac" )
set guifont=Monaco:h12
set columns=80 lines=45
endif
else
set background=dark
if exists( ":colorscheme" )
colorscheme elflord
endif
endif
" bookmarks
if has( "menu" )
if isdirectory( '/home/www/plasmasturm' )
amenu Book&marks.Plasmastur&m.&home :e
/home/www/plasmasturm/src/plasmasturm.atom<CR>
amenu Book&marks.Plasmastur&m.&links :e
/home/www/plasmasturm/www/links/index.shtml<CR>
amenu Book&marks.Plasmastur&m.&template :e
/home/www/plasmasturm/www/template.shtml<CR>
amenu Book&marks.Plasmastur&m.&css :e
/home/www/plasmasturm/www/global.css<CR>
amenu Book&marks.Plasmastur&m.&drafts :e
/home/www/klangraum/www/drafts/<CR>
endif
if isdirectory( '/home/www/ct' )
amenu Book&marks.&Projects.ClinicalTrials :e
/home/www/ct/lib/ClinicalTrials.pm<CR>
endif
if isdirectory( '/home/www/ishl' )
amenu Book&marks.&Projects.Hodgkin2007\.de :e
/home/www/ishl/content.xml<CR>
endif
if isdirectory( '~/projects' )
amenu Book&marks.&Projects.XML::Atom::SimpleFeed :e
~/projects/modules/XML-Atom-SimpleFeed/lib/XML/Atom/SimpleFeed.pm<CR>
amenu Book&marks.&Projects.Proc::Fork :e
~/projects/modules/Proc-Fork/lib/Proc/Fork.pm<CR>
amenu Book&marks.&Projects.Bencode :e
~/projects/modules/Bencode/lib/Bencode.pm<CR>
amenu Book&marks.&Projects.PostScript::DecodeGlyphName :e
~/projects/modules/PostScript-DecodeGlyphName/lib/PostScript/DecodeGlyphName.pm<CR>
amenu Book&marks.&Projects.Sub::ArgShortcut :e
~/projects/modules/Sub-ArgShortcut/lib/Sub/ArgShortcut.pm<CR>
amenu Book&marks.&Projects.gtk-chtheme :e
~/projects/gtk-chtheme/main.c<CR>
endif
if isdirectory( '/mm' )
amenu Book&marks.MP&3 :e
/mm/mp3/LIST<CR>
endif
if filereadable( expand( '~/text/TODO' ) ) " ?! isdirectory()
understands the tilda but filereadable() does not
amenu Book&marks.&TODO :e
~/text/TODO<CR>
endif
let g:_ap_vimrc_location = expand( '<sfile>' )
amenu Book&marks.&vimrc :exec 'edit'
g:_ap_vimrc_location<CR>
endif
" Markdown + SmartyPants = crazy delicious
command! -range Markdown <line1>,<line2>! Markdown | SmartyPants -2 | perl
-CS -pe's/&\#(\d+);/pack q[U], $1/eg'
command! -range SmartyPants <line1>,<line2>! SmartyPants -2 | perl -CS
-pe's/&\#(\d+);/pack q[U], $1/eg'
" wheee!
if has( "perl" )
perl eval "use Encode;"
perl eval "use HTML::Entities;"
endif
"""""""""""""""""""""""""""""""""""""""""
" plugin- and filetype-specific settings
"----------------------------------------
" matchparen slows gvim down noticably
let g:loaded_matchparen = 1
" for Michal Gorny's improved syntax/xhtml.vim
let g:xhtml_no_embedded_mathml = 1
let g:xhtml_no_embedded_svg = 1
" some silly servers refuse to respond to user agents that they assume to be
spiders
let g:netrw_http_cmd = "wget -U 'Vim (netrw 6.2)' -O"
" for :TOhtml
let g:html_use_css = 1
let g:use_xhtml = 1
let g:html_number_lines = 1
let g:html_use_encoding = "utf-8"
" for vimspell
let g:spell_executable = "aspell"
let g:spell_root_menu = ""
let g:spell_auto_type = ""
let g:spell_guess_language_ft = "all"
let g:spell_insert_mode = 0
" for Perl syntax
let g:perl_include_pod = 1
" use internal help when editing vim scripts or viewing help
autocmd FileType {vim,help} setlocal keywordprg=:help
" easier help browsing
autocmd FileType help nnoremap <buffer><CR> <C-]>
autocmd FileType help nnoremap <buffer><BS> <C-T>
autocmd FileType help nnoremap <buffer><Tab> :let
g:tmpstoreprevsearch=@/<CR>/<Bar>\k*<Bar>/s+1<CR>:let
@/=g:tmpstoreprevsearch<CR>:echo<CR>
" XML = nesting, which makes 4 places per tab way too much
" also, make it possible to autocomplete tag names with hyphens in them
autocmd FileType {xml,xslt} setlocal ts=2 sw=2 sts=2
iskeyword=@,-,\:,48-57,_,128-167,224-235
" miscellany for Perl
autocmd FileType perl setlocal iskeyword+=: makeprg=perl\ -Wc\ %
errorformat=%m\ at\ %f\ line\ %l%.%#,%-G%.%#
if has( "win32" )
" Vim uses a temp file in Windows; Perl's stderr has to be handled
corectly
autocmd FileType perl setlocal shellpipe=1>&2\ 2>
endif
" I don't completely like the HTML indenting even with these in effect
autocmd FileType html let g:html_indent_strict=1
autocmd FileType html let g:html_indent_strict_table=1
autocmd FileType html setlocal makeprg=tidy\ -q\ %\ 2>&1\ \\\|\ grep\ ^line
errorformat+=line\ %l\ column\ %*\\d\ -\ %m
" mail.vim links mailSubject to LineNR but that doesn't stand out enough
autocmd FileType mail hi link mailSubject PreProc