Vi Cheat Sheet |
|
|
|
|
|
Command Line Options: |
|
Change |
vi
file |
Invoke vi on file |
|
r |
replace character |
vi
file1 file2 |
Invoke vi on files
sequentially |
|
cw |
change word |
view
file or vi -R file |
Invoke vi on file in
read-only mode |
|
cc |
change current line |
vi -r
file |
Recover file and recent
edits after a crash |
|
cmotion |
change text between the
cursor and the target of motion |
vi -t
tag |
Look up tag and start
editing at its definition |
|
C |
change to end of line |
vi +
file |
open file at last line |
|
R |
overwrite characters |
vi +n
file |
open file at line no. n |
|
S |
substitute: delete current
line and insert new text |
vi
-c command file |
open file , execute command
(which is usually search command or line no. (POSIX) |
|
s |
substitute: delete
character and insert new text |
vi
+/pattern file |
open file directly at
pattern |
|
|
|
|
|
|
|
|
Marking Position |
|
Other Commands |
mx |
mark current position as x |
|
. |
repeat last edit command |
`x |
move cursor to mark x |
|
u, U |
undo last edit, restore
current line |
`` |
return to previous mark or
context |
|
J |
delete lines |
'x |
move to beginning of line
containing mark x |
|
|
|
'' |
return to beginning of line
containing previous mark |
|
Delete, Move |
|
|
|
x |
delete character under
cursor |
Vi Commands |
|
X |
delete character before
cursor |
h,
j, k, l |
left, down, up, right |
|
dw |
delete word |
w,
W, b, B |
forward and backward by a
word |
|
dd |
delete current line |
e, E |
end of word |
|
dmotion |
delete text between the
cursor and the target of motion |
), ( |
beginning of next, previous
sentence |
|
D |
delete to end of line |
}, { |
beginning of next, previous
paragraph |
|
p, P |
put deleted text After,
Before cursor |
]],
[[ |
beginning of next, previous
section |
|
"np |
put text from delete buffer
number n after cursor (for last 9 deletions) |
0, $ |
first and last positions of
current line |
|
|
|
^ |
first nonblank character of
the current line |
|
ex edit commands |
+, - |
first nonblank character of
the next and previous lines |
|
:m |
move lines |
n | |
column n of current line |
|
:co or :t |
copy lines |
H, M,
L |
Top, Middle, Last line of
screen |
|
:.,$d |
delete from current line to
end of file |
nH,
nL |
n number of lines after Tp
line and before Last line |
|
:.,/pattern/co$ |
copy from current line through line
containing pattern to end of file. |
|
|
|
:30,60m0 |
move lines 30 through 60 to
top of file |
Line Number in Vi |
|
|
|
ctrl
G |
Display current line number |
|
Exit Commands |
nG |
move to line number n |
|
zz, :x, :wq |
write (save) and quit file
[3 types] |
G |
move to last line in file |
|
:w |
write (save) file |
:n |
move to line n in file |
|
:w! |
write (save) file,
overriding protection |
|
|
|
:30,60w newfile |
write from line 30 through
60 as new file |
Scrolling in Vi |
|
:30,60w>> file |
write from line 30
through 60 and append to file |
ctrl
F, ctrl B |
scroll Forward, Backward
one screen |
|
:w %.new |
write current buffer named
file as file.new |
ctrl
D, ctrl U |
scroll Down, Up one half
screen |
|
:q |
quit file |
ctrl
E, ctrl Y |
show one more line at
Bottom, Top of window |
|
:q! |
quit file overriding
protection |
ctrl
L |
redraw screen without
scrolling |
|
Q |
quit vi and invoke ex |
z
return, z., z- |
reposition line with
cursor: to Top, Middle, Bottom of screen |
|
:n |
edit
next file |
|
|
|
:e file2 |
edit file2 without leaving
vi |
Searching in Vi |
|
:e! |
return to version of
current file at the time of last write |
/pattern,
?pattern |
search Forward, Backward
for pattern |
|
:e # |
edit alternate file |
n, N |
repeat last search in Same
, Opposite direction |
|
:vi |
invoke vi editor from ex |
/, ? |
repeat previous search
Forward, Backward |
|
: |
invoke one ex command from
vi editor |
fx,
Fx |
search Forward, Backward
for character x in current line |
|
# |
alternate filename
(substitutes into ex command) |
tx,
Tx |
search Forward, Backward to
character Before, After x in current line |
|
% |
current filename
(substitutes into ex command) |
; |
repeat previous current
line search |
|
|
|
, |
repeat previous current
line search in opposite direction |
|
|
|
|
|
|
|
|
Editing Commands |
|
|
|
Insert |
|
|
|
|
i, a |
insert text Before, After
cursor |
|
|
|
I, A |
insert text Before
beginning, After end of line |
|
|
|
o, O |
open new line for text
Below, Above cursor |
|
|
|
|
|
|
|
|
Yank
(copy) |
|
|
|
|
yw |
copy word |
|
|
|
yy |
copy current line |
|
|
|
"ayy |
copy current line into
named buffer a (a-z). uppercase names append text |
|
|
|
ymotion |
copy text between the
cursor and the target of motion |
|
|
|
p, P |
put copied text After,
Before cursor |
|
|
|
"aP |
put text from buffer a
Before cursor (a-z) |
|
|
|
|
|
|
|
|