diff --git a/vim/vimrc b/vim/vimrc index 0f3e248..c568bc1 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -126,6 +126,22 @@ set nocompatible syntax enable " }}} +" Functions {{{ + " Cycle through relativenumber + number, number (only), and no numbering. + function! VimrcCycleNumbers() abort + if exists('+relativenumber') + execute { + \ '00': 'set relativenumber | set number', + \ '01': 'set norelativenumber | set number', + \ '10': 'set norelativenumber | set nonumber', + \ '11': 'set norelativenumber | set number' }[&number . &relativenumber] + else + set number! " No relative numbering, just toggle numbers on and off. + endif + endfunction + +" }}}" + " Mappings {{{ let mapleader = "\" let maplocalleader = "," @@ -172,6 +188,10 @@ set nocompatible " fix whitespace nnoremap w :FixWhitespace + + " cycle through line numbering modes + nnoremap r :call VimrcCycleNumbers() + " }}}" augroup vimrc " {{{