X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=.vimrc;h=3a2f7542b490f9c3fe7ac10925712b5d56d1720f;hb=99881ad89700e483371cc2794d63afab85469498;hp=c5947239ede035229d619f69565c650f60ea35d2;hpb=d9f6041145fbc121fbaadc056a6e7853246bf06f;p=profile.git diff --git a/.vimrc b/.vimrc old mode 100755 new mode 100644 index c594723..3a2f754 --- a/.vimrc +++ b/.vimrc @@ -39,6 +39,7 @@ se laststatus=2 " Use C indent style. se cindent se cinkeys=0{,0},0),:,!^F,o,O,e +se cinoptions=b1,c2 " GUI options. se go=aglmr @@ -67,6 +68,10 @@ map = yyp:s/./=/g:let @/='': if version >= "500" version 5.0 +" Save sessions in UNIX format with / as file separator. This is +" cross-platoform. +se ssop+=unix,slash + " Nuke any pre-existing autocommands. autocmd! @@ -98,6 +103,9 @@ fun! Iain_Vars() if ! exists("b:iainhex") let b:iainhex = 0 endif + if ! exists("b:iainverbose") + let b:iainverbose = 0 + endif endfun " Helper for status line. @@ -146,12 +154,17 @@ endfun fun! Show_StatusLine() call Iain_Vars() let sl1='%2n\:\ %<%f\ [%{Show_List()}%{Show_Case()}%{Show_Tabstop()}%{Show_Paste()}%Y%M%R]\ %=' - let sl2='\ \|\ P:%4.6o\ L:%4.6l/%-4.6L\ C:%3.6c\ \|\ %P' + let sl3='L:%4.6l/%-4.6L\ C:%3.6c\ \|\ %P' let hexformat='%b' if b:iainhex let hexformat='0\x%02B' endif - exec "set statusline=" . sl1 . hexformat . sl2 + if b:iainverbose + let sl2=hexformat . '\ \|\ P:%4.6o\ ' + else + let sl2='' + endif + exec "set statusline=" . sl1 . sl2 . sl3 endfun " Restore window size. @@ -219,9 +232,6 @@ endif if version >= "600" version 6.0 -" Allow room for numbers. -se numberwidth=5 - " Track changing number mode. let g:numbercols=&columns let g:numberchanges=0 @@ -231,13 +241,16 @@ syn enable " Nice GUI colour. if has("gui_running") - se guifont=Bitstream\ Vera\ Sans\ Mono\ 12 + se guifont=Bitstream\ Vera\ Sans\ Mono\ 10 colo darkblue endif if has("win32") se guifont=Bitstream_Vera_Sans_Mono:h10:cANSI endif +" Ignore whitespace when diffing. +se diffopt=filler,iwhite + " Expand window when doing a vertical diff. if &diff let &columns = 164 @@ -279,9 +292,17 @@ fun! Cycle_HexStatusLine() call Show_StatusLine() endfun +" Cycle verbose display of toolbar stuff. +fun! Cycle_VerboseStatusLine() + call Iain_Vars() + let b:iainverbose = ! b:iainverbose + call Show_StatusLine() +endfun + " Cycle between number mode. " FIXME: Toggling in a split window doesn't work properly. We need to track " the number of windows and number modes. Something for later... +" Perhaps have a redraw callback that checks width and original column number. fun! Cycle_Number() if &number " Restore width. @@ -304,7 +325,13 @@ fun! Cycle_Number() " Expand if this was the first change. if g:numberchanges == 0 let g:numbercols=&columns - let &columns=&columns+&numberwidth + if version >= 700 + " Expand column by our preferred width. + let &columns=&columns+&numberwidth + else + " Vim 6 hardcodes width to 8. + let &columns=&columns+8 + endif endif " Track changes. @@ -338,6 +365,8 @@ map Qf :se foldenable!: map Qp :se paste!: " Swap hex/decimal statusline with Qx map Qx :call Cycle_HexStatusLine(): +" Change statusline verbosity with Qv +map Qv :call Cycle_VerboseStatusLine(): " Swap case-sensitivity with Qc. map Qc :call Invert_Case(): " Cycle list styles with Ql. @@ -346,6 +375,8 @@ map Ql :call Cycle_List(): map Qn :call Cycle_Number(): " Toggle tags with Qt. map Qt :Tlist +" Clear search pattern with Q/. +map Q/ :let @/="": " Leaving Perl mode. fun! PerlMode_unmap() @@ -361,6 +392,12 @@ endif if version >= "700" version 7.0 +" Make diffs vertical by default. +se diffopt+=vertical + +" Set size of numbers column. +se numberwidth=5 + " Add "previous tab" mapping as gb. map gb :tabPrev endif