← vim/
$ ./vim-motions --cheatsheet

Vim Motions & Cheatsheet

Explore all vim commands by category. Find quickly with fuzzy search.

92 results

Motions

hBeginner

Move left

jBeginner

Move down

kBeginner

Move up

lBeginner

Move right

wBeginner

Jump to start of next word

w → "hello |world"

💡 Navigate word by word

bBeginner

Jump to start of previous word

eBeginner

Jump to end of word

WIntermediate

Jump to next WORD (whitespace-delimited)

💡 Skips punctuation

BIntermediate

Jump to previous WORD

EIntermediate

Jump to end of WORD

0Beginner

Go to start of line

$Beginner

Go to end of line

^Beginner

Go to first non-blank character

ggBeginner

Go to first line

GBeginner

Go to last line

{number}GBeginner

Go to line number

10G → go to line 10

{Intermediate

Jump to previous paragraph

}Intermediate

Jump to next paragraph

%Intermediate

Jump to matching bracket

💡 Essential for code navigation

f{char}Intermediate

Find char forward on line

f( → jump to next (

💡 Fast in-line navigation

F{char}Intermediate

Find char backward on line

t{char}Intermediate

Move to before char forward

T{char}Intermediate

Move to after char backward

;Intermediate

Repeat last f/F/t/T

,Intermediate

Repeat last f/F/t/T in reverse

Ctrl+dBeginner

Scroll half page down

Ctrl+uBeginner

Scroll half page up

HIntermediate

Move to top of screen

MIntermediate

Move to middle of screen

LIntermediate

Move to bottom of screen

Operators

dBeginner

Delete (operator)

dw → delete word

💡 Combine with motions: dd, d$, dG

cBeginner

Change (delete + insert)

cw → change word

💡 Most used operator for editing

yBeginner

Yank (copy)

yy → yank line

pBeginner

Paste after cursor

PBeginner

Paste before cursor

ddBeginner

Delete entire line

ccBeginner

Change entire line

yyBeginner

Yank entire line

DBeginner

Delete to end of line

CBeginner

Change to end of line

xBeginner

Delete character under cursor

rBeginner

Replace single character

ra → replace with a

~Intermediate

Toggle case

guIntermediate

Lowercase (operator)

guw → lowercase word

gUIntermediate

Uppercase (operator)

gUw → uppercase word

>Beginner

Indent right (operator)

>> → indent line

<Beginner

Indent left (operator)

.Beginner

Repeat last change

💡 The most powerful vim command

uBeginner

Undo

Ctrl+rBeginner

Redo

Text Objects

iwBeginner

Inner word

diw → delete inner word

💡 Works regardless of cursor position in word

awBeginner

A word (includes surrounding space)

i"Beginner

Inner double quotes

ci" → change inside quotes

💡 Perfect for editing strings

i'Beginner

Inner single quotes

i)Beginner

Inner parentheses

ci) → change inside parens

i]Beginner

Inner brackets

i}Beginner

Inner braces

itIntermediate

Inner tag (HTML)

cit → change inside tag

💡 Essential for HTML editing

ipIntermediate

Inner paragraph

isIntermediate

Inner sentence

a"Intermediate

A double quoted string (includes quotes)

a)Intermediate

A parenthesized block (includes parens)

Visual Mode

vBeginner

Enter visual mode (character)

VBeginner

Enter visual line mode

Ctrl+vIntermediate

Enter visual block mode

💡 Edit multiple lines at once

oIntermediate

Move to other end of selection

gvIntermediate

Reselect last visual selection

Registers

"aIntermediate

Use register a

"ayy → yank line into register a

💡 Multiple clipboards

"0Intermediate

Last yank register

💡 Paste what you yanked, not what you deleted

"+Intermediate

System clipboard register

:regAdvanced

Show all registers

Macros

q{a-z}Intermediate

Start recording macro to register

qa → start recording to a

💡 Automate repetitive edits

qIntermediate

Stop recording macro

@{a-z}Intermediate

Play macro from register

@a → play macro a

@@Intermediate

Replay last macro

{n}@{a-z}Advanced

Play macro n times

10@a → play macro a 10 times

Windows/Tabs

:spIntermediate

Horizontal split

:vspIntermediate

Vertical split

Ctrl+w h/j/k/lIntermediate

Navigate between splits

Ctrl+w =Advanced

Equalize split sizes

:tabnewAdvanced

Open new tab

gt / gTAdvanced

Next / previous tab

Search/Replace

/{pattern}Beginner

Search forward

?{pattern}Beginner

Search backward

nBeginner

Next search result

NBeginner

Previous search result

*Intermediate

Search word under cursor forward

#Intermediate

Search word under cursor backward

:s/old/new/Intermediate

Replace first on line

:s/old/new/gIntermediate

Replace all on line

:%s/old/new/gIntermediate

Replace all in file

💡 Global find and replace

:%s/old/new/gcAdvanced

Replace all with confirmation