In command mode, keystrokes perform functions such as moving
the cursor, searching for patterns, or quitting from the document.
All commands are referenced from the current cursor position.
Cursor movement
| Arrow Keys |
Move one space in any direction. |
| G |
Go to the last line in the file. |
| nG |
Go to line n. |
| w |
Move forward to the next word. |
| b |
Move backwards to the previous word. |
| $ |
Move to the end of the line. |
| 0 |
Move to the beginning of the line. |
| CTRL+D |
Scroll down 1/2 screen. |
| CTRL+U |
Scroll up 1/2 screen. |
| CTRL+B |
Scroll up Full. |
| CTRL+F |
Scroll down Full. |
Searching
| /string |
Search for a "string" (pattern) of characters. |
| n |
Search for the next occurrence of the "string". |
| :%s/str1/str2/g |
Replace all occurrences of str1 with str2. |
Deleting text
| x |
Delete a single character. |
| dw |
Delete a word. |
| dd |
Delete an entire line. |
| ndd |
Delete an n number of lines. |
| d$ or D |
Delete from the cursor to the end of the line. |
Copying text
| yy |
Copy (yank) a line to the buffer. |
| nyy |
Copy (yank) an n number of lines to the buffer. |
| P |
Paste text from the buffer. |
Changing text
| r |
Mark a single character for replacement. |
| cw |
Mark a word for changing. |
| cc |
Mark a line for changing. |
Miscellaneous commands
| j |
Join the line below it. |
| !cmd |
Execute a UNIX command. |
| :r file |
Read a file into vi. |
| . |
Repeat the last command. |
| u |
Undo the last command. |
Saving and exiting
| u |
Write (save) the file. |
| :q! |
Quit the file without saving changes. |
| ZZ |
Write (save) the file and quit vi. |