Two modes:
  command mode: cursor moving, ...
  insert  mode: insert characters ..    (ESC to command mode)

Command Mode:
  cursor moving: hjkl  or  arrow keys 
  scrolling:     ^F, ^B, ^D, ^U 
  jumping to:    num G, :num   (keying the number, then G, no space)
  deleting:     dd, delete current line
            num dd, delete num lines
                dw, delete a word
            num dw, delete num words
                 x, delete current char
                 X, delete previous char
  paste:         p, paste after
                 P, paste before
  copy:         yy, copy current line
            num yy, copy current num lines
  search:        /, forward search
                 ?, backward search
                 n, repeat previous search
                 N, repeat previous search but in opposite direction
  search and replace:
                 :num1, num2 s/pat/replaced/[gc]
             for example:
                 :1,$ s/buffer/BUF/      from first line to last line
                 :.,$ s/money/Money/gc   from current line to last line

Insert Mode:
  insert:        i,  insert before
                 a,  append after
                 I,  insert at the beginning of the line
                 A,  append to the end of the line
  new line:      o,  a new line after
                 O,  a new line before

File:
   write back:   :w        save
                 :w fn     save to fn
   quit:         :q        quit
                 :wq       save and quit
                 :wq fn    save to fn and quit
                 ZZ        save and quit        
   read a file   :r fname  the content of fname will be inserted below current line