Skip to content

Instantly share code, notes, and snippets.

@heroheman
Last active September 7, 2016 21:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save heroheman/905329df33f52290c1949b3adcb20529 to your computer and use it in GitHub Desktop.
Save heroheman/905329df33f52290c1949b3adcb20529 to your computer and use it in GitHub Desktop.
Vim: Relative Number Toggle
" Function: RELATIVENUMBER"{{{
set relativenumber
" toggle line numbering mode
if exists("+relativenumber")
if v:version >= 400
set number
endif
set relativenumber " show relative line numbers
set numberwidth=3 " narrow number column
" cycles between relative / absolute / no numbering
if v:version >= 400
function! RelativeNumberToggle()
if (&number == 1 && &relativenumber == 1)
set nonumber
set relativenumber relativenumber?
elseif (&number == 0 && &relativenumber == 1)
set norelativenumber
set number number?
elseif (&number == 1 && &relativenumber == 0)
set norelativenumber
set nonumber number?
else
set number
set relativenumber relativenumber?
endif
endfunc
else
function! RelativeNumberToggle()
if (&relativenumber == 1)
set number number?
elseif (&number == 1)
set nonumber number?
else
set relativenumber relativenumber?
endif
endfunc
endif
nnoremap <silent> <leader>z :call RelativeNumberToggle()<CR>
else " fallback
set number " show line numbers
" inverts numbering
nnoremap <silent> <leader>z :set number! number?<CR>
endif
"}}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment