Vim keyboard shortcuts
Moving, editing, searching, and window commands in the Vim text editor.
81 shortcuts Linux and Mac checked September 14, 2026
Print all 81 shortcuts One sheet with every shortcut in this app, ready for the printer or a PDF.
- Vim Documented
| Action | Keys | Row actions |
|---|---|---|
| Move the cursor left Normal mode | Linux H 1 more variant | Source |
| Move the cursor down Normal mode | Linux J 1 more variant | Source |
| Move the cursor up Normal mode | Linux K 1 more variant | Source |
| Move the cursor right Normal mode | Linux L 1 more variant | Source |
| Jump forward a word Normal mode | Linux W 1 more variant | Source |
| Jump back a word Normal mode | Linux B 1 more variant | Source |
| Jump to the end of the word Normal mode | Linux E 1 more variant | Source |
| Go to the first character of the line Normal mode | Linux 0 1 more variant | Source |
| Go to the first non-blank character Normal mode | Linux ^ 1 more variant | Source |
| Go to the end of the line Normal mode | Linux $ 1 more variant | Source |
| Go to the first line Normal mode | Linux GG 1 more variant | Source |
| Go to the last line Normal mode | Linux ShiftG 1 more variant | Source |
| Jump to the matching bracket Normal mode | Linux % 1 more variant | Source |
| Move forward a paragraph Normal mode | Linux } 1 more variant | Source |
| Move back a paragraph Normal mode | Linux { 1 more variant | Source |
| Scroll down half a screen Normal mode | Linux CtrlD 1 more variant | Source |
| Scroll up half a screen Normal mode | Linux CtrlU 1 more variant | Source |
| Scroll forward a full screen Normal mode | Linux CtrlF 1 more variant | Source |
| Scroll back a full screen Normal mode | Linux CtrlB 1 more variant | Source |
| Show the file name and position Normal mode | Linux CtrlG 1 more variant | Source |
| Insert text before the cursor Normal mode | Linux I 1 more variant | Source |
| Append text after the cursor Normal mode | Linux A 1 more variant | Source |
| Append text at the end of the line Normal mode | Linux ShiftA 1 more variant | Source |
| Insert text at the start of the line Normal mode | Linux ShiftI 1 more variant | Source |
| Open a new line below Normal mode | Linux O 1 more variant | Source |
| Open a new line above Normal mode | Linux ShiftO 1 more variant | Source |
| Leave insert mode Insert mode | Linux Esc 1 more variant | Source |
| Delete the character under the cursor Normal mode | Linux X 1 more variant | Source |
| Delete the whole line Normal mode | Linux DD 1 more variant | Source |
| Delete to the end of the line Normal mode | Linux ShiftD 1 more variant | Source |
About Vim and its shortcuts
Vim is the odd one out on this site, and deliberately so. It is modal: most of what other editors do with held combinations, Vim does with single letters typed in normal mode, which is why its commands are case sensitive and why a stray keypress can change what the next one means. Learning the modes matters more than learning any individual key.
Vim is endlessly configurable, so a configured installation may share little with the defaults published here. Commands also differ between terminal Vim, graphical versions and the Vim emulation built into other editors.
Where the Vim keys came from
Read from 1 documentation page published by the makers of Vim. Report a key that is wrong
To see how one action is done in other apps as well as Vim, browse the shortcuts by task. Shortcuts by task