Navigating
h # move left
l # move right
k # move up
j # move down
w # move to the next word
W # move to next blank delimeted word
b # move to the begining of the word
B # move to the beginning of blank delimted word
e # move to the end of the word
E # move to the end of Blank delimited word
( # move sentence back
) # move sentence forward
{ # move paragraph back
} # move paragraph forward
0 # move to the begining of the line
$ # move to the end of the line
gg # move to the begining of the file
G # move to the end of the file
nG # move to nth line
:n # move to nth line
fk # move forward to letter k within current line
Fk # move back to letter k within current line
H # move to the top of the screen
M # move to the middle of the screen
L # move to the bottom of the screen
Inserting
i # insert before cursor
I # insert before line
a # append after cursor
A # append after line
cw # change word
C # change to the end of line
cc # change whole line
o # make a new line after current line
O # make a new line before current line
r # replace one character
R # replace many characters
Copy, cut and paste
y # copy selected text
yy # copy current line
:y # copy current line
d # cut selection
dd # cut current line
p # paste after cursor or after line
P # paste before cursor or before line
Deleting
x # Delete character to the right of cursor
X # delete character to the left of cursor
D # delete line contents
dd # delete current line
:d # delete current line
Searching
:/search_string # search forward for string
:?search_string # search back for string
n # jump to next search result
N # jump to previous search result
Replacing
:s/pattern/string/flags # (flag g - replace all, flag c - confirm replaces)
& # repeat last replace command
Exiting
:x # exit saving changes
ZZ # exit saving changes
:q # exit if no changes were made
:q! # exit ignoring changes
Misc
~ # CAPS on on / off
J # join lines
. # execute last text changing command
u # unco last command
U # undo all changes to line
Files
:w file # write file
:r file # read file after line
:n # go to next line
:p # go to previous line
:e file # edit file
!!program # replace line with the output of program
Buffers
"adw # cut word to buffer a
"qdw # cut word info buffer q
"fdd # cut current line into buffer f
"ap # paste from buffer a
"qp # paste from buffer q
"fp # paste from buffer f
Markers
mt # set marker t for this line
mg # set marker g for this line
`t # go to the begining of marker t line
`g # go to the begining of marker g line
't # go to first non blank character of marker t line
'g # go to first non blank character of marker g line
Ranges
:n,m # lines from n to m
:. # range - current line
:$ # range - last line
:'c # range - marker c
:% # range - all lines in file
:g/pattern/ # range - all lines that contain pattern