" Make space-bar the leader-key let mapleader = " " let maplocalleader = " " " Don't do anything on pressing space itself nnoremap vnoremap " Disable left, right, up and down keys " In normal mode... nnoremap :echoe "Use h" nnoremap :echoe "Use l" nnoremap :echoe "Use k" nnoremap :echoe "Use j" " ...and in insert mode inoremap :echoe "Use h" inoremap :echoe "Use l" inoremap :echoe "Use k" inoremap :echoe "Use j" " Ctrl+Backspace to add an undo-point and delete last word imap u " Unbind some useless/annoying default key bindings. nmap Q " Center the cursor when moving through document nnoremap zz nnoremap zz nnoremap g; g;zz nnoremap g, g,zz nnoremap gv gvzz nnoremap zz nnoremap zz nnoremap ]s ]szz nnoremap n nzzzv nnoremap N Nzzzv nnoremap G Gzz nnoremap g* g*zz nnoremap g# g#zz nnoremap * *zzv nnoremap # #zzv " Move visually selected lines around with J & K vnoremap J :m '>+1gv=gv vnoremap K :m '<-2gv=gv " Better indenting vnoremap < >gv xnoremap > >gv " Keeps the cursor at the same place when doing J " And not move to end of the line nnoremap J mzJ`z:delmarks z " Better Up/Down nnoremap j gj xnoremap j gj nnoremap k gk xnoremap k gk " Better window/split navigation map j map k map h map l " Navigate buffers nnoremap ]b :bnext nnoremap [b :bprevious nnoremap bx :bd " Navigate Quickfix nnoremap [q :cprevzz nnoremap ]q :cnextzz " Resize window using arrow keys nnoremap :resize +2 nnoremap :resize -2 nnoremap :vertical resize -2 nnoremap :vertical resize +2 " Saner search n & N nnoremap n 'Nn'[v:searchforward] xnoremap n 'Nn'[v:searchforward] onoremap n 'Nn'[v:searchforward] nnoremap N 'nN'[v:searchforward] xnoremap N 'nN'[v:searchforward] onoremap N 'nN'[v:searchforward] " Quit Vim (without saving) " Save all buffers nnoremap :q vnoremap :q nnoremap :wa vnoremap :wa " Paste over currently selected text without yanking it vnoremap p "_dp vnoremap P "_dP " Copy everything between { & } including brackets nnoremap YY va{Vy " Move Lines with Alt+j,k nnoremap :m .+1== nnoremap :m .-2== vnoremap :m '>+1gv=gv vnoremap :m '<-2gv=gv " Evaluate expression of the highlighted text and paste at the end vnoremap = y`]a = =" " Insert mode: add undo points on "," & "." & ";" imap , ,u imap . .u imap ; ;u " Copy to system clipboard nnoremap y "+y vnoremap y "+y " To paste from system clipboard "+p " Clear search, diff update and redraw nnoremap :nohlsearch:diffupdate:normal!