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