Editing
25 shortcuts
| Action |
Mac |
Linux |
|
Move the cursor left Normal mode
|
H
|
H
|
|
Move the cursor down Normal mode
|
J
|
J
|
|
Move the cursor up Normal mode
|
K
|
K
|
|
Move the cursor right Normal mode
|
L
|
L
|
|
Show the file name and position Normal mode
|
Ctrl + G
|
Ctrl + G
|
|
Insert text before the cursor Normal mode
|
I
|
I
|
|
Leave insert mode Insert mode
|
Esc
|
Esc
|
|
Delete the character under the cursor Normal mode
|
X
|
X
|
|
Delete the whole line Normal mode
|
D then D
|
D then D
|
|
Change the whole line Normal mode
|
C then C
|
C then C
|
|
Yank the current line Normal mode
|
Y then Y
|
Y then Y
|
|
Put text after the cursor Normal mode
|
P
|
P
|
|
Put text before the cursor Normal mode
|
Shift + P
|
Shift + P
|
|
Undo the last change Normal mode
|
U
|
U
|
|
Redo an undone change Normal mode
|
Ctrl + R
|
Ctrl + R
|
|
Undo every change on the line Normal mode
|
Shift + U
|
Shift + U
|
|
Repeat the last change Normal mode
|
.
|
.
|
|
Switch the case of the character Normal mode
|
~
|
~
|
|
Add to the number under the cursor Normal mode
|
Ctrl + A
|
Ctrl + A
|
|
Subtract from the number under the cursor Normal mode
|
Ctrl + X
|
Ctrl + X
|
|
Redraw the screen Normal mode
|
Ctrl + L
|
Ctrl + L
|
|
Edit the file named under the cursor Normal mode
|
G then F
|
G then F
|
|
Delete the word before the cursor Insert mode
|
Ctrl + W
|
Ctrl + W
|
|
Delete what you typed on the line Insert mode
|
Ctrl + U
|
Ctrl + U
|
|
Run one normal command, then keep typing Insert mode
|
Ctrl + O
|
Ctrl + O
|
Navigation
33 shortcuts
| Action |
Mac |
Linux |
|
Jump forward a word Normal mode
|
W
|
W
|
|
Jump back a word Normal mode
|
B
|
B
|
|
Jump to the end of the word Normal mode
|
E
|
E
|
|
Go to the first character of the line Normal mode
|
·
Not documented
|
·
Not documented
|
|
Go to the first non-blank character Normal mode
|
^
|
^
|
|
Go to the end of the line Normal mode
|
$
|
$
|
|
Go to the first line Normal mode
|
G then G
|
G then G
|
|
Go to the last line Normal mode
|
Shift + G
|
Shift + G
|
|
Jump to the matching bracket Normal mode
|
%
|
%
|
|
Scroll down half a screen Normal mode
|
Ctrl + D
|
Ctrl + D
|
|
Scroll up half a screen Normal mode
|
Ctrl + U
|
Ctrl + U
|
|
Scroll forward a full screen Normal mode
|
Ctrl + F
|
Ctrl + F
|
|
Scroll back a full screen Normal mode
|
Ctrl + B
|
Ctrl + B
|
|
Append text after the cursor Normal mode
|
A
|
A
|
|
Append text at the end of the line Normal mode
|
Shift + A
|
Shift + A
|
|
Insert text at the start of the line Normal mode
|
Shift + I
|
Shift + I
|
|
Delete to the end of the line Normal mode
|
Shift + D
|
Shift + D
|
|
Change to the end of the line Normal mode
|
Shift + C
|
Shift + C
|
|
Join the line with the next one Normal mode
|
Shift + J
|
Shift + J
|
|
Start character visual mode Normal mode
|
V
|
V
|
|
Start line visual mode Normal mode
|
Shift + V
|
Shift + V
|
|
Start block visual mode Normal mode
|
Ctrl + V
|
Ctrl + V
|
|
Search forward Normal mode
|
/
|
/
|
|
Search backward Normal mode
|
?
|
?
|
|
Search forward for the word under the cursor Normal mode
|
*
|
*
|
|
Search backward for the word under the cursor Normal mode
|
#
|
#
|
|
Start typing an Ex command Normal mode
|
:
|
:
|
|
Go to an older jump position Normal mode
|
Ctrl + O
|
Ctrl + O
|
|
Go to a newer jump position Normal mode
|
Ctrl + I
|
Ctrl + I
|
|
Jump to the tag under the cursor Normal mode
|
Ctrl + ]
|
Ctrl + ]
|
|
Go to where the word is defined Normal mode
|
G then D
|
G then D
|
|
Complete with the next matching word Insert mode
|
Ctrl + N
|
Ctrl + N
|
|
Complete with the previous matching word Insert mode
|
Ctrl + P
|
Ctrl + P
|
Paragraphs and lists
9 shortcuts
| Action |
Mac |
Linux |
|
Move forward a paragraph Normal mode
|
}
|
}
|
|
Move back a paragraph Normal mode
|
{
|
{
|
|
Open a new line below Normal mode
|
O
|
O
|
|
Open a new line above Normal mode
|
Shift + O
|
Shift + O
|
|
Indent the line Normal mode
|
> then >
|
> then >
|
|
Unindent the line Normal mode
|
< then <
|
< then <
|
|
Reindent the line Normal mode
|
= then =
|
= then =
|
|
Add an indent while typing Insert mode
|
Ctrl + T
|
Ctrl + T
|
|
Remove an indent while typing Insert mode
|
Ctrl + D
|
Ctrl + D
|
Search
3 shortcuts
| Action |
Mac |
Linux |
|
Enter replace mode Normal mode
|
Shift + R
|
Shift + R
|
|
Repeat the search in the same direction Normal mode
|
N
|
N
|
|
Repeat the search in the other direction Normal mode
|
Shift + N
|
Shift + N
|
Selection
1 shortcut
| Action |
Mac |
Linux |
|
Reselect the last visual area Normal mode
|
G then V
|
G then V
|
Tabs and windows
10 shortcuts
| Action |
Mac |
Linux |
|
Write changes and close the window Normal mode
|
Shift + Z then Shift + Z
|
Shift + Z then Shift + Z
|
|
Close the window without writing Normal mode
|
Shift + Z then Shift + Q
|
Shift + Z then Shift + Q
|
|
Go to the next tab page Normal mode
|
G then T
|
G then T
|
|
Go to the previous tab page Normal mode
|
G then Shift + T
|
G then Shift + T
|
|
Close the current window Normal mode
|
Ctrl + W then C
|
Ctrl + W then C
|
|
Make every window the same size Normal mode
|
Ctrl + W then =
|
Ctrl + W then =
|
|
Make the window taller Normal mode
|
Ctrl + W then +
|
Ctrl + W then +
|
|
Make the window shorter Normal mode
|
Ctrl + W then -
|
Ctrl + W then -
|
|
Move the window to a new tab page Normal mode
|
Ctrl + W then Shift + T
|
Ctrl + W then Shift + T
|
|
Go to the bottom window Normal mode
|
Ctrl + W then B
|
Ctrl + W then B
|
From Shortivo at https://shortivo.net/platforms/vim/. A dot means the maker does not document a key for that system. Nothing on this sheet was converted from one system to another.