Recall that c, d, and y are the basic editing operators.
| Command | Action |
|---|---|
| a | Append after cursor. |
| A | Append to end of line. |
| i | Insert before cursor. |
| I | Insert at first nonblank character of line. |
| gI | Insert at beginning of line. ( vim ) |
| o | Open a line below cursor. |
| O | Open a line above cursor. |
| Esc | Terminate insert mode. |
The following commands work in insert mode.
| Command | Action |
|---|---|
| Tab | Insert a tab. |
| Backspace | Delete previous character. |
| Ctrl-E | Insert character found just below cursor. ( vim ) |
| Ctrl-Y | Insert character found just above cursor. ( vim ) |
| Ctrl-H | Delete previous character (same as Backspace). |
| Delete | Delete current character. |
| Ctrl-W | Delete previous word. ( vim ) |
| Ctrl-A | Repeat last insertion. ( vim ) |
| Ctrl-I | Insert a tab. |
| Ctrl-N | Insert next completion of the pattern to the left of the cursor. ( vim ) |
| Ctrl-P | Insert previous completion of the pattern to the left of the cursor. ( vim ) |
| Ctrl-T | Shift line right to next shift width. ( vim ) |
| Ctrl-D | Shift line left to previous shift width. ( vim ) |
| Ctrl-U | Delete current line. |
| Ctrl-V | Insert next character verbatim. |
| Ctrl-[ | Terminate insert mode. |
Some of the control characters listed in the previous table are set by stty . Your terminal settings may differ .
The following table isn't exhaustive but illustrates the most common operations.
| Command | Action |
|---|---|
| cw | Change through end of current word. |
| cc | Change line. |
| c$ | Change text from current position to end of line. |
| C | Same as c$. |
| dd | Delete current line. |
| d$ | Delete remainder of line. |
| D | Same as d$. |
| n dd | Delete n lines. |
| dw | Delete a word. |
| d} | Delete up to next paragraph. |
| d^ | Delete back to beginning of line. |
| d/ pattern | Delete up to first occurrence of pattern . |
| dn | Delete up to next occurrence of pattern. |
| dfa | Delete up to and including a on current line. |
| dta | Delete up to (not including) a on current line. |
| dL | Delete up to last line on screen. |
| dG | Delete to end of file. |
| gqap | Reformat current paragraph to textwidth. ( vim ) |
| g~w | Switch case of word. ( vim ) |
| guw | Change word to lowercase. ( vim ) |
| gUw | Change word to uppercase. ( vim ) |
| p | Insert last deleted or yanked text after cursor. |
| gp | Same as p, but leave cursor at end of inserted text. ( vim ) |
| ]p | Same as p, but match current indention. ( vim ) |
| [p | Same as P, but match current indention. ( vim ) |
| P | Insert last deleted or yanked text before cursor. |
| gP | Same as P, but leave cursor at end of inserted text. ( vim ) |
| r x | Replace character with x . |
| Rtext | Replace text beginning at cursor. |
| s | Substitute character. |
| n s | Substitute n characters. |
| S | Substitute entire line. |
| u | Undo last change. |
| Ctrl-R | Redo last change. ( vim ) |
| U | Restore current line. |
| x | Delete current character. |
| X | Delete back one character. |
| n X | Delete previous n characters. |
| . | Repeat last change. |
| ~ | Reverse case. |
| & | Repeat last substitution. |
| Y | Copy (yank) current line to temporary buffer. |
| yy | Same as Y. |
| " x yy | Copy current line to buffer x . |
| ye | Copy text to end of word into temporary buffer. |
| yw | Same as ye. |
| y$ | Copy rest of line into temporary buffer. |
| " x dd | Delete current line into buffer x . |
| " X dd | Delete current line and append to buffer x . |
| " x p | Put contents of buffer x . |
| J | Join previous line to current line. |
| gJ | Same as J, but without inserting a space. ( vim ) |
| :j! | Same as J. |
| Ctrl-A | Increment number under cursor. ( vim ) |
| Ctrl-X | Decrement number under cursor. ( vim ) |