X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=.vimrc;h=05646ee25848d35b5a5c92bb3fd8e3f0332600ce;hb=5e05beac7356065403067ae1084de680153f6eb9;hp=77a1d45b38d9a25a070df700ed03c86b27eaec3c;hpb=35791acb36710ee87b19309ef97f300b76bdbddc;p=profile.git diff --git a/.vimrc b/.vimrc index 77a1d45..05646ee 100644 --- a/.vimrc +++ b/.vimrc @@ -58,6 +58,9 @@ se smartcase " Look for ctags in home directory first. se tags=~/.tags,./tags,tags +" Don't timeout waiting to interpet, eg, OA as an escape code. +se ttimeoutlen=100 + " Use - and = to create underlines. map - yyp:s/./-/g:let @/='': map = yyp:s/./=/g:let @/='': @@ -68,6 +71,11 @@ map = yyp:s/./=/g:let @/='': if version >= "500" version 5.0 +" Tell Vim we use dark backgrounds in our terminals. +if ! has("gui_running") + se bg=dark +endif + " Vim 5 hardcodes the size of numbers column to 8. let numberwidth=8 @@ -358,25 +366,40 @@ fun! Highlight_StatusLine(flag) let b:iainstatus = substitute(b:iainstatus, re, a:flag, "") " Default colour. - let colour = "darkblue" + let s:colour = "darkblue" + let s:termcolour = "" + let s:term88colour = "17" + let s:term256colour = "17" " Maybe override depending on status. if b:iainstatus =~# "H" if b:iainstatus =~# "I" " Held in insert mode. Add extra highlight if we don't have focus. if b:iainstatus =~# "f" - let colour = "darkmagenta" + let s:colour = "darkmagenta" else - let colour = "darkred" + let s:colour = "darkred" endif + let s:term88colour = "32" + let s:term256colour = "88" endif else if b:iainstatus =~# "I" " Regular insert mode. - let colour = "darkred" + let s:colour = "darkred" + let s:term88colour = "32" + let s:term256colour = "88" endif endif - exec "highlight StatusLine guifg=white guibg=" . colour . " ctermbg=white ctermfg=" . colour + if &t_Co == 88 + let s:termcolour = s:term88colour + elseif &t_Co == 256 + let s:termcolour = s:term256colour + else + let s:termcolour = s:colour + endif + + exec "highlight StatusLine guifg=white guibg=" . s:colour . " ctermbg=white ctermfg=" . s:termcolour endfun au CursorHoldI * call Highlight_StatusLine("H") @@ -385,6 +408,7 @@ au FocusGained * call Highlight_StatusLine("F") au FocusLost * call Highlight_StatusLine("f") au InsertEnter * call Highlight_StatusLine("I") au InsertLeave * call Highlight_StatusLine("i") +call Highlight_StatusLine("") " Make diffs vertical by default. se diffopt+=vertical