Moving Around in the File |
| Ctrl-b |
Moves backward a page. |
| Ctrl-d |
Scrolls down half a page. |
| Ctrl-f |
Moves forward a page. |
| Ctrl-l |
Refresh the screen. |
| Ctrl-u |
Scrolls up half a page. |
| b |
Moves the cursor back one word. |
| e |
Advances the cursor to the end of the current
word. |
| G |
Moves the cursor to the last line. |
| nG |
Moves the cursor to line number n. |
| h |
Moves the cursor one space left. |
| j |
Moves the cursor one line down. |
| k |
Moves the cursor one line up. |
| l |
Moves the cursor one space right. |
| 0 |
Moves the cursor to the start of the current line. |
| w |
Advances the cursor to the next word. |
| ) |
Moves forward to the next sentence. |
| ( |
Moves backward to the previous sentence. |
| ^ |
Moves the cursor to the beginning of the current line. |
| $ |
Moves the cursor to the end of the current line. |
| % |
Finds matching brace or parenthesis. |
Note: Most vi
movement and editing commands can be automatically repeated by typing
the number of repeats before the command (e.g., 3j moves the
cursor down 3 lines). |
Text Input Commands |
| a |
Appends (just like i except starts one character
later). |
| A |
Appends to end of line. |
| i |
Inserts before cursor. |
| I |
Inserts at beginning of line. |
| o |
Opens (makes an empty line after the current one,
and inserts). |
| O |
Opens above (like 'o' except it makes an empty line before the current one). |
Note: To leave the 'i',
'a', or 'o' modes to do other commands, press the <ESC> key. For
keyboards with no separate <ESC> key, use Ctrl-[, which sends the same
ASCII code. |
Editing Commands |
| cc |
Changes the line until <ESC> is pressed. |
| cw |
Changes the word until <ESC> is
pressed. The end of the word is flagged by $. More or less text than
the original can be inserted. |
| dd |
Deletes an entire line. |
| dw |
Deletes rest of word from cursor position. |
| d) |
Deletes rest of sentence. |
| d} |
Deletes rest of paragraph. |
| D |
Deletes to end of the line. Also use 'd$'. |
| J |
Join next line to the line the cursor is on. |
| r |
Replaces the character the cursor is on. |
| R |
Writes over old text. |
| s |
Substitute character with text and keep inserting until <ESC> is pressed. |
| x |
Deletes a character. |
| ~ |
Changes a character's case. |
| :r file |
Reads in a file where the cursor is positioned. |
| :r !command |
Reads in the results of command (date, cal, finger, etc.) |
| :s/string1/string2/ |
Substitute string1 by string2 in current line (1st occurrence on line). |
| :s/string1/string2/g |
Substitute string1 by string2 in current line (all occurrences on line). |
| :n,Ns/string1/string2/ |
Substitute 1st occurrence of string1 by string2 in lines n through N. |
| :%s/string1/string2/g |
Substitutes all occurrences of string1 with string2. |
Cut/Copy and Paste Commands |
| p |
Puts last text yanked or deleted after the
cursor. |
| P |
Puts last text yanked or deleted before the
cursor. |
| yw |
Yank a copy of the word from cursor to end of
word. |
| yy |
Yank a copy of a line. |
| y) |
Yank to the end of the sentence. |
| y} |
Yank to the end of the paragraph. |
| y$ |
Yank to the end of the line. |
| y3w |
Yank the next 3 words. |
Search Commands |
| n |
Continues searching in the same direction. Use with the :s or / command. |
| N |
Searches in the opposite direction. |
| ?word |
Searches for word backwards in the text before the cursor. |
| /word |
Searches for word forward in the text after the cursor. |
Three Special Commands |
| u |
Undoes the last command you used. |
| U |
Undoes all changes made to the current line. |
| . |
Repeats the last editing or insert
command. |
Write & Exit Commands |
| :q |
Quits and leaves the editor. |
| :q! |
Forces exit without saving changes. |
| :w |
Writes the file and saves the changes. |
| :w (name) |
Writes to the file (name). |
| :wq |
Writes and quits at the same time. |
| :.,$w (name) |
Writes rest of current file to (name). |
| :x |
Same as :wq. |
| ZZ |
Same as :wq. |