VIM Cheat Sheet
Pay attention to uppercase vs lowercase characters in commands.
| vi filename | launch vi, open/create file |
| vi -R filename | launch vi, open file in read only mode |
| view filename | open file in read only mode |
Basic Commands
| i | Insert text before cursor |
| I | Insert text at beginning of line |
| a | Insert text after cursor |
| A | Insert text at end of line |
| o | Create new line below and change to insert mode |
| O | Create new line above and change to insert mode |
| r | Replace single character with single character |
| R | Replace text from cursor going right |
| s | Replace character with multiple characters |
| S | Replace entire line |
Deleting
| X | Delete character before cursor ( like backspace ) |
| x | Delete character at cursor ( like delete button ) |
| dw | Deletes from cursor to next word |
| d^ | Deletes from cursor to the beginning of the line |
| d$ | Deletes from cursor to the end of the line |
| dd | Deletes the line the cursor is on |
Copy and Paste
| yy | Yank - copy current line |
| 5yy | Yank - copy current line and 5 lines below |
| p | Put - paste below current line |
| P | Put - paste above current line |
Registers
| “ry | Yank/copy from register ‘r’ |
| “rp | Put/paste from register ‘r’ |
| Ctrl-r r | Paste from register ‘r’ in insert/command mode |
| :reg | Show all registers |
| :reg a b c | Show registers a, b, and c |
Deleted and yanked ….
Copying and Pasting
Moving
| k | Move up ( same as arrow key ) |
| j | Move Down ( same as arrow key ) |
| h | Moves left ( same as arrow key ) |
| l | Moves right ( same as arrow key ) |
| 0 or | | Move to beginning of line |
| $ | Move to end of line |
| W or w | Move to next word |
| B or b | Move to previous word |
| ( | Move to beginning of current sentence |
| ) | Move to beginning of next sentence |
| H | Move to top of screen |
| 9H | Moves to 9th line from the top of the screen |
| M | Move to middle of screen |
| L | Move to bottom of screen |
| 9L | Moves to 9th line from the bottom of the screen |
| :37 | go to line 37 |
More Moving
| CTRL+d | Move forward 1/2 screen |
| CTRL+f | Move forward one full screen |
| CTRL+u | Move backward 1/2 screen |
| CTRL+b | Move backward one full screen |
| CTRL+e | Move screen up one line |
| CTRL+y | Move screen down one line |
| CTRL+u | Move screen up 1/2 page |
| CTRL+d | Move screen down 1/2 page |
| CTRL+b | Move screen up one page |
| CTRL+f | Move screen down one page |
| CTRL+I | Redraw screen |
Quit, Save, and More
| q | Quit |
| q! | Quit without saving changes ( discard changes ) |
| r fileName | Read data from file called fileName |
| wq | Write and quit (save and exit) |
| w fileName | Write to file called fileName (save as) |
| w! fileName | Overwrite to file called fileName (save as forcefully) |
| !cmd | Runs shell commands and returns to Command mode |
Search and Replace
| /test | search for string “test” |
| n | find next match after search |
| :s/string | search |
| :s/pattern/replace/ | search and replace first match |
| :%s/pattern/replace/ | search and replace all matches |
Macros
References