| Shortcut | Function |
|---|---|
| Escape | Gets out of the current mode into the “command mode”. All keys are bound of commands. |
| i | “Insert mode” for inserting text. Keys behave as expected. |
| : | “Last-line mode” where Vim expects you to enter a command such asto save the document. |
| Shortcut | Function |
|---|---|
| h | moves the cursor one character to the left. |
| j or Ctrl + J | moves the cursor down one line. |
| k or Ctrl + P | moves the cursor up one line. |
| l | moves the cursor one character to the right. |
| 0 | moves the cursor to the beginning of the line. |
| $ | moves the cursor to the end of the line. |
| ^ | moves the cursor to the first non-empty character of the line. |
| w (lowercase) | move forward one word (next alphanumeric word) |
| W (uppercase) | move forward one word (delimited by a white space) |
| 5w | move forward five words |
| b (lowercase) | move backward one word (previous alphanumeric word) |
| B (uppercase) | move backward one word (delimited by a white space) |
| 5b | move backward five words |
| G | move to the end of the file |
| gg | move to the beginning of the file. |
| Shortcut | Function |
|---|---|
| ( | jumps to the previous sentence |
| ) | jumps to the next sentence |
| { | jumps to the previous paragraph |
| } | jumps to the next paragraph |
| [[ | jumps to the previous section |
| ]] | jumps to the next section |
| [ ] | jump to the end of the previous section |
| ] [ | jump to the end of the next section |
| Shortcut | Function |
|---|---|
| a (lowercase) | Insert text after the cursor |
| A (uppercase) | Insert text at the end of the line |
| i | Insert text before the cursor |
| o | Begin a new line below the cursor |
| O | Begin a new line above the cursor |
| :r [filename] | Insert the file [filename] below the cursor |
| :r ![command] | Execute [command] and insert its output below the cursor |
| Shortcut | Function |
|---|---|
| x | delete character at cursor |
| dw | delete a word. |
| d0 | delete to the beginning of a line. |
| d$ | delete to the end of a line. |
| d) | delete to the end of sentence. |
| dgg | delete to the beginning of the file. |
| dG | delete to the end of the file. |
| dd | delete line |
| 3dd | delete three lines |
| Shortcut | Function |
|---|---|
| r{text} | Replace the character under the cursor with {text} |
| R | Replace characters instead of inserting them |
####Copy/Paste Text
| Shortcut | Function |
|---|---|
| yy | copy current line into storage buffer |
| ["x]yy | Copy the current lines into register x |
| p (lowercase) | paste storage buffer after current line |
| P (uppercase) | paste storage buffer before current line |
| ["x]p | paste from register x after current line |
| ["x]P | paste from register x before current line |
| Shortcut | Function |
|---|---|
| u | undo the last operation. |
| Ctrl + r | redo the last undo. |
| Shortcut | Function |
|---|---|
| /searchtext | search document for searchtext going forward |
| ?searchtext | search document for searchtext going backward |
| n (lowercase) | move to the next instance of the result from the search |
| N (uppercase) | move to the previous instance of the result |
| :%s/original/replacement | Search for the first occurrence of the string “original” and replace it with “replacement” |
| :%s/original/replacement/g | Search and replace all occurrences of the string “original” with “replacement” |
| :%s/original/replacement/gc | Search for all occurrences of the string “original” but ask for confirmation before replacing them with “replacement” |
| Shortcut | Function |
|---|---|
| m {a-z A-Z} | Set bookmark {a-z A-Z} at the current cursor position |
| :marks | List all bookmarks |
| `{a-z A-Z} | Jumps to the bookmark {a-z A-Z} |
| Shortcut | Function |
|---|---|
| v (lowercase) | Enter visual mode per character |
| V (uppercase) | Enter visual mode per line |
| Esc | Exit visual mode |
| Shortcut | Function |
|---|---|
| ~ | Switch case |
| d | delete a word. |
| c | change |
| y | yank |
| > | shift right |
| < | shift left |
| ! | filter through an external command |
| Shortcut | Function |
|---|---|
| :q | Quits Vim but fails when file has been changed |
| :q! | Quit Vim without saving the changes to the file. |
| :cq | Quit always, without writing. |
| :w | Save the file |
| :w | new_name Save the file with the new_name filename |
| :wq | Save the file and quit Vim. |
| :wq! | Save the file and quit Vim always. |
| ZZ | Write file, if modified, and quit Vim |
| ZQ | Same as :q! Quits Vim without writing changes |