From bcbfee8ff8bf115ace00870560f1a2240d612413 Mon Sep 17 00:00:00 2001 From: Iain Patterson Date: Mon, 14 Jan 2008 22:34:05 +0000 Subject: [PATCH] Forget the number mode stuff. It doesn't work. Use Qn to toggle number. Use Q> and Q< to resize the window. Moved compatible mappings to Vim 5 section. git-svn-id: https://svn.cambridge.iain.cx/profile/trunk@93 6be0d1a5-5cfe-0310-89b6-964be062b18b --- .vimrc | 109 ++++++++++++++++++++------------------------------------- 1 file changed, 37 insertions(+), 72 deletions(-) diff --git a/.vimrc b/.vimrc index d10c4d7..9e004de 100644 --- a/.vimrc +++ b/.vimrc @@ -68,6 +68,9 @@ map = yyp:s/./=/g:let @/='': if version >= "500" version 5.0 +" 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. se ssop+=unix,slash @@ -167,6 +170,11 @@ fun! Show_StatusLine() exec "set statusline=" . sl1 . sl2 . sl3 endfun +" Toggle case-sensitivity. +fun! Invert_Case() + let &ic = ! &ic +endfun + " Restore window size. au VimLeave * if exists("oldcols") | let &columns=oldcols | endif @@ -188,6 +196,29 @@ endfun " Show the status line for the first time. call Show_StatusLine() + +" Change to ts=2 with Q2. +map Q2 :se ts=2: +" Change to ts=4 with Q4. +map Q4 :se ts=4: +" Change to ts=8 with Q8. +map Q8 :se ts=8: +" Change to ts=16 with Q6. +map Q6 :se ts=16: +" Change to ts=32 with Q3. +map Q3 :se ts=32: +" Toggle paste mode with Qp. +map Qp :se paste!: +" Swap case-sensitivity with Qc. +map Qc :call Invert_Case(): +" Change number mode with Qn. +map Qn :se number!: +" Expand or shrink window size with Q> and Q<. For use after toggling number. +map Q> :exe 'se columns+=' . numberwidth: +map Q< :exe 'se columns-=' . numberwidth: +" Clear search pattern with Q/. +map Q/ :let @/="": + endif """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -199,10 +230,6 @@ version 6.0 " Set indenting by filetype. filetype indent on -" Track changing number mode. -let g:numbercols=&columns -let g:numberchanges=0 - " Less intrusive syntax highlighting. syn enable @@ -266,84 +293,22 @@ fun! Cycle_VerboseStatusLine() 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. - if &t_WS =~ '^.' - " Track changes. - let g:numberchanges=g:numberchanges-1 - if g:numberchanges<0 - g:numberchanges=0 - endif - - " Change size back if this was the last window. - if g:numberchanges == 0 - let &columns=g:numbercols - endif - endif - set nonumber - else - " Save width between number toggling. - if &t_WS =~ '^' - " Expand if this was the first change. - if g:numberchanges == 0 - let g:numbercols=&columns - 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. - let g:numberchanges=g:numberchanges+1 - endif - set number - endif -endfun - -" Toggle case-sensitivity. -fun! Invert_Case() - let &ic = ! &ic -endfun - -" We'll use Q for various commands. Unmap it. +" 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 -" Change to ts=2 with Q2. -map Q2 :se ts=2: -" Change to ts=4 with Q4. -map Q4 :se ts=4: -" Change to ts=8 with Q8. -map Q8 :se ts=8: -" Change to ts=16 with Q6. -map Q6 :se ts=16: -" Change to ts=32 with Q3. -map Q3 :se ts=32: -" Change foldmethod with Qf. -map Qf :se foldenable!: -" Toggle paste mode with Qp. -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. map Ql :call Cycle_List(): -" Change number mode with Qn. -map Qn :call Cycle_Number(): " Toggle tags with Qt. map Qt :Tlist -" Clear search pattern with Q/. -map Q/ :let @/="": +" Change foldmethod with Qf. +map Qf :se foldenable!: endif -- 2.20.1