These are some things I always seem to forget and have to look up again; they don't seem to all be in the same place anywhere, or stated as succinctly. Some are VIM only.
(type :help
Marking
m : set a mark at the current position in this file(a-z) (per-file)
m : set a *global* mark at the current position, reachable from different files.
:marks : list marks
:marks aF : list marks a, F
Movement
(precede any of these with a number to repeat it that many times)
` : move to the position of a mark in this file (see "Marking")
' : move to the line of a mark in this file (see "Marking")
` : move to the position of a (global) mark in another file (see "Marking")
' : move to the line of a (global) mark in another file (see "Marking")
h : move one character left
l : move one character right
k : move one character/row up
j : move one character/row down
w : move to beginning of next word after punctuation
W : move to beginning of next word after whitespace
b : move to beginning of previous word after punctuation
B : move to beginning of previous word after whitespace
e : move to end of this word
E : move to the end of this word before whitespace
0 : move to beginning of the current line (column 0)
^ : move to the non-whitespace beginning of the current line
_ : move to the non-whitespace beginning of the current line with count (e.g. 5_)
$ : move to the end of a line
g_ : move to the last non-whitespace character of the line, with count (e.g. 5g_)
gg : move to first line
G : move to last line
ng : move to line number "n"
H : move to the first line of the screen (home)
M : move to the middle line of the screen
L : move to the last line of the screen
z : re-center the screen on the current line (with the cursor)
zt : re-center the screen with the current line (with the cursor) at the top
zb :
re-center the screen with the current line (with the cursor) at the top
ctrl-D : move a half-page down
ctrl-U : move a half-page up
ctrl-B : page up (back)
ctrl-F : page down (forward)
ctrl-o : return to last cursor position
ctrl-i : go to next cursor position
% : jump to the matching (){}[]
Basic Editing
u : undo last edit
U : return last changed line to its former state
ctrl-R : redo last undone edit
cw : change text of current word
c : replace one character
c`: change text from current position to position of marker
c': change text from current line to line of marker
Copy/Cut/Paste
p : put/paste following this line
P : put/paste preceding this line
dd : delete/cut the current line
D : delete/cut from current character to the end of the line
yy : copy (yank) the current line
y$ : copy from current position to the end of the line
*y$ : copy from current position to the end of the line, place in system clipboard
*p : paste from system clipboard to following line
d`: delete from current position to position of marker a-z
d': delete from current line to line of marker a-z
y`: copy (yank) text from current position to position of marker
y': copy (yank) text from current line to line of marker
Search / Replace
/string : search forward for "string"
?string : search backward for "string"
n : find next occurrence of the search string (in the same direction as the search)
N : find previous occurrence of the search string
* : find the next occurrence of the word currently under the cursor
# : find the previous occurrence of the word currently under the cursor
g* : find the next occurrence of the search pattern under the cursor
g# : find the previous occurrence of the search pattern under the cursor
Change Case
~ : Changes the case of current character
guu : Change current line from upper to lower.
gUU : Change current LINE from lower to upper.
guw : Change to end of current WORD from upper to lower.
guaw : Change all of current WORD to lower.
gUw : Change to end of current WORD from lower to upper.
gUaw : Change all of current WORD to upper.
g~~ : Invert case to entire line
Global settings
(many of these can be permanently placed in your ~/.vimrc file)
set tabstop=4 : set how wide a "tab" is
Sources:
http://vim.wikia.com
http://stackoverflow.com/a/2966034
http://stackoverflow.com/a/7764203