From b4a6205b4d6ddb573fb9ec31c8d4ff67576339ad Mon Sep 17 00:00:00 2001 From: Fernando Schauenburg Date: Sun, 15 Apr 2018 12:44:01 +0200 Subject: [PATCH] [vim] add easy cycling through numbering modes Adapted from: https://raw.githubusercontent.com/wincent/wincent/master/roles/dotfiles/files/.vim/autoload/wincent/mappings/leader.vim --- vim/vimrc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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 " {{{