Starting vi |
|
vi filename |
Open or create file |
vi |
Open new file to be named later |
vi-r filename |
Recover crashed file |
viewfilename |
Open file read-only |
Cursor Commands |
|
h |
Move left one character |
j |
Move down one line |
k |
Move up one line |
l |
Move right one character |
w |
Move right one word |
W |
Move right one word (past punctuation) |
b |
Move left one word |
B |
Move left one word (past punctuation) |
e |
Move to end of current word |
Return |
Move down one line |
Backspace |
Move left one character |
Spacebar |
Move right one character |
H |
Move to top of screen |
M |
Move to middle of screen |
L |
Move to bottom of screen |
Ctrl-F |
Page forward one screen |
Ctrl-D |
Scroll forward one-half screen |
Ctrl-B |
Page backward one screen |
Ctrl-U |
Scroll backward one-half screen |
Inserting Characters and Lines |
|
a |
Insert characters to right of cursor |
A |
Insert characters at end of line |
i |
Insert characters to left of cursor |
I |
Insert characters at beginning of line |
o |
Insert line below cursor |
O |
Insert line above cursor |
Changing Text |
|
cw |
Change word (or part of word) to right of cursor |
cc |
Change line |
C |
Change from cursor to end of line |
s |
Substitute string for character(s) from cursor forward |
r |
Replace character at cursor with one other character |
rReturn |
Break line |
J |
Join current line and line below |
xp |
Transpose character at cursor and character to right |
~ |
Change case of letter (upper or lower) |
u |
Undo previous command |
U |
Undo all changes to current line |
:u |
Undo previous last-line command |
Deleting Text |
|
x |
Delete character at the cursor |
X |
Delete character to the left of the cursor |
dw |
Delete word (or part of word to right of cursor) |
dd |
Delete line containing the cursor |
D |
Delete part of line to right of cursor |
dG |
Delete to end of file |
d1G |
Delete from beginning of file to cursor |
:5,10 d |
Delete lines 5-10 |
Copying and Moving Text |
|
yy |
Yank or copy line |
Y |
Yank or copy line |
p |
Put yanked or deleted line below current line |
P |
Put yanked or deleted line above current line |
:1,2 co 3 |
Copy lines 1-2 and put after line 3 |
:4,5 m 6 |
Move lines 4-5 and put after line 6 |
Setting Line Numbers |
|
:set nu |
Show line numbers |
:set nonu |
Hide line numbers |
:set ic |
Searches should ignore case |
:set noic Searches should be case-sensitive |
Finding a Line |
|
G |
Go to last line of file |
1G |
Go to first line of file |
21G |
Go to line 21 |
Searching and Replacing |
|
/string |
Search for string |
?string |
Search backward for string |
n |
Find next occurrence of string in search direction |
N |
Find previous occurrence of string in search direction |
:g/search/s//replace/g |
Search and replace |
Clearing the Screen |
|
Ctrl-L |
Clear (refresh) scrambled screen |
Inserting a File into a File |
|
:r filename |
Insert (read) file after cursor |
:34r filename |
Insert file after line 34 |
Saving and Quitting |
|
:w |
Save changes (write buffer) |
:w filename |
Write buffer to named file |
:wq |
Save changes and quit vi |
ZZ |
Save changes and quit vi |
:q! |
Quit without saving changes |