| h j k l | character / line motion | Left, down, up, right. The home row. |
| w | next word | Jump to the start of the next word. |
| b | previous word | Jump back to the start of the previous word. |
| e | end of word | Jump to the last character of the next word. |
| W B E | WORD motions | Same as w/b/e but punctuation does not split words. |
| 0 | start of line | Jump to column zero. |
| ^ | first non-blank | Jump to the first non-whitespace character. |
| $ | end of line | Jump to the last character of the line. |
| gg | top of file | Jump to the first line. |
| G | bottom of file | Jump to the last line. With a count, to that line. |
| { } | paragraph | Jump to the previous or next blank line. |
| % | match bracket | Jump between matching (), [] or {}. |
| f x / t x | find / till | Find the next x on the line, or stop just before it. |
| F x / T x | find / till backward | Same, searching backwards. |
| ; , | repeat find | Repeat the last f/t motion, forwards or backwards. |
| count | multiplier | 3w, 5j, 2dd — almost every command takes a count. |
| x / X | delete character | Delete under the cursor, or before it. |
| r x | replace character | Replace the character under the cursor. |
| s | substitute character | Delete the character and enter insert mode. |
| d | delete operator | d + motion. dd deletes the line, dw a word, d$ to the end. |
| c | change operator | Like d but drops you into insert mode. |
| y | yank operator | Copy. yy copies the line. |
| p / P | put | Paste after, or before, the cursor. |
| D / C | delete / change to end | Shortcut for d$ and c$ |
| cc / S | change line | Clear the line and insert. |
| i | insert | Insert before the cursor. |
| a | append | Insert after the cursor. |
| I | insert at start | Insert at the first non-blank character. |
| A | append at end | Insert at the end of the line. |
| o / O | open line | Open a new line below or above. |
| <Esc> | normal mode | Always come back. Insert is a visit, normal is home. |
| iw / aw | word object | diw deletes a word, daw deletes it plus a space. |
| i" a" i' a' | quote object | ci" changes what is inside the quotes. |
| i( a( i[ i{ | bracket object | di( deletes the contents of the parentheses. |
| ip / ap | paragraph object | dip deletes the whole paragraph. |
| v | visual mode | Select characters with motions, then d / c / y. |
| V | visual line | Select whole lines. |
| o | swap ends | Move the cursor to the other end of the selection. |
| " a-z | named register | "ayy yanks into register a, "ap pastes it. |
| u / <C-r> | undo / redo | Step back and forward through changes. |
| . | repeat | Repeat the last change. The best key in vim. |
| q a ... q | record macro | Record keystrokes into register a. |
| @ a / @@ | play macro | Replay a recorded macro, @@ repeats the last one. |
| :w | the classic | This is a game. Your progress saves itself. |