vi Commands
Switch to Text or Insert mode:
Open line above cursor |
O | ||||||
Insert text at beginning of line |
I |
Insert text at cursor |
i |
Insert text after cursor |
a |
Append text at line end |
A |
Open line below cursor |
o |
Switch to Command mode:
Switch to command mode |
<ESC> |
Cursor Movement (command mode):
Scroll Backward 1 screen |
<ctrl>b | ||||
Scroll Up 1/2 screen |
<ctrl>u | ||||
Go to beginning of line |
0 |
Go to line n |
nG |
Go to end of line |
$ |
Scroll Down 1/2 screen |
<ctrl>d |
Go to line number ## |
:## | ||
Scroll Forward 1 screen |
<ctrl>f | ||||
Go to last line |
G | ||||
Scroll by sentence f/b | ( ) | ||||
Scroll by word f/b | w b | Move left, down, up, right | h j k l |
Left 6 chars |
6h |
Directional Movement | Arrow Keys |
Go to line #6 |
6G |
Deleting text (command mode):
Change word |
cw |
Replace one character |
r | ||
Delete word |
dw |
Delete text at cursor |
x |
Delete entire line (to buffer) |
dd |
Delete current to end of line |
D |
Delete 5 lines (to buffer) |
5dd | ||
Delete lines 5-10 |
:5,10d |
Editing (command mode):
Copy line |
yy |
Copy n lines |
nyy |
Copy lines 1-2/paste after 3 |
:1,2t 3 |
Paste above current line |
P | ||||
Paste below current line |
p |
Move lines 4-5/paste after 6 |
:4,5m 6 | ||
Join previous line |
J | ||||
Search backward for string |
?string |
Search forward for string |
/string | Find next string occurrence | n |
% (entire file) s (search and replace) /old text
with new/ c (confirm) g (global - all) |
:%s/oldstring/newstring/cg |
Ignore case during search |
:set ic | ||
Repeat last command |
. |
Undo previous command |
u |
Undo all changes to line |
U |
Save and Quit (command mode):
Save changes to buffer |
:w |
Save changes and quit vi |
:wq |
Save file to new file |
:w file |
Quit without saving |
:q! |
Save lines to new file |
:10,15w file |
References:
Full list of VI commands
vi Tutorial