| Key | Action | Followed by |
| a | enter insertion mode after current character | text, ESC |
| b | back word |
| c | change command | cursor motion command |
| d | delete command | cursor motion command |
| e | end of word |
| f | find character after cursor in current line | character to find |
| g | UNBOUND |
| h | move left one character |
| i | enter insertion mode before current character | text, ESC |
| j | move down one line |
| k | move up one line |
| l | move right one character |
| m | mark current line and position | mark character tag (a-z) |
| n | repeat last search |
| o | open line below and enter insertion mode | text, ESC |
| p | put buffer after cursor |
| q | UNBOUND |
| r | replace single character at cursor | replacement character expected |
| s | substitute single character with new text | text, ESC |
| t | same as "f" but cursor moves to just before found character | character to find |
| u | undo |
| v | UNBOUND |
| w | move foreward one word |
| x | delete single character |
| y | yank command | cursor motion command |
| z | position current line | CR = top; "." = center; "-"=bottom |
| A | enter insertion mode after end of line | text, ESC |
| B | move back one Word |
| C | change to end of line | text, ESC |
| D | delete to end of line |
| E | move to end of Word |
| F | backwards version of "f" | character to find |
| G | goto line number prefixed, or goto end if none |
| H | home cursor - goto first line on screen |
| I | enter insertion mode before first non-whitespace character | text, ESC |
| J | join current line with next line |
| K | UNBOUND |
| L | goto last line on screen |
| M | goto middle line on screen |
| N | repeat last search, but in opposite direction of original search |
| O | open line above and enter insertion mode | text, ESC |
| P | put buffer before cursor |
| Q | leave visual mode (go into "ex" mode) |
| R | replace mode - replaces through end of current line, then inserts | text, ESC |
| S | substitute entire line - deletes line, enters insertion mode | text, ESC |
| T | backwards version of "t" | character to find |
| U | restores line to state when cursor was moved into it |
| V | UNBOUND |
| W | foreward Word |
| X | delete backwards single character |
| Y | yank entire line |
| Z | first half of quick save-and-exit | "Z" |
| 0 | move to column zero |
| 1-9 | numeric precursor to other commands | [additional numbers (0-9)] command |
| (SPACE) move right one character |
| ! | shell command filter | cursor motion command, shell command |
| @ | vi eval | buffer name (a-z) |
| # | UNBOUND |
| $ | move to end of line |
| % | match nearest [],(),{} on line, to its match (same line or others) |
| ^ | move to first non-whitespace character of line |
| & | repeat last ex substitution (":s ...") not including modifiers |
| * | UNBOUND |
| ( | move to previous sentence |
| ) | move to next sentence |
| \ | UNBOUND |
| | | move to column zero |
| - | move to first non-whitespace of previous line |
| _ | similar to "^" but uses numeric prefix oddly |
| = | UNBOUND |
| + | move to first non-whitespace of next line |
| [ | move to previous "{...}" section | "[" |
| ] | move to next "{...}" section | "]" |
| { | move to previous blank-line separated section | "{" |
| } | move to next blank-line separated section | "}" |
| ; | repeat last "f", "F", "t", or "T" command |
| ' | move to marked line, first non-whitespace | character tag (a-z) |
| ` | move to marked line, memorized column | character tag (a-z) |
| : | ex-submode | ex command |
| " | access numbered buffer; load or access lettered buffer | 1-9,a-z |
| ~ | reverse case of current character and move cursor forward |
| , | reverse direction of last "f", "F", "t", or "T" command |
| . | repeat last text-changing command |
| / | search forward | search string, ESC or CR |
| < | unindent command | cursor motion command |
| > | indent command | cursor motion command |
| ? | search backward | search string, ESC or CR |
| ^A | UNBOUND |
| ^B | back (up) one screen |
| ^C | UNBOUND |
| ^D | down half screen |
| ^E | scroll text up (cursor doesn't move unless it has to) |
| ^F | foreward (down) one screen |
| ^G | show status |
| ^H | backspace |
| ^I | (TAB) UNBOUND |
| ^J | line down |
| ^K | UNBOUND |
| ^L | refresh screen |
| ^M | (CR) move to first non-whitespace of next line |
| ^N | move down one line |
| ^O | UNBOUND |
| ^P | move up one line |
| ^Q | XON |
| ^R | does nothing (variants: redraw; multiple-redo) |
| ^S | XOFF |
| ^T | go to the file/code you were editing before the last tag jump |
| ^U | up half screen |
| ^V | UNBOUND |
| ^W | UNBOUND |
| ^X | UNBOUND |
| ^Y | scroll text down (cursor doesn't move unless it has to) |
| ^Z | suspend program |
| ^[ | (ESC) cancel started command; otherwise UNBOUND |
| ^\ | leave visual mode (go into "ex" mode) |
| ^] | use word at cursor to lookup function in tags file, edit that file/code |
| ^^ | switch file buffers |
| ^_ | UNBOUND |
| ^? | (DELETE) UNBOUND |
very helpful. Thanks Krupesh
ReplyDelete