| Modes |
| Enter Normal mode | Esc |
| Enter Insert mode | i |
| Insert at end of line | A |
| Insert on new line below | o |
| Insert on new line above | O |
| Enter Visual mode | v |
| Enter Visual Line mode | V |
| Enter Visual Block mode | Ctrl+V |
| Enter Command-line mode | : |
| Replace single character | r |
| Replace mode (overwrite) | R |
| Navigation |
| Move left/down/up/right | h/j/k/l |
| Next / previous word | w/b |
| End of word | e |
| Start of line (non-blank) | ^ |
| End of line | $ |
| First line of file | gg |
| Last line of file | G |
| Go to line N | :NorNgg |
| Half page down/up | Ctrl+D/Ctrl+U |
| Jump to matching bracket | % |
| Jump to next/prev occurrence of char | f{char}/F{char} |
| Center view on cursor | zz |
| Editing |
| Delete character | x |
| Delete line | dd |
| Delete word | dw |
| Delete to end of line | D |
| Yank (copy) line | yy |
| Yank word | yw |
| Paste after / before cursor | p/P |
| Change word | cw |
| Change to end of line | C |
| Change entire line | cc |
| Undo | u |
| Redo | Ctrl+R |
| Repeat last change | . |
| Indent / unindent line | >>/<< |
| Auto-indent selection | =G(fromtop) |
| Search & Replace |
| Search forward | /{pattern} |
| Search backward | ?{pattern} |
| Next / previous match | n/N |
| Search word under cursor | */# |
| Replace in line | :s/old/new/ |
| Replace all in file | :%s/old/new/g |
| Replace with confirmation | :%s/old/new/gc |
| Clear search highlight | :noh |
| File & Buffers |
| Save file | :w |
| Save and quit | :wq |
| Quit without saving | :q! |
| Open file | :e{file} |
| List buffers | :ls |
| Next / previous buffer | :bn/:bp |
| Split horizontally | :sp |
| Split vertically | :vsp |
| Navigate splits | Ctrl+Whjkl |
| Macros |
| Record macro into register | q{letter} |
| Stop recording | q |
| Play macro | @{letter} |
| Repeat last macro | @@ |
| Run macro N times | N@{letter} |