X-Git-Url: http://git.iain.cx/?p=profile.git;a=blobdiff_plain;f=.vimrc;h=8385302ef6b55a807fb0babc7afaf0208309640b;hp=24b65306a43f66eeeabbfbe31c4a05490a482bd4;hb=cf5f78bd9314e698743b785236369e245473e3f0;hpb=d21f4c46453b0765408eedb7885441379ace0889 diff --git a/.vimrc b/.vimrc index 24b6530..8385302 100644 --- a/.vimrc +++ b/.vimrc @@ -61,19 +61,6 @@ se tags=~/.tags,./tags,tags " Don't timeout waiting to interpet, eg, OA as an escape code. se ttimeoutlen=100 -" Function to create mappings with either a hardcoded \ or . -fun! Mapping(keysequence,mapping) - if version >= "600" - exec "map \\" . a:keysequence . " " . a:mapping - else - exec "map " . a:keysequence . " " . a:mapping - endif -endfun - -" Use - and = to create underlines. -call Mapping("-", "yyp:s/./-/g:let @/='':") -call Mapping("=", "yyp:s/./=/g:let @/='':") - """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Handle options only available in Vim 5 and above. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -85,11 +72,18 @@ if ! has("gui_running") se bg=dark endif +" Enable tab-completion prompting for commands. +se wildmenu +" Don't list object files when globbing files to load. +se wildignore+=*.o,*.obj +" So there's no need to assign them low priority. +se suffixes-=*.o,*.obj + " Vim 5 hardcodes the size of numbers column to 8. let numberwidth=8 " Save sessions in UNIX format with / as file separator. This is -" cross-platoform. +" cross-platform. se ssop+=unix,slash " Nuke any pre-existing autocommands. @@ -107,8 +101,13 @@ se t_WS=[8;%p1%d;%p2%dt " Highlight search results. se hlsearch -" Syntax highlighting. -syn on +" Set graphical window title. +se titlestring=%{Show_TitleString()} + +" Syntax highlighting. New versions will use syn enable instead. +if version < 600 + syn on +endif " Use a discernably different colour to highlight the cursor which shows " matching brackets. Our regular cursor is green so use blue instead of cyan. @@ -178,6 +177,16 @@ fun! Show_Paste() endif endfun +" Show the window title. +fun! Show_TitleString() + if bufname("") == "" + let ts1='Vim' + else + let ts1=printf("%2d: %s", bufnr(""), expand('%t')) + endif + return printf("%s (%s) %s", ts1, getcwd(), v:servername) +endfun + " Show the status line. fun! Show_StatusLine() call Iain_Vars() @@ -209,19 +218,36 @@ au BufLeave * if &ft == "make" | call MakeMode_unmap() | endif " Entering Make mode. fun! MakeMode_map() - set list + call Iain_Vars() + let b:iainlist=1 + call Cycle_List() + set ts=8 set noexpandtab endfun " Leaving Make mode. fun! MakeMode_unmap() - set nolist + call Cycle_List() + set ts=2 set expandtab endfun " Show the status line for the first time. call Show_StatusLine() +" Function to create mappings with either a hardcoded \ or . +fun! Mapping(keysequence,mapping) + if version < "600" + exec "map \\" . a:keysequence . " " . a:mapping + else + exec "map " . a:keysequence . " " . a:mapping + endif +endfun + +" Use - and = to create underlines. +call Mapping("-", "yyp:s/./-/g:let @/='':") +call Mapping("=", "yyp:s/./=/g:let @/='':") + " Change to ts=2 with \2. call Mapping("2", ":se ts=2:") " Change to ts=4 with \4. @@ -247,6 +273,9 @@ call Mapping("/", ":let @/=\"\":") " Forget the Ex mode mapping. map Q +" Vim tip 99: What's the highlighting group under the cursor? +call Mapping("h", ":echo \"hi<\" . synIDattr(synID(line(\".\"),col(\".\"),1),\"name\") . '> trans<' . synIDattr(synID(line(\".\"),col(\".\"),0),\"name\") . \"> lo<\" . synIDattr(synIDtrans(synID(line(\".\"),col(\".\"),1)),\"name\") . \">\"") + endif """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -268,6 +297,11 @@ syn enable if has("gui_running") se guifont=DejaVu\ Sans\ Mono\ 10 colo darkblue +elseif &t_Co > 16 + try + colo iain + catch + endtry endif if has("win32") se guifont=DejaVu_Sans_Mono:h10:cANSI @@ -281,13 +315,13 @@ if &diff let &columns = 164 endif -" 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 +" Allow in-place editing of crontabs. +au FileType crontab set backupcopy=yes + " 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") @@ -370,19 +404,19 @@ fun! Highlight_StatusLine(flag) if b:iainstatus =~# "I" " Held in insert mode. Add extra highlight if we don't have focus. if b:iainstatus =~# "f" - let s:colour = "darkmagenta" - else let s:colour = "darkred" + else + let s:colour = "darkmagenta" endif - let s:term88colour = "32" - let s:term256colour = "88" + let s:term88colour = "33" + let s:term256colour = "89" endif else if b:iainstatus =~# "I" " Regular insert mode. - let s:colour = "darkred" - let s:term88colour = "32" - let s:term256colour = "88" + let s:colour = "darkmagenta" + let s:term88colour = "33" + let s:term256colour = "89" endif endif @@ -421,4 +455,13 @@ se numberwidth=5 " Add "previous tab" mapping as gb. map gb :tabPrev + +" Transparency. +if has("gui_macvim") + se transparency=15 +endif + +" Perforce. +let g:p4EnableMenu=1 +let g:p4Presets='P4CONFIG' endif