vi editor cheatsheet
File management
Command | Description |
---|---|
vi filename |
open file to edit |
:w |
save |
:wq or :x or ZZ |
save & quit |
:q |
quit |
:q! |
quit without saving changes |
Movement
Command | Description |
---|---|
h |
move left one character |
j |
move down one character |
k |
move up one character |
l |
move right one character |
w |
move forward one word |
b |
move to the start of current word |
e |
move to the end of current word |
( |
move back one sentence |
) |
move forward one sentence |
^ |
move to the beginning of current line |
$ |
move to the end of current line |
{ |
move to start of previous paragraph or code block |
} |
move to end of next paragraph or code block |
Ctrl+F |
move forward one screenful |
Ctrl+B |
move backward one screenful |
<n>G |
move to the nth line |
G |
move to the last line |
gg |
move to the first line |
% |
move to the matching bracket |
t<char> |
move forward until the next occurrence of the character |
f<char> |
move forward over the next occurrence of the character |
T<char> |
move forward until the previous occurrence of the character |
F<char> |
move forward over the previous occurrence of the character |
Search and Replace
Command | Description |
---|---|
/pattern |
search for pattern |
n |
find the next occurrence of pattern |
:%s/pattern/replace/g |
replace every occurrence of pattern with replace |
Deletion
Command | Description |
---|---|
x |
delete a single character |
D |
delete the rest of the line |
dd |
delete the entire current line |
ndw |
delete the next n words |
:q! |
delete the next n lines |
:x,yd |
delete from line x through to line y |
Copy & Paste
Command | Description |
---|---|
yw |
yank (copy) current word |
yy |
yank current line |
y$ |
yank to the end of current line |
p |
paste the clipboard content |