1. Tabs
    1. Open a new tab
      1. :tabnew
    2. Open file in a new tab
      1. :tabe <file>
    3. Switch to tab on Right
      1. <ctrl> PgUp
    4. Switch to tab on Left
      1. <ctrl> PgDn
    5. Run command in all tabs
      1. :tabdo <command>
  2. Panes
    1. Split window/pane vertically
      1. :vnew
    2. Split window/pane horizontally
      1. :new
    3. Switch to pane to the left
      1. <ctrl> w + h
    4. Switch to pane below
      1. <ctrl> w + j
    5. Switch to pane above
      1. <ctrl> w + k
    6. Switch to pane on the right
      1. <ctrl> w + l
    7. Give all vertical space to current pane
      1. <ctrl> w + _
    8. Give all horizontal space to current pane
      1. <ctrl> w + |
    9. Evenly distribute space for all panes
      1. <ctrl> w + =
    10. Increase current pane height
      1. <ctrl> w + +
    11. Decrease current pane height
      1. <ctrl> w + -
    12. Increase current pane width
      1. <ctrl> w + >
    13. Decrease current pane width
      1. <ctrl> w + <
  3. File
    1. Open file
      1. :e <file>
    2. New file
      1. :enew
    3. Save current file
      1. :w
    4. Save current file as filename
      1. :w <file>
    5. Save and quit
      1. :wq
    6. Save and quit
      1. :x
    7. Quit
      1. :q
    8. Force quit
      1. :q!
    9. Delete/close buffer
      1. :bd
    10. Print file
      1. :hardcopy
  4. Location
    1. Show current position in file
      1. <ctrl> G
    2. Show line numbers
      1. :f
    3. Place mark [a-zA-Z] at cursor
      1. m[a-zA-Z]
    4. Goto mark [a-zA-Z]
      1. `[a-zA-Z]
    5. Show all marks
      1. :marks
  5. Cut/Copy/Paste/Modify
    1. Cut/Delete
      1. Delete current line
        1. dd
      2. Delete # lines
        1. #dd
      3. Delete current word
        1. dw
      4. Delete to end of line
        1. d$
      5. Delete to beginning of line
        1. d^
      6. Delete character under cursor
        1. x
      7. Delete character under cursor then enter insert mode
        1. s
      8. Delete character before cursor
        1. X
      9. Delete from line # to &
        1. :#,&d
      10. Delete line into register [a-z0-9]
        1. "[a-z0-9]dd
      11. Delete line into host clipboard
        1. "+dd
    2. Copy/Yank
      1. Yank current line
        1. yy
      2. Yank # lines
        1. #yy
      3. Yank current word
        1. yw
      4. Yank to end of line
        1. y$
      5. Yank to beginning of line
        1. y^
      6. Yank from line # to &
        1. :#,&y
      7. Yank line into register [a-z0-9]
        1. "[a-z0-9]yy
      8. Yank line into host clipboard
        1. "+yy
    3. Paste/Put
      1. Put current register at cursor
        1. p
      2. Put current register before cursor
        1. P
      3. Put register [a-z0-9] at cursor
        1. "[a-z0-9]p
      4. Put text from clipboard at cursor
        1. "+p
      5. Put current register WRT indent
        1. ]p
    4. Modify
      1. Switch case of word to CAPS
        1. gUw
      2. Switch case of word to lower
        1. guw
      3. Switch case of character under cursor
        1. ~
      4. Invert case on word
        1. g~w
      5. Replace character under cursor with #
        1. r#
      6. Replace from cursor to end of word
        1. ce
      7. Replace from cursor to end of line
        1. c$
      8. Replace # words
        1. c#w
      9. Replace between double quote pair
        1. ci"
      10. Replace between single quote pair
        1. ci'
      11. Replace between ( ) pair
        1. ci)
      12. Replace between [ ] pair
        1. ci]
      13. Replace between { } pair
        1. ci}
      14. Replace between < > pair
        1. ci>
      15. Replace between XML/HTML tag pair
        1. cit
      16. Increment number under cursor
        1. <ctrl> a
      17. Decrement number under cursor
        1. <ctrl> x
      18. Indent entire line
        1. >>
      19. Unindent entire line
        1. <<
      20. Autoindent entire line
        1. ==
      21. View contents of registers
        1. :reg
  6. Text Insertion
    1. Insert text before cursor
      1. i
    2. Insert text at beginning of line
      1. I
    3. Start overtype mode
      1. R
    4. Insert text after cursor
      1. a
    5. Insert text at end of line
      1. A
    6. Open new line following current line
      1. o
    7. Open new line before current line
      1. O
    8. Switch to visual selection mode
      1. v
    9. Switch to visual line selection mode
      1. V
    10. Switch to visual block selection mode
      1. <ctrl> V
  7. Movement
    1. Move cursor left
      1. h
    2. Move cursor down
      1. j
    3. Move cursor up
      1. k
    4. Move cursor right
      1. l
    5. Move cursor up one display line
      1. gk
    6. Move cursor down one display line
      1. gj
    7. Move cursor to top of display
      1. H
    8. Move cursor to middle of display
      1. M
    9. Move cursor to bottom of display
      1. L
    10. Move cursor forward to start of next word
      1. w
    11. Move cursor to end of next word
      1. e
    12. Move cursor backward one word
      1. b
    13. Move cursor forward one sentence
      1. )
    14. Move cursor backward one sentence
      1. (
    15. Move cursor to start of line
      1. 0
    16. Move cursor to first character of line
      1. ^
    17. Move cursor to end of line
      1. $
    18. Move cursor forward one screenful
      1. <ctrl> f
    19. Move cursor backward one screenful
      1. <ctrl> b
    20. Move cursor up half a screenful
      1. <ctrl> u
    21. Move cursor down half a screenful
      1. <ctrl> d
    22. Move cursor to top of file
      1. gg
    23. Move cursor to bottom of file
      1. G
    24. Move cursor to line #
      1. #G
    25. Move cursor forward to next character # on line
      1. f#
    26. Move cursor forward to character before the next character # on line
      1. t#
    27. Move cursor backwards character # on line
      1. F#
  8. Macros
    1. Start recording macro into register [a-z0-9]
      1. q[a-z0-9]
    2. End recording of current macro
      1. q
    3. Playback macro from register [a-z0-9]
      1. @[a-z0-9]
  9. Miscellaneous
    1. Undo
      1. u
    2. Restore line
      1. U
    3. Join line below to current line
      1. J
    4. Repeat last command
      1. .
  10. Code Folding
    1. Open Fold
      1. zo
    2. Close Fold
      1. zc
    3. Reduce fold level
      1. zr
    4. Increase fold level
      1. zm
    5. Reduce all folds
      1. zR
    6. Increase all folds
      1. zM
    7. Move to next fold downwards
      1. zj
    8. Move to next fold upward
      1. zk
    9. Delete fold
      1. zd
    10. Delete all folds
      1. zE
    11. Create fold of # lines below cursor
      1. zf#j
    12. Create fold between line # and &
      1. :#,& fold
    13. Create fold of paragraph
      1. zfap
    14. Create fold in { } brackets
      1. zfa}
    15. Create fold in ( ) brackets
      1. zfa)
    16. Create fold in [ ] bracket
      1. zfa]
    17. Create fold in < > brackets
      1. zfa>
  11. Search and Replace
    1. Find # searching forward
      1. /#
    2. Find # searching backwards
      1. ?#
    3. Continue search downwards
      1. n
    4. Continue search upwards
      1. N
    5. Move to matching bracket from under cursor
      1. %
    6. Substitute old for new on line with no prompt
      1. :s/old/new/g
    7. Substitute old for new on lines # to & with no prompt
      1. :#,&s/old/new/g
    8. Globally substitute old for new with no prompt
      1. :%s/old/new/g
    9. Globally substitute old for new with prompt
      1. :%s/old/new/gc
  12. External Calls
    1. Execute an external command in the shell
      1. :! <command>
    2. Insert the contents of file at cursor position
      1. :r <file>
    3. Insert output of command at cursor position
      1. :r !<command>