Vim

Development Tools
Modes
I Enter Insert mode at cursor Win mac Linux
I Enter Insert mode at start of line Win mac Linux
A Enter Insert mode after cursor Win mac Linux
A Enter Insert mode at end of line Win mac Linux
O Open new line below and enter Insert Win mac Linux
O Open new line above and enter Insert Win mac Linux
V Enter Visual mode (character) Win mac Linux
V Enter Visual Line mode Win mac Linux
CTRL+V Enter Visual Block mode Win mac Linux
ESC Return to Normal mode Win mac Linux
Navigation
h / j / k / l Move left / down / up / right Win mac Linux
W Jump to start of next word Win mac Linux
B Jump to start of previous word Win mac Linux
E Jump to end of current or next word Win mac Linux
0 Jump to start of line Win mac Linux
^ Jump to first non-blank character Win mac Linux
$ Jump to end of line Win mac Linux
gg Go to first line of file Win mac Linux
G Go to last line of file Win mac Linux
CTRL+D Scroll half-page down Win mac Linux
CTRL+U Scroll half-page up Win mac Linux
% Jump to matching bracket / parenthesis Win mac Linux
Editing
dd Delete (cut) current line Win mac Linux
yy Yank (copy) current line Win mac Linux
P Paste after cursor Win mac Linux
P Paste before cursor Win mac Linux
U Undo Win mac Linux
CTRL+R Redo Win mac Linux
X Delete character under cursor Win mac Linux
dw Delete from cursor to end of word Win mac Linux
ciw Change (replace) inner word Win mac Linux
cit Change inner tag (HTML/XML) Win mac Linux
>> Indent current line Win mac Linux
<< Unindent current line Win mac Linux
J Join current line with line below Win mac Linux
Search & Replace
/pattern Search forward for pattern Win mac Linux
?pattern Search backward for pattern Win mac Linux
N Jump to next search match Win mac Linux
N Jump to previous search match Win mac Linux
* Search forward for word under cursor Win mac Linux
:%s/old/new/g Replace all occurrences in file Win mac Linux
:s/old/new/g Replace all occurrences on current line Win mac Linux
File & Quit
:w Save file Win mac Linux
:q Quit (fails if there are unsaved changes) Win mac Linux
:wq Save and quit Win mac Linux
:q! Force quit without saving Win mac Linux
ZZ Save and quit (shorthand for :wq) Win mac Linux
:e <file> Open / edit a file Win mac Linux
:sp <file> Open file in horizontal split Win mac Linux
:vsp <file> Open file in vertical split Win mac Linux