vi reference
Cursor Movement
h :
move left (backspace)
j :
move down
k :
move up
l :
move right (spacebar)
[return] :
move to the beginning of the next line
$ :
last column on the current line
0 :
move cursor to the first column on the current line
^ :
move cursor to first nonblank column on the current line
w :
move to the beginning of the next word or punctuation mark
W :
move past the next space
b :
move to the beginning of the previous word or punctuation mark
B :
move to the beginning of the previous word, ignores punctuation
e :
end of next word or punctuation mark
E :
end of next word, ignoring punctuation
H :
move cursor to the top of the screen
M :
move cursor to the middle of the screen
L :
move cursor to the bottom of the screen
Screen Movement
G :
move to the last line in the file
xG :
move to line x
z+ :
move current line to top of screen
z :
move current line to the middle of screen
z- :
move current line to the bottom of screen
^F :
move forward one screen
^B :
move backward one line
^D :
move forward one half screen
^U :
move backward one half screen
^R :
redraw screen
^L :
redraw screen
Inserting
r :
replace character under cursor with next character typed
R :
keep replacing character until [esc] is hit
i :
insert before cursor
a :
append after cursor
A :
append at end of line
O :
open line above cursor and enter append mode
Deleting
x :
delete character under cursor
dd :
delete line under cursor
dw :
delete word under cursor
db :
delete word before cursor
Copying Code
yy :
(yank)'copies' line which may then be put by the p(put) command. Precede with a count for multiple lines.
Put Command
P :
bring back before cursor
p :
bring back after cursor
Find Commands
? :
finds a word going backwards
/ :
finds a word going forwards
f :
finds a character on the line under the cursor going forward
F :
finds a character on the line under the cursor going backwards
t :
find a character on the current line going forward and stop one character before it
T :
find a character on the current line going backward and stop one character before it
; :
repeat last f, F, t, T
Miscellaneous Commands
. :
repeat last command
u :
undoes last command issued
U :
undoes all commands on one line
xp :
deletes first character and inserts after second (swap)
J :
join current line with the next line
^G :
display current line number
% :
if at one parenthesis, will jump to its mate
mx :
mark current line with character x
:r filename :
copies (reads) filename after cursor in file currently editing
:w :
saves the current file without quitting
MOVING
:# :
move to line #
:$ :
move to last line of file