Tuesday, August 24, 2010

Vim with status.

It is obviously for VIM editor users only :)

Why? - You might have so many mappings in your .vimrc,
but while editing are you really using all of
your mappings?

Sometimes a question might also answers you !!

How? -

$ vim .vimrc

Lets take an example :

I wanna add a mapping to display line numbers when ever
I press F2 key twice.

add below line to your .vimrc to map F2 key to display line numbers:

nnoremap <F2><F2> :set invnu nu?<CR> " use F2F2 to toggle line numbers.

Now its time to add Status Bar.

add below lines to your .vimrc to show status bar:

" first, enable status line always
set laststatus=2
highlight StatusLine guifg=darkred ctermbg=darkred ctermfg=blue
set statusline =%F%m%r%h%w\ [<F2>=nu]


launch vim with a text file:

$ man grep | col -b > /tmp/grep.txt && vim /tmp/grep.txt

now you can see bottom of vim editor status bar appears which shows your mapping as '[<F2>=nu]'.

Press F2 twice to show line numbers, again press F2 twice to switch off line numbers.

Go Ahead and add more mappings:

Example:

let g:I=0
function! INC(increment)
let g:I =g:I + a:increment
return g:I
endfunction

nnoremap <F1><F1> :set invnu nu?<CR>

nnoremap <F5><F5> :set invhls hls?<CR>

nnoremap <F4><F4> :set invwrap wrap?<CR>

nnoremap <F2><F2> :vsplit<CR>

nnoremap <F3><F3> <C-W>w

nnoremap <F6><F6> :set invpaste paste?<CR>

nnoremap <F7> mz:let g:I=0 \|sil\| .,.+24s/^/\=INC(1).'<TAB>'/<CR>:'z<CR>:set nohls<CR>

nnoremap <F7><F7> mz:let g:I=0 \|sil\| .,$s/^/\=INC(1).'<TAB>'/<CR>:'z<CR>:set nohls<CR>

nnoremap <F8> :'z,$s/^[0-9]\+<TAB>//<CR>:'z<CR>

" first, enable status line always
set laststatus=2
highlight StatusLine guifg=darkred ctermbg=darkred ctermfg=blue

set statusline =%F%m%r%h%w\ [<F1>=nu]\ [<F2>='vsplit']\ [<F3>=]\ [<F4>=wrap]\ [<F5>=highlight]\ [<F6>=paste]\ [<F7>=num]\ [<F8>=remove\ num]


You can change color of status bar based on your taste, use vim 7.0 or greater.

HAPPY VIMMING !!

Cheers - Satya.

No comments:

Post a Comment

Followers