Complete Key Reference
Every Normal-mode key, in one place.
A flat reference of every Normal-mode key with its primary function. Use as a search target โ when you see an unfamiliar key, look it up here.
An alphabetical-ish reference of every Normal-mode key. For prefixed commands (those starting with g, z, [, ], Ctrl-W), see the dedicated overview topics in Part 15.
Lowercase letters
| Key |
Function |
| a |
Append after cursor |
| b |
Word back |
| c |
Change operator |
| d |
Delete operator |
| e |
End of word |
| f |
Find char (forward) |
| g |
Prefix family |
| h |
Left |
| i |
Insert before cursor |
| j |
Down |
| k |
Up |
| l |
Right |
| m |
Set mark |
| n |
Next search match |
| o |
Open new line below |
| p |
Paste after |
| q |
Record macro |
| r |
Replace one char |
| s |
Substitute char (= cl) |
| t |
Till char (forward) |
| u |
Undo |
| v |
Visual char |
| w |
Word forward |
| x |
Delete char (= dl) |
| y |
Yank operator |
| z |
Prefix family |
Uppercase letters
| Key |
Function |
| A |
Append at end of line |
| B |
WORD back |
| C |
Change to end of line (= c$) |
| D |
Delete to end of line (= d$) |
| E |
End of WORD |
| F |
Find char (backward) |
| G |
Last line (or [count]G) |
| H |
Top of viewport |
| I |
Insert at first non-blank |
| J |
Join lines |
| K |
Look up keyword (default man) |
| L |
Bottom of viewport |
| M |
Middle of viewport |
| N |
Previous search match |
| O |
Open new line above |
| P |
Paste before |
| Q |
Repeat last recorded macro (Neovim) / Ex mode (Vim โ rarely used) |
| R |
Replace mode |
| S |
Change whole line (= cc) |
| T |
Till char (backward) |
| U |
Undo all changes on line |
| V |
Visual line |
| W |
WORD forward |
| X |
Delete char back (= dh) |
| Y |
Yank line (NOT y$ โ wart) |
| Z |
(Z+Z=quit save, Z+Q=quit no save) |
Symbols and punctuation
| Key |
Function |
| 0 |
Start of line |
| ^ |
First non-blank |
| $ |
End of line |
| _ |
First non-blank (count: that many lines down) |
| +, - |
Down/up to first non-blank |
| % |
Match bracket / go to N% / file size |
| *, # |
Search word forward / back |
| /, ? |
Search forward / back |
| . |
Repeat last change |
| , |
Reverse last f/F/t/T |
| ; |
Repeat last f/F/t/T |
| ~ |
Toggle case of char under cursor |
| & |
Repeat last :s on current line |
| @ |
Run macro from register |
| : |
Enter Ex command line |
| ! |
Filter operator |
| | |
Go to column [count] |
| {, } |
Previous / next paragraph |
| (, ) |
Previous / next sentence |
| [, ] |
Backward / forward bracket prefixes |
| <, > |
Outdent / indent operators |
| = |
Reindent operator |
| ' |
Jump to mark (line) |
| ` |
Jump to mark (exact position) |
| " |
Register prefix |
Digits
| Key |
Function |
| 1-9 |
Count prefix (repeat the next command N times) |
| 0 |
When no count is pending: start of line; otherwise: count digit |
Special keys
| Key |
Function |
| Esc |
Return to Normal mode / cancel pending command |
| Enter |
Down to first non-blank (= +) |
| Space |
Right (wraps lines) |
| Backspace |
Left (wraps lines, = h with wrap) |
| Tab |
Jump forward in jumplist (= Ctrl-I) |
| Insert |
Toggle Insert / Replace mode |
| Delete |
Delete char under cursor (= x) |
| Home |
Start of line (= 0) |
| End |
End of line (= $) |
| PageUp |
Page back (= Ctrl-B) |
| PageDown |
Page forward (= Ctrl-F) |
| Up/Down/Left/Right |
Cursor motion (prefer h/j/k/l) |
Function keys
| Key |
Function |
| F1 |
Open help (= :help) |
| F2-F12 |
Unmapped by default; commonly used by plugins and user mappings |
Control combinations (most-used)
| Key |
Function |
| Ctrl-A |
Increment number |
| Ctrl-B |
Page back |
| Ctrl-C |
Cancel / interrupt (Normal mode: like Esc) |
| Ctrl-D |
Half-page down |
| Ctrl-E |
Scroll line down |
| Ctrl-F |
Page forward |
| Ctrl-G |
Show position (file/line info) |
| Ctrl-H |
Left (= h, = Backspace) |
| Ctrl-I |
Jump forward in jumplist (= Tab) |
| Ctrl-J |
Down (= j, rarely used) |
| Ctrl-L |
Redraw screen |
| Ctrl-M |
Down to first non-blank (= Enter) |
| Ctrl-N |
Down (= j) / completion next in Insert |
| Ctrl-O |
Jump back in jumplist (or Insert one-shot Normal) |
| Ctrl-P |
Up (= k) / completion previous in Insert |
| Ctrl-Q |
Block visual on terminals where Ctrl-V is paste |
| Ctrl-R |
Redo (or paste-register in Insert/cmdline) |
| Ctrl-T |
Pop tag stack |
| Ctrl-U |
Half-page up |
| Ctrl-V |
Block visual |
| Ctrl-W |
Window prefix |
| Ctrl-X |
Decrement number |
| Ctrl-Y |
Scroll line up |
| Ctrl-Z |
Suspend Vim (resume with fg) |
| Ctrl-] |
Jump to tag under cursor |
| Ctrl-^ |
Switch to alternate file |
| Ctrl-\\ |
Reserved prefix (e.g. Ctrl-\\ Ctrl-N to force Normal) |
See also: Keyboard Walk, Synonyms and Shortcuts