write   save
change    replace
                                                                                            copy
                        Cheat Sheet                                                 yank
                    f
                  is
                lu
              uz
                                                                                     put    paste
                                                                                   delete   cut
                                                                                       ^r   Ctrl + r
Cursor movement
h        j              k   l
H - move to top of screen                       0 - jump to the start of a line
M - move to middle of screen                    ^ - jump to the first non-blank character
                                                    of the line (same as 0w)
L - move to bottom of screen
                                                $ - jump to the end of a line
w - jump forwards to the start of a word
                                                gg - go to the first line of the document
W - jump forwards to the start of a word
                                                g_ - jump to the last non-blank character
    (Only whitespaces delimit words)
                                                     of the line
e - jump forwards to the end of a word          gd - highlight occurrences of word under cursor
E - jump forwards to the end of a word          G - go to the last line of the document
    (Only whitespaces delimit words)
                                                nG - go to line n (6G goes to line 6)
b - jump backwards to the start of a word
                                                tx - jump before next occurrence of character x
B - jump backwards to the start of a word
    (Only whitespaces delimit words)            fx - jump to next occurrence of character x
                                                ; - repeat last f, t, F or T instance
Editing
r - replace single character under the cursor     s - delete character and substitute text
R - replace multiple characters                  SS - delete line and substitute text (same as cc)
J - join line below with current line            xp - transpose two letters
cc - change (replace) entire line                 u - undo
cw - change to the end of the word               ^r - redo
c$ - change to the end of the line                     - repeat last command
Inserting / Appending
i - insert before the cursor                      o - open a blank line below the cursor
I - insert at the beginning of the line           O - open a blank line above the cursor
a - append after the cursor                      Esc   - exit insert mode
A - append at the end of the line
Marking text (visual mode)
v - start visual mode                                     ap - mark a paragraph
V - start linewise visual mode                            ab - mark a block with ()
^v - start visual block mode                              aB - mark a block with {}
aw - mark a word                                          ib - mark content of a block with ()
as - mark a sentence                                      iB - mark content of a block with {}
                                                          Esc   - exit visual mode
Visual commands
 > - shift text right                                      y - yank (copy) marked text
 < - shift text left                                      Sd - delete marked text
 ~ - switch text/letter case
Cut and paste
yy - yank a line                                           dd - delete a line
yw
 I - yank the characters of the word from                   I - delete the characters of the word from
                                                           dw
     cursor position to the start of next word                  cursor position to the start of next word
                                                            A
y$ - yank to the end of line                               d$ - delete to the end of line
 p - put after the cursor                                  x - delete character under the cursor
 P - put before the cursor                                 X - delete character before the cursor
Exiting
:w - write the file but don't exit                         :!    - execute external command (e.g. :!date)
:w !sudo tee %          - write current file with sudo     :wq   or   :x   - write changes and quit
:w fname - write the file as fname but don't exit           q - quit (fails if any anything has changed)
:r fname - retrieve fname and put it below cursor         Sq! - quit and discard any unsaved changes
Search and replace
 /pattern - search forward for pattern                  % - go to match of a ( , ) , [ , ] , { , or } under cursor
 I?pattern - search backward for pattern                :s/old/new - replace first old with new in a line
n - repeat search in the same direction                 :s/old/new/g         - replace all 'old's with new in the
                                                                               whole line
N - repeat search in the opposite direction
                                                        :%s/old/new/g - replace all 'old's with new in the
^o - go back to older positions                                               whole file
                                                        :%s/old/new/gc         - replace all 'old's with new in the
^i - go forward to newer positions                                               whole file with confirmations
      Global
       :help keyword              - open help for keyword             :saveas file - save as file
       :o file - open file                                             K - open man page for word under the cursor
      Operators                                             Motions
       c - change                                           w - until start of next word excluding its first character
       d - delete                                           e - to the end of current word including the last character
       y - yank                                             $ - to the end of line including the last character
       ~ - swap case                                        G - move cursor to the end of file
       > - shift text right                                 k - move cursor up
       < - shift text left
      Operators, motions and counts
             operator + motion
                 dw - delete from cursor to next word
                 de - delete from cursor to end of current word
             count + motion
                 5e - move cursor to the end of fifth word forward
                 2b - move cursor two words backward
                 2G - go to line 2
             operator + count + motion
                 d2w - delete next two words
                 >3$ - indent three lines
                 y10G - yank line 10
These are not exhaustive lists.