Motions Cheatsheet
Character Motions
h ← left
l → right
j ↓ down
k ↑ up
Word Motions
w next word start (punctuation-aware)
W next WORD start (space-delimited)
b previous word start
B previous WORD start
e end of word
E end of WORD
ge end of previous word
Line Motions
0 start of line (column 0)
^ first non-blank character
$ end of line
g_ last non-blank character
_ first non-blank character (works with operators)
Find on Line
f{char} find next char on line
F{char} find prev char on line
t{char} to (just before) next char
T{char} to (just after) prev char
; repeat f/F/t/T forward
, repeat f/F/t/T backward
Screen Navigation
H high (top of screen)
M middle of screen
L low (bottom of screen)
Ctrl+d scroll half page down
Ctrl+u scroll half page up
Ctrl+f scroll full page down (forward)
Ctrl+b scroll full page up (back)
Ctrl+e scroll line down (cursor fixed)
Ctrl+y scroll line up (cursor fixed)
zz center cursor line
zt put cursor line at top
zb put cursor line at bottom
File Navigation
gg go to file start
G go to file end
{N}G go to line N (e.g., 42G)
{N}gg go to line N (e.g., 42gg)
:42 go to line 42
% jump to matching bracket/delimiter
{ } previous/next paragraph (empty line)
( ) previous/next sentence
[[ ]] previous/next section/function
Search Navigation
/pattern search forward
?pattern search backward
n next match
N previous match
* search word under cursor forward
# search word under cursor backward
gd go to local definition
gD go to global definition
Marks
ma set mark 'a' (file-local)
mA set mark 'A' (global)
`a jump to position of mark 'a'
'a jump to line of mark 'a'
`` jump back to before last jump
`. jump to last change
`^ jump to last insert-exit
`[ start of last yank/change
`> end of last visual selection
Jump List
Ctrl+o go back in jump list
Ctrl+i go forward in jump list
:jumps show jump list
g; previous change position
g, next change position
Count Multiplier
{N}{key} repeat key N times
3w → move 3 words forward
5j → move 5 lines down
10l → move 10 chars right