TL;DR Run vimtutor and be enlightened!

Simple Editing

ActionCommand
Inserti
Appenda
Append to end of lineA
Insert line (above)O
Insert line (below)o
Delete charx
Delete worddw
Delete linedd
Delete to end of lined$
Undo Changeu
Undo LineU
RedoCtrl+R

Advanced Editing

ActionCommand
Visual Selectionv
Toggle Caseselect word and ~
Copy-and-pasteyy (copy) and p (put)
Cut-and-pastedd (cut line) and p (put)
Replace characterr (followed by the char to be replaced)
Replace modeR (enters replace mode)
Change wordce
Change everything to end of linec$
Delete in parenthesisdi(
Delete in quotesdi"
Delete all lines in file:1,$d
Global replace:%s/old/new/g
Global replace with prompt:%s/old/new/gc
ActionCommand
Navigate to beginning of line0
Navigate to end of line$
Navigate to beginning of next wordw
Navigate to end of next worde
Move to end of fileG
Move to start of filegg
Go to line number:<line number>
Previous LocationCtrl+O
Next LocationCtrl+I
Navigate to matching brace (cursor on the brace)v%
ActionCommand
Search for pattern/<pattern>
Search Backwards?<pattern>
Next Hitn
Previous HitN
Match parentheses% (at the opening/closing parenthesis)

Set Search Options

ActionCommand
Ignore case:set ic
Show partial matches:set is
Highlight matching phrases:set hls
Unset options:set no<option>
Text stats (e.g: word count)g CTRL-G

External Commands

ActionCommand
Run External Command:!<command>
Run command and dump output:.!<command>
Command completion:!<start-of-command>Ctrl+D
Save file with sudo:w !sudo tee %

Spell Check (:set spell spelllang=en_gb)

ActionCommand
Navigate to the next misspelled word]s
Navigate to the previous misspelled word[s
Alternatives to misspelled wordz=
Add word to dictionaryzg
Mark word as incorrectzw