" ============================================================================= " URL: https://github.com/sainnhe/dotfiles " Filename: .config/nvim/mappings.vim " Author: Sainnhe Park " Email: sainnhe@gmail.com " License: Anti-996 && MIT " ============================================================================= " {{{Normal Mode " Leader key let g:mapleader = "\" nnoremap " Alt+X to enter normal mode nnoremap if !has('nvim') nnoremap ^@ else nnoremap :wincmd p endif " ; to enter command mode nnoremap ; : " q to quit nmap q :q " Q to force quit nmap Q :q! " q to close quickfix list nnoremap q :cclose " m to record macro nnoremap m q " Ctrl+S to save file nnoremap :w " Shift+HJKL to quickly move cursor nnoremap K 7 nnoremap J 7 nnoremap H 0 nnoremap L $ " Shift+ArrowKeys to quickly move cursor nnoremap 7 nnoremap 7 nnoremap 0 nnoremap $ " x to delete chars but not yank nnoremap x "_x " y to yank to system clipboard nnoremap y "+y " p to paste from system clipboard nnoremap p "+p " Alt+T to create a new tab if g:vim_mode ==# 'full' nnoremap :tabnew:call custom#explorer#startify() else nnoremap :tabnew endif " Alt+W to close current tab nnoremap :call custom#utils#close_on_last_tab() " Alt+Left/Right to switch tabs nnoremap gT nnoremap gt " Alt+ to switch tabs nnoremap gT nnoremap gt " Alt+Up/Down to move tabs nnoremap :tabm -1 nnoremap :tabm +1 " Leader Alt+ to move tabs nnoremap :tabm -1 nnoremap :tabm +1 " Alt+HJKL to jump between windows nnoremap :wincmd h nnoremap :wincmd l nnoremap :wincmd k nnoremap :wincmd j " Alt+Shift+HJKL to adjust window size nnoremap :wincmd + nnoremap :wincmd - nnoremap :wincmd < nnoremap :wincmd > " Alt+V/S to split new window nnoremap :vsp nnoremap :sp " In neovim, Alt+Shift+V/S to toggle vertical/horizontal layout if has('nvim') nnoremap :wincmd t:wincmd H nnoremap :wincmd t:wincmd K endif " z+ArrowKeys to jump between folding nodes nnoremap z zk nnoremap z zj nnoremap z [z nnoremap z ]z " z+hjkl to jump between folding nodes nnoremap zh zk nnoremap zl zj nnoremap zj ]z nnoremap zk [z " zs/zl to save/load folding views nnoremap zs :mkview nnoremap zl :loadview " Get the hi groups under current cursor nnoremap h :call custom#utils#get_highlight() " gi/gI to jump between indents nnoremap gi :call custom#utils#go_indent(v:count1, 1) nnoremap gI :call custom#utils#go_indent(v:count1, -1) " }}} " {{{Insert Mode " Alt+X to enter normal mode inoremap if !has('nvim') inoremap ^@ endif " Ctrl+V to paste from buffer inoremap pa " to paste from system clipboard inoremap "+pa " Ctrl+S to save file inoremap :wa " Shift+ArrowKeys to quickly move cursor inoremap pumvisible() ? "\\\\\\\" : "\\\\\" inoremap pumvisible() ? "\\\\\\\" : "\\\\\" inoremap I inoremap A " }}} " {{{Visual Mode " Alt+X to enter normal mode vnoremap snoremap if !has('nvim') vnoremap ^@ endif " ; to enter command mode vnoremap ; : " x to delete selected text but not yank vnoremap x "_x " Shift+ArrowKeys to quickly move cursor vnoremap vnoremap vnoremap 0 if has('nvim') vnoremap $ else vnoremap $ endif " Shift+HJKL to quickly move cursor vnoremap K 5 vnoremap J 5 vnoremap H 0 vnoremap L $h " y to yank to system clipboard vnoremap y "+y " p to paste from system clipboard vnoremap p "+p " }}} " {{{Command Mode " Alt+X to enter normal mode cmap if !has('nvim') cmap ^@ endif " Ctrl+S to save file cmap :w " }}} " {{{Terminal Mode " Alt+X to enter normal mode tnoremap " Alt+HJKL to jump between windows tnoremap :wincmd h tnoremap :wincmd j tnoremap :wincmd k tnoremap :wincmd l " Alt+Left/Right to switch tabs tnoremap gT tnoremap gt " Alt+Up/Down to move tabs tnoremap :tabm -1 tnoremap :tabm +1 " Shift+ArrowKeys to quickly move cursor tnoremap tnoremap " }}} " vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker fmr={{{,}}}: