" Use C indent style.
se cindent
se cinkeys=0{,0},0),:,!^F,o,O,e
+se cinoptions=b1,c2
" GUI options.
se go=aglmr
if ! exists("b:iainhex")
let b:iainhex = 0
endif
+ if ! exists("b:iainverbose")
+ let b:iainverbose = 0
+ endif
endfun
" Helper for status line.
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.
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
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
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.
" 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.
map Qp :se paste!<CR>:<CR>
" Swap hex/decimal statusline with Qx
map Qx :call Cycle_HexStatusLine()<CR>:<CR>
+" Change statusline verbosity with Qv
+map Qv :call Cycle_VerboseStatusLine()<CR>:<CR>
" Swap case-sensitivity with Qc.
map Qc :call Invert_Case()<CR>:<CR>
" Cycle list styles with Ql.
map Qn :call Cycle_Number()<CR>:<CR>
" Toggle tags with Qt.
map Qt :Tlist<CR>
+" Clear search pattern with Q/.
+map Q/ :let @/=""<CR>:<CR>
" Leaving Perl mode.
fun! PerlMode_unmap()
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<CR>
endif