X-Git-Url: http://git.iain.cx/?p=profile.git;a=blobdiff_plain;f=.vimrc;h=30ec753599e91c72a8a37d6b54aaa912d5ec48d7;hp=9e004de420e9fb0b8b10fa50e090586ed2a4d4f1;hb=3f8dc62c5ecb2cf67e4d17cfd2a3c63f9498caec;hpb=bcbfee8ff8bf115ace00870560f1a2240d612413 diff --git a/.vimrc b/.vimrc index 9e004de..30ec753 100644 --- a/.vimrc +++ b/.vimrc @@ -93,6 +93,10 @@ se hlsearch " Syntax highlighting. syn on +" Use a discernably different colour to highlight the cursor which shows +" matching brackets. Our regular cursor is green so use blue instead of cyan. +hi MatchParen ctermbg=blue + " Catch typos. command! W :w command! Wq :wq @@ -227,6 +231,9 @@ endif if version >= "600" version 6.0 +" Remember quickfix state. +let g:quickfixing=0 + " Set indenting by filetype. filetype indent on @@ -235,11 +242,11 @@ syn enable " Nice GUI colour. if has("gui_running") - se guifont=Bitstream\ Vera\ Sans\ Mono\ 10 + se guifont=DejaVu\ Sans\ Mono\ 10 colo darkblue endif if has("win32") - se guifont=Bitstream_Vera_Sans_Mono:h10:cANSI + se guifont=DejaVu_Sans_Mono:h10:cANSI endif " Ignore whitespace when diffing. @@ -251,11 +258,15 @@ if &diff endif " Status bar matches the colour. -highlight StatusLine guifg=white guibg=blue ctermbg=white ctermfg=blue +highlight StatusLine guifg=white guibg=darkblue ctermbg=white ctermfg=darkblue " Numbers in blue. highlight LineNr term=underline cterm=bold guifg=blue ctermfg=blue +" Remember that we are opening the quickfix window. +au BufWinEnter quickfix let g:quickfixing=1 +au BufUnload * if &ft == "qf" | let g:quickfixing=0 | endif + " Make * and # work the way you expect in visual mode. vnoremap * y/\V=substitute(escape(@@,"/\\"),"\n","\\\\n","ge") vnoremap # y?\V=substitute(escape(@@,"?\\"),"\n","\\\\n","ge") @@ -293,15 +304,25 @@ fun! Cycle_VerboseStatusLine() call Show_StatusLine() endfun +" Toggle quickfix window. +fun! Cycle_Quickfix() + if g:quickfixing == 1 + cclose + let g:quickfixing=0 + else + copen + endif +endfun + " We use Q for various commands. Unmap it. " Vim 5 won't let us unmap this as it treats Q as an ambiguous mapping (because " Qx also exists. With Vim 5 you are rewarded with Ex mode if you don't type " the Qx sequence quickly enough. Vim 6 allows us to forget the Ex mapping. map Q -" Swap hex/decimal statusline with Qx +" Swap hex/decimal statusline with Qx. map Qx :call Cycle_HexStatusLine(): -" Change statusline verbosity with Qv +" Change statusline verbosity with Qv. map Qv :call Cycle_VerboseStatusLine(): " Cycle list styles with Ql. map Ql :call Cycle_List(): @@ -309,6 +330,11 @@ map Ql :call Cycle_List(): map Qt :Tlist " Change foldmethod with Qf. map Qf :se foldenable!: +" Toggle quickfix window with Qq. +map Qq :call Cycle_Quickfix(): +" Rerun filetype detection with Qs. The s is for syntax, as this will be +" updated as a side-effect. +map Qs :filetype detect: endif @@ -318,6 +344,10 @@ endif if version >= "700" version 7.0 +" Change status bar colour when entering insert mode. +au InsertEnter * highlight StatusLine guifg=white guibg=darkred ctermbg=white ctermfg=darkred +au InsertLeave * highlight StatusLine guifg=white guibg=blue ctermbg=white ctermfg=blue + " Make diffs vertical by default. se diffopt+=vertical