vi is a screen-oriented text editor computer program.
Below is a very short list of the most useful commands:
Command mode |
ESC | |
Movement command |
h, j, k, l | left, down, up, right |
w, W, b, B | forward, backward by word |
H | top of the screen |
M | middle of the screen |
L | last line of the screen |
Ctrl-F | forward one screen |
Ctrl-B | backward one screen |
Ctrl-D | forward half screen |
Ctrl-U | backward half screen |
0 (zero), $ | start, end of current line |
Inserting text |
a | append after cursor |
i | insert before cursor |
A | append to end of line |
I | insert at start of line |
o | open a line below current line |
O | open a line above current line |
r | replace char |
Delete text |
x | current character |
dh | previous character |
dw | current word |
db | previous word |
dd | entire line |
d$ | to end of line |
d0 (zero) | to start of line |
ndd | next n lines |
Undelete |
p | insert after cursor |
P | insert before cursor |
|
Goto line |
:linenumber | |
nG | Goto line n |
:7 | Goto line 7 |
Save and exit |
ZZ | write if changes and quit |
:wq | write and quit |
:w filename | save to new file |
:q! | quit vi |
Search |
/pattern <RETURN> | forward for a pattern |
?pattern <RETURN> | backward for a pattern |
n | repeat previous search |
N | repeat previous search in reverse direction |
Search and replace |
Example: | |
- Search from current line and replace first occurance
:s/search_string/replace_string/
- Search from current line and replace all matches
:s/search_string/replace_string/g
- Search from every line, replace confirmation (with [y]es)
:%s/search_string/replace_string/gc
:1,$s/search_string/replace_string/gc
- Search lines from 10 to 20
:10,20s/search_string/replace_string/g
|
Undo |
u | the latest change |
U | all changes on a line |
Concatenate |
J | concatenate two lines |
|