## Basics
| Motion | Effect |
| ------- | -------------------------------------- |
| `j`/`k` | Down/up |
| `h`/`l` | Left/right |
| `w`/`b` | Move forward/backward by word |
| `e` | Move to end of current word |
| `0` | Beginning of line |
| `^` | First non-whitespace character of line |
| `
| End of line |
## Editing
| Motion | Effect |
| -------- | ----------------------------- |
| `x` | Delete character under cursor |
| `r` | Replace single character |
| `dd` | Delete entire line |
| `yy` | Yank (copy) entire line |
| `p` | Paste after cursor |
| `P` | Paste before cursor |
| `u` | Undo |
| `ctrl+r` | Redo |
## Mode Switching
| Motion | Effect |
| ------ | ------------------------------ |
| `i` | Insert before cursor |
| `a` | Insert after cursor |
| `I` | Insert at beginning of line |
| `A` | Insert at end of line |
| `o` | Open new line above and insert |
| `O` | Open new line below and insert |
| `Esc` | Return to normal mode |
## Deleting Words
| Motion | Effect |
| ------ | ---------------------------------------------------------------------- |
| `dw` | Delete from cursor to start of next word |
| `db` | Delete from cursor backward to start of current/previous word |
| `d3w` | Delete 3 words forward |
| `d2b` | Delete 2 words backward |
| `dW` | Delete forward to next whitespace (treats punctuation as part of word) |
| `diw` | Delete inner word (deletes whole word regardless of cursor position) |
| `daw` | Delete a word including surrounding whitespace |
## Working with Parentheses, Braces, and Brackets
| Motion | Effect |
| -------------- | -------------------------------------------------------------- |
| `di(` or `di)` | Delete everything inside parentheses |
| `da(` | Delete everything inside parentheses including the parentheses |
| `di{` or `di}` | Delete everything inside braces |
| `da{` | Delete everything inside braces including the braces |
| `ci(` | Change (delete and enter insert mode) inside parentheses |
| `yi{` | Yank (copy) everything inside braces |
The pattern is `d`/`c`/`y` + `i`/`a` + delimiter, where `i` means "inner" (just the content) and `a` means "around" (including the delimiters).