Monday, 24 March 2014
Tuesday, 15 October 2013
Vim complete binding and Shortcuts
vim Complete Key Binding List
Definitions
- UNBOUND - this key is not normally bound to any vi command
- word - a lower-case word ("w", "b", "e" commands) is defined by a consecutive string of letters, numbers, or underscore, or a consecutive string of characters that is not any of {letters, numbers, underscore, whitespace}
- Word - an upper-case word ("W", "B", "E" commands) is a consecutive sequence of non-whitespace.
- sentence
- paragraph
- cursor motion command - any command which positions the cursor is ok here, including the use of numeric prefixes. In addition, a repeat of the edit command usually means to apply to the entire current line. For example, "<<" means shift current line left; "cc" means replace entire current line; and "dd" means delete entire current line.
Key Bindings in Editing Modes
While in any edit mode (insert, replace, etc.) there are some keys that are used to adjust behaviour, rather than just to insert text.- ESC - leave edit mode, return to command mode
- ^D - move line backwards one shiftwidth. shiftwidth must be set, and either the line must be newly added, or ^T must have been used.
- ^T - move all after cursor forwards one shiftwidth
- ^H - deletes text that was entered during the current edit mode. Most versions of vi do not allow deleting to previous line.
- ^V - insert next character even if it is a editing character.
complete key binding reference
| 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 |
Subscribe to:
Posts (Atom)