| :e | reload file |
| :q | quit |
| :q! | quit without saving changes |
| :w | write file |
| :w {file} | write new file |
| :x | write file and exit |
| k | up |
| h | left |
| l | right |
| j | down |
| w | next start of word |
| W | next start of whitespace-delimited word |
| e | next end of word |
| E | next end of whitespace-delimited word |
| b | previous start of word |
| B | previous start of whitespace-delimited word |
| 0 | start of line |
| $ | end of line |
| gg | go to first line in file |
| G | go to end of file |
| gk | move down one displayed line |
| gj | move up one displayed line |
| a | append after the cursor |
| A | append at the end of the line |
| i | insert before the cursor |
| I | insert at the beginning of the line |
| o | create a new line under the cursor |
| O | create a new line above the cursor |
| R | enter insert mode but replace instead of inserting chars |
| :r {file} | insert from file |
| u | undo |
| yy | yank (copy) a line |
| y{motion} | yank text that {motion} moves over |
| p | paste after cursor |
| P | paste before cursor |
| <Del> or x | delete a character |
| dd | delete a line |
| d{motion} | delete text that {motion} moves over |
| :s/foo/bar/ | replace the first match of 'foo' with 'bar' on the current line only |
| :s/foo/bar/g | replace all matches (`g` flag) of 'foo' with 'bar' on the current line only |
| :%s/foo/bar/g | replace all matches of 'foo' with 'bar' in the entire file (`:%s`) |
| :%s/foo/bar/gc | ask to manually confirm (`c` flag) each replacement |
| :e filename | edit another file |
| :split filename | split window and load another file |
| ctrl-w up arrow | move cursor up a window |
| ctrl-w ctrl-w | move cursor to another window (cycle) |
| ctrl-w_ | maximize current window |
| ctrl-w= | make all equal size |
| 10 ctrl-w+ | increase window size by 10 lines |
| :vsplit file | vertical split |
| :sview file | same as split, but readonly |
| :hide | close current window |
| :only | keep only this window open |
| :ls | show current buffers |
| :b 2 | open buffer #2 in this window |