VI commands

Move commands

k up line
j down line
beginning of next line
l right space
right space
h left space
left space

w word forward
W word forward, ignore punctuation
e end of word
E end of word, ignore punctuation
b word backward
B word backward, ignore punctuation
0 beginning of line
^ first non-whitespace character on line
$ end of line
nG goto line n
G goto last line

^F scroll forward full screen
^D scroll forward half screen
^B back screen
^U back half screen

) next sentence
( previous sentence
} next paragraph
{ previous paragraph

H top line on screen
M middle line on screen
L bottom line on screen

Delete Commands

x under cursor
X before cursor
D rest of line
dd entire line
dw delete word

Change Commands

s under cursor
S same as cc
C rest of line
cc entire line
cw change word
r replace single char

Insert Commands

a after cursor
A at end of line
i before cursor
I at beginning of line
o open line below
O open line above current

Miscellaneous

u undo last change
. repeat last change
/ find forward (down)
? find backwards
n find next (same as /)
N find next in opposite direction
yw yank word
yy yank line
y yank any amount given my a move command
p put last thing yanked or deleted AFTER cursor
R overwrite characters

Some handy combinations

xp transpose two characters
deep transpose two words
ddp transpose two lines

ex Commands

:se nu turn on line numbering
:se nonu turn off above
:r read in a file
:! execute a shell command