"----------------------------------------------------------------------------- " Mappings: " nmap cmap " Normal/Visual mode mappings: "{{{ nnoremap > >> nnoremap < << xnoremap > >gv xnoremap < > xnoremap < " Disable dangerous mappings nnoremap ZZ nnoremap ZQ " Disable Ex mode nnoremap Q nnoremap j gj nnoremap k gk xnoremap j gj xnoremap k gk nnoremap gj j nnoremap gk k xnoremap gj j xnoremap gk k nnoremap * *zvzz nnoremap g* g*zvzz nnoremap # #zvzz nnoremap g# g#zvzz if (!has('nvim') || $DISPLAY !=# '') && has('clipboard') xnoremap y "*y:let [@+,@"]=[@*,@*] endif " Clear hlsearch nnoremap :nohlsearch "}}} " Insert mode mappings: "{{{ inoremap " Enable undo and inoremap u inoremap u if has('gui_running') inoremap endif "}}} " Command-line mode mappings: "{{{ cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap \ e getcmdpos() == 1 ? '' : getcmdline()[:getcmdpos() - 2] cnoremap * cnoremap " Toggle word boundary cnoremap etoggle_word_boundary() function! s:toggle_word_boundary() abort "{{{ let cmdline = getcmdline() if getcmdtype() !=# '/' && getcmdtype() !=# '?' return cmdline endif if cmdline !~# '^\\<.*\\>$' let cmdline = '\<' . cmdline . '\>' else let cmdline = cmdline[2:len(cmdline) - 3] endif return cmdline endfunction "}}} "}}} " Replace a>,i>,etc... "{{{ " onoremap aa a> xnoremap aa a> onoremap ia i> xnoremap ia i> " [rectangle] onoremap ar a] xnoremap ar a] onoremap ir i] xnoremap ir i] " 'quote' onoremap as a' xnoremap as a' onoremap is i' xnoremap is i' " "double quote" onoremap ad a" xnoremap ad a" onoremap id i" xnoremap id i" "}}} " Edit config files "{{{ " reload vimrc nnoremap ;r \ :source $MYVIMRC \| :echo "source " . $MYVIMRC "}}} " Move cursor between windows "{{{ nnoremap h h nnoremap l l nnoremap k k nnoremap j j nnoremap x x nnoremap = = nnoremap H H nnoremap L L nnoremap K K nnoremap J J "}}} " Operate buffer "{{{ nnoremap o :only nnoremap d :bdelete nnoremap D :bdelete! "}}} " Others "{{{ " Toggle background nmap toggle_background() function! s:toggle_background() abort "{{{ if &background ==# 'light' set background=dark else set background=light endif endfunction "}}} nnoremap x "_x "}}}