VI Editor Commands
Vi has two modes insertion mode and command mode.
The editor begins in command mode, where cursor movement and copy/paste editing occur.
Most commands execute as soon as typed except for “colon” commands which execute when you press the return key.
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 |
| Scroll by paragraph f/b | { } | 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 (backspace) text at cursor
|
X |
Delete 5 lines (to buffer)
|
5dd | ||
| Delete current to end of line | D |
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 |