"Map the leader key to SPACE let mapleader="\" set showmatch " Show matching brackets. set number " Show the line numbers on the left side. set formatoptions+=o " Continue comment marker in new lines. set expandtab " Insert spaces when TAB is pressed. set tabstop=4 " Render TABs using this many spaces. set shiftwidth=4 " Indentation amount for < and > commands. set nojoinspaces " Prevents inserting two spaces after punctuation on a join (J) " More natural splits set splitbelow " Horizontal split below current. set splitright " Vertical split to right of current. if !&scrolloff set scrolloff=3 " Show next 3 lines while scrolling. endif if !&sidescrolloff set sidescrolloff=5 " Show next 5 columns while side-scrolling. endif set nostartofline " Do not jump to first character with page commands. if &listchars ==# 'eol:$' set listchars=tab:>\ ,trail:-,extends:>,precedes:<,nbsp:+ endif set list " Show problematic characters. " Also highlight all tabs and trailing whitespace characters. highlight ExtraWhitespace ctermbg=darkgreen guibg=darkgreen match ExtraWhitespace /\s\+$\|\t/ set ignorecase " Make searching case insensitive set smartcase " ... unless the query has capital letters. set gdefault " Use 'g' flag by default with :s/foo/bar/. " Use to clear the highlighting of :set hlsearch. if maparg('', 'n') ==# '' nnoremap :nohlsearch endif " Search and Replace nmap s :%s//g " Relative numbering function! NumberToggle() if(&relativenumber == 1) set nornu set number else set rnu endif endfunc " Toggle between normal and relative numbering. nnoremap r :call NumberToggle() command W :execute ':silent w !sudo tee % > /dev/null' | :edit!