#============================================================ # NEOVIM KEYMAP REFERENCE (CORE & USEFUL) #============================================================ #============================================================ # INSERT MODE (Ctrl + ...) #============================================================ Ctrl + h Delete character before cursor Ctrl + w Delete word before cursor Ctrl + j Insert line break (newline) at cursor Ctrl + t Indent current line one 'shiftwidth' to the right Ctrl + d De-indent current line one 'shiftwidth' to the left Ctrl + n Insert next auto-completion match Ctrl + p Insert previous auto-completion match Ctrl + r x Insert contents of register x Ctrl + o {cmd} Temporarily enter Normal mode to execute {cmd} Esc / Ctrl + c Exit insert mode and return to Normal mode #============================================================ # NORMAL MODE — WINDOW & TAB MANAGEMENT #============================================================ C-w s Split current window horizontally C-w v Split current window vertically C-w c Close current window C-w q Quit current window (same as close but exit if last) C-w w Cycle through open windows C-w x Exchange window with next one C-w = Equalize window sizes C-w _ Maximize height of current window C-w | Maximize width of current window C-w h Move to window left C-w j Move to window below C-w k Move to window above C-w l Move to window right C-w H Move current window far left C-w J Move current window to bottom C-w K Move current window to top C-w L Move current window far right C-w t Move current split into a new tab gt Go to next tab gT Go to previous tab gt Go to tab number #============================================================ # NORMAL MODE — TAGS, JUMPS & MOTIONS #============================================================ Ctrl + ] Jump to tag under cursor gd Go to local declaration gD Go to global declaration { Jump backward one paragraph/block } Jump forward one paragraph/block ; Repeat last motion forward , Repeat last motion backward Ctrl + e Scroll window down (cursor stays put) Ctrl + y Scroll window up (cursor stays put) H Move cursor to top of screen M Move cursor to middle of screen L Move cursor to bottom of screen #============================================================ # NORMAL MODE — TEXT OBJECTS #============================================================ aw "A word" — select word + following space ab "A block" — select around () aB "A Block" — select around {} at "A tag" — select around XML/HTML tag ib "Inner block" — inside () iB "Inner Block" — inside {} it "Inner tag" — inside tag (no delimiters) #============================================================ # NORMAL MODE — DIFF / CHANGES #============================================================ do Obtain (get) changes from other window dp Put (send) changes to other window #============================================================ # REGISTERS & CLIPBOARD #============================================================ "xy Yank into register x "xp Paste contents of register x "+y Yank into system clipboard "+p Paste from system clipboard #--- Common Registers --- "0 Last yank " Unnamed register (last delete or yank) "% Current file name "# Alternate file name "* X11 primary selection clipboard "+ X11 clipboard register "/ Last search pattern ": Last command-line command ". Last inserted text "- Last small (less than a line) delete "= Expression register (evaluate expression) "_ Black hole register (discard output) #============================================================ # TIPS & NOTES #============================================================ - Ctrl + o in Insert mode is a powerful way to run one Normal-mode command temporarily. - Use “aw”, “iw”, “ab”, “ib”, etc. with operators (e.g., ‘daw’, ‘yib’) for precise text manipulation. - The system clipboard is “+” (Windows/macOS/Linux), but some X11 systems also use “*”. - When in diff mode, ‘do’ and ‘dp’ are complementary: “get” vs. “put” changes.