X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=.vimrc;h=1d33447c5f82a0aefcef4edaacc207ff05ef491a;hb=9e07d4e358e5b0c7e9e9a949fab7293e770af6c5;hp=9e004de420e9fb0b8b10fa50e090586ed2a4d4f1;hpb=bcbfee8ff8bf115ace00870560f1a2240d612413;p=profile.git diff --git a/.vimrc b/.vimrc index 9e004de..1d33447 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 @@ -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