*index.txt* For Vim version 5.0j. Last modification: 1997 Jun 01 VIM REFERENCE MANUAL by Bram Moolenaar This file contains a list of all commands for each mode, with a tag and a short description. The lists are sorted on ASCII value. Tip: When looking for certain functionality, use a search command. E.g., to look for deleting something, use: "/delete". 1. Insert mode |insert-index| 2. Normal mode |normal-index| 2.1. Text objects |objects| 2.2. Window commands |CTRL-W| 2.3. Square bracket commands |[| 2.4. Commands starting with 'g' |g| 3. Visual mode |visual-index| 4. Command-line editing |ex-edit-index| 5. EX commands |ex-cmd-index| For an overview of options see help.txt |option_list|. For a complete description of each option see options.txt |options|. ============================================================================== 1. Insert mode *insert-index* tag char action ----------------------------------------------------------------------- |i_CTRL-@| CTRL-@ insert previously inserted text and stop insert |i_CTRL-A| CTRL-A insert previously inserted text |i_CTRL-B| CTRL-B Only if compiled with TOGGLE_REVINS (which is not the default): toggle 'revins' (backwards insert) option. |i_CTRL-C| CTRL-C quit insert mode, without checking for abbreviation. |i_CTRL-D| CTRL-D delete one shiftwidth of indent in the current line |i_CTRL-E| CTRL-E insert the character which is below the cursor CTRL-F not used CTRL-G reserved for future expansion |i_| delete character before the cursor |i_digraph| {char1}{char2} enter digraph (only when 'digraph' option set) |i_CTRL-H| CTRL-H same as |i_| insert a character |i_CTRL-I| CTRL-I same as |i_| same as |i_CTRL-J| CTRL-J same as |i_CTRL-K| CTRL-K {char1} {char2} enter digraph CTRL-L not used |i_| begin new line |i_CTRL-M| CTRL-M same as |i_CTRL-N| CTRL-N find next match for keyword in front of the cursor |i_CTRL-O| CTRL-O execute a single command and return to insert mode |i_CTRL-P| CTRL-P find previous match for keyword in front of the cursor |i_CTRL-Q| CTRL-Q same as CTRL-V (used for terminal control flow) |i_CTRL-R| CTRL-R <0-9a-z"%#:=> insert the contents of a register CTRL-S (used for terminal control flow) |i_CTRL-T| CTRL-T insert one shiftwidth of indent in current line |i_CTRL-U| CTRL-U delete all entered characters in the current line |i_CTRL-V| CTRL-V {char} insert next non-digit literally |i_CTRL-V_digit| CTRL-V {number} insert three digit decimal number as a single byte. |i_CTRL-W| CTRL-W delete word before the cursor |i_CTRL-X| CTRL-X {mode} enter CTRL-X sub mode, see below |i_CTRL-Y| CTRL-Y insert the character which is above the cursor CTRL-Z not used |i_| end insert mode |i_CTRL-[| CTRL-[ same as CTRL-\ not used CTRL-] not used CTRL-^ not used |i_CTRL-_| CTRL-_ change language (RIGHTLEFT) to '~' not used, except '0' and '^' followed by CTRL-D |i_0_CTRL-D| 0 CTRL-D delete all indent in the current line |i_^_CTRL-D| ^ CTRL-D delete all indent in the current line, restore it in the next line |i_| cursor past end of file |i_| cursor to start of file |i_| cursor one word left |i_| cursor one word right |i_| delete character under the cursor Meta characters (0x80 to 0xff, 128 to 255) not used |i_| cursor one line down |i_| cursor past end of line |i_| same as |i_| stop insert mode and display help window |i_| cursor to start of line |i_| toggle Insert/Replace mode |i_| cursor one character left |i_| cursor at mouse click |i_| one screenfull forward |i_| one screenfull backward |i_| cursor one character right |i_| same as |i_| cursor one word left |i_| cursor one word right |i_| same as |i_| cursor one line up commands in CTRL-X submode |i_CTRL-X_CTRL-D| CTRL-X CTRL-D complete defined identifiers |i_CTRL-X_CTRL-E| CTRL-X CTRL-E scroll up |i_CTRL-X_CTRL-F| CTRL-X CTRL-F complete file names |i_CTRL-X_CTRL-I| CTRL-X CTRL-I complete identifiers |i_CTRL-X_CTRL-K| CTRL-X CTRL-K complete identifers from dictionary |i_CTRL-X_CTRL-L| CTRL-X CTRL-L complete whole lines |i_CTRL-X_CTRL-Y| CTRL-X CTRL-Y scroll down |i_CTRL-X_CTRL-]| CTRL-X CTRL-] complete tags ============================================================================== 2. Normal mode *normal-index* CHAR any non-blank chararacter WORD any sequences of non-blank characters N a number entered before the command {motion} a cursor movement command Nmove the text that is moved over with a {motion} SECTION a section that possibly starts with '}' instead of '{' note: 1 = cursor movement command; 2 = can be undone/redone tag char note action in Normal mode ------------------------------------------------------------------------------ CTRL-@ not used |CTRL-A| CTRL-A 2 add N to number at/after cursor |CTRL-B| CTRL-B 1 scroll N screens Backwards |CTRL-C| CTRL-C interrupt current (search) command |CTRL-D| CTRL-D scroll Down N lines (default: half a screen) |CTRL-E| CTRL-E scroll N lines upwards (N lines Extra) |CTRL-F| CTRL-F 1 scroll N screens Forward |CTRL-G| CTRL-G display current file name and position || 1 same as "h" |CTRL-H| CTRL-H 1 same as "h" || 1 go to N newer entry in jump list |CTRL-I| CTRL-I 1 same as || 1 same as "j" |CTRL-J| CTRL-J 1 same as "j" CTRL-K not used |CTRL-L| CTRL-L redraw screen || 1 cursor to the first CHAR N lines lower |CTRL-M| CTRL-M> 1 same as |CTRL-N| CTRL-N 1 same as "j" |CTRL-O| CTRL-O 1 go to N older entry in jump list |CTRL-P| CTRL-P 1 cursor N lines upward CTRL-Q (used for terminal control flow) |CTRL-R| CTRL-R 2 redo changes which were undone with 'u' CTRL-S (used for terminal control flow) |CTRL-T| CTRL-T jump to N older Tag in tag list |CTRL-U| CTRL-U scroll N lines Upwards (default: half a screen) |CTRL-V| CTRL-V start blockwise Visual mode |CTRL-W| CTRL-W {char} window commands, see |CTRL-W| |CTRL-X| CTRL-X 2 subtract N from number at/after cursor |CTRL-Y| CTRL-Y scroll N lines downwards |CTRL-Z| CTRL-Z suspend program (or start new shell) CTRL-[ not used CTRL-\ not used |CTRL-]| CTRL-] :ta to ident under cursor |CTRL-^| CTRL-^ edit Nth alternate file (equivalent to ":e #N") CTRL-_ not used || 1 same as "l" |!| !{motion}{filter} 2 filter Nmove text through the {filter} command |!!| !!{filter} 2 filter N lines through the {filter} command |quote| " use buffer for next delete, yank or put (upper case to append) (<.%#:> only work with put) |#| # 1 search backward for the Nth occurrence of the ident under the cursor |$| $ 1 cursor to the end of Nth next line |%| % 1 find the next (curly/square) bracket on this line and go to its match, or go to matching comment bracket, or go to matching preprocessor directive. |N%| {count}% 1 go to N percentage in the file |&| & 2 repeat last :s |'| ' 1 cursor to the first CHAR on the line with mark |''| '' 1 cursor to the first CHAR of the line where the cursor was before the latest jump. |'<| '< 1 cursor to the first CHAR of the line where highlighted area starts/started |'>| '> 1 cursor to the first CHAR of the line where highlighted area ends/ended |'[| '[ 1 cursor to the first CHAR on the line of the start of last operated text or start of putted text |']| '] 1 cursor to the first CHAR on the line of the end of last operated text or end of putted text |(| ( 1 cursor N sentences backward |)| ) 1 cursor N sentences forward |star| * 1 search forward for the Nth occurrence of the ident under the cursor |+| + 1 cursor to the first CHAR N lines lower |,| , 1 repeat latest f, t, F or T in opposite direction N times |-| - 1 cursor to the first CHAR N lines higher |.| . 2 repeat last change with count replaced with N |/| /{pattern} 1 search forward for the Nth occurrence of {pattern} |/| / 1 search forward for {pattern} of last search |count| 0 1 cursor to the first char of the line |count| 1 prepend to command to give a count |count| 2 " |count| 3 " |count| 4 " |count| 5 " |count| 6 " |count| 7 " |count| 8 " |count| 9 " |:| : start entering an Ex command |N:| {count}: start entering an Ex command with range from current line to N lines down |;| ; 1 repeat latest f, t, F or T N times |<| <{motion} 2 shift Nmove lines one 'shiftwidth' leftwards |<<| << 2 shift N lines one 'shiftwidth' leftwards |=| ={motion} 2 filter Nmove lines through "indent" |==| == 2 filter N lines through "indent" |>| >{motion} 2 shift Nmove lines one 'shiftwidth' rightwards |>>| >> 2 shift N lines one 'shiftwidth' rightwards |?| ? 1 search backward for the Nth previous occurrence of |?| ? 1 search backward for {pattern} of last search |@| @ 2 execute the contents of named buffer N times |@:| @: repeat the previous ":" command N times |@@| @@ 2 repeat the previous @ N times |A| A 2 append text at the end of the line N times |B| B 1 cursor N WORDS backward |C| ["x]C 2 change from the cursor position to the end of the line, and N-1 more lines [into buffer x]; synonym for "c$" |D| ["x]D 2 delete the characters under the cursor until the end of the line and N-1 more lines [into buffer x]; synonym for "d$" |E| E 1 cursor forward to the end of WORD N |F| F{char} 1 cursor to the Nth occurrence of {char} to the left |G| G 1 cursor to line N, default last line |H| H 1 cursor to line N from top of screen |I| I 2 insert text before the first CHAR on the line N times |J| J 2 Join N lines; default is 2 |K| K lookup Keyword under the cursor with 'keywordprg' |L| L 1 cursor to line N from bottom of screen |M| M 1 cursor to middle line of screen |N| N 1 repeat the latest '/' or '?' N times in opposite direction |O| O 2 begin a new line above the cursor and insert text, repeat N times |P| ["x]P 2 put the text [from buffer x] before the cursor N times |Q| Q switch to "Ex" mode |R| R 2 enter replace mode: overtype existing characters, repeat the entered text N-1 times |S| ["x]S 2 delete N lines [into buffer x] and start insert; synonym for "^cc" or "0cc", depending on autoindent |T| T{char} 1 cursor till after Nth occurrence of {char} to the left |U| U 2 undo all latest changes on one line |V| V start linewise Visual mode |W| W 1 cursor N WORDS forward |X| ["x]X 2 delete N characters before the cursor [into buffer x] |Y| ["x]Y yank N lines [into buffer x]; synonym for "yy" |ZZ| ZZ store current file if modified, and exit |ZQ| ZQ exit current file always |[| [{char} square bracket command (see below) \ not used |]| ]{char} square bracket command (see below) |^| ^ 1 cursor to the first CHAR of the line |_| _ 1 cursor to the first CHAR N - 1 lines lower |`| ` 1 cursor to the mark |`<| `< 1 cursor to the start of the highlighted area |`>| `> 1 cursor to the end of the highlighted area |`[| `[ 1 cursor to the start of last operated text or start of putted text |`]| `] 1 cursor to the end of last operated text or end of putted text |``| `` 1 cursor to the position before latest jump |a| a 2 append text after the cursor N times |b| b 1 cursor N words backward |c| ["x]c{motion} 2 delete Nmove text [into buffer x] and start insert |cc| ["x]cc 2 delete N lines [into buffer x] and start insert |d| ["x]d{motion} 2 delete Nmove text [into buffer x] |dd| ["x]dd 2 delete N lines [into buffer x] |e| e 1 cursor forward to the end of word N |f| f{char} 1 cursor to Nth occurrence of {char} to the right |g| g{char} extended commands, see below |h| h 1 cursor N chars to the left |i| i 2 insert text before the cursor N times |j| j 1 cursor N lines downward |k| k 1 cursor N lines upward |l| l 1 cursor N chars to the right |m| m set mark at cursor position |n| n 1 repeat the latest '/' or '?' N times |o| o 2 begin a new line below the cursor and insert text, repeat N times |p| ["x]p 2 put the text [from register x] after the cursor N times |q| q<0-9a-zA-Z"> record typed characters into named register <0-9a-zA-Z"> (upper case to append) |q| q (while recording) stops recording |r| r{char} 2 replace N chars with {char} |s| ["x]s 2 (substitute) delete N characters [into buffer x] and start insert |t| t{char} 1 cursor till before Nth occurrence of {char} to the right |u| u 2 undo changes |v| v start characterwise Visual mode |w| w 1 cursor N words forward |x| ["x]x 2 delete N characters under and after the cursor [into buffer x] |y| ["x]y{motion} yank Nmove text [into buffer x] |yy| ["x]yy yank N lines [into buffer x] |z| z redraw, cursor line to top of window, cursor on first non-blank |zN| z{height} redraw, make window {height} lines high |z.| z. redraw, cursor line to center of window, cursor on first non-blank |z-| z- redraw, cursor line at bottom of window, cursor on first non-blank |zb| zb redraw, cursor line at bottom of window |ze| ze when 'wrap' off scroll horizontally to position the cursor at the end (right side) of the screen |zh| zh when 'wrap' off scroll screen N characters to the right |zl| zl when 'wrap' off scroll screen N characters to the left |zs| zs when 'wrap' off scroll horizontally to position the cursor at the start (left side) of the screen |zt| zt redraw, cursor line at top of window |zz| zz redraw, cursor line at center of window |z| z same as "zh" |z| z same as "zl" |{| { 1 cursor N paragraphs backward |bar| | 1 cursor to column N |}| } 1 cursor N paragraphs forward |~| ~ 2 'tildeop' off: switch case of N characters under cursor and move the cursor N characters to the right |~| ~{motion} 'tildeop' on: switch case of Nmove text || 1 same as "G" || 1 same as "gg" || 1 same as "b" || ":ta" to the keyword at the mouse click || 1 same as "w" || same as "CTRL-T" || ["x] 2 same as "x" |N| {count} remove the last digit from {count} || 1 same as "j" || 1 same as "$" || same as || open a help window || 1 same as "0" || 2 same as "i" || 1 same as "h" || 1 move cursor to the mouse click position || 2 same as "P" at the mouse click position || same as CTRL-F || same as CTRL-B || 1 same as "l" || start Visual mode, move cursor to the mouse click position || 1 same as CTRL-F || 1 same as "b" || same as "*" at the mouse click position || 1 same as "w" || same as "#" at the mouse click position || 1 same as CTRL-B || 2 same as "u" || 1 same as "k" ============================================================================== 2.1 Text objects *objects* These can be used after an operator or in Visual mode to select an object tag command action in Normal mode ------------------------------------------------------------------------------ |v_aB| aB "a Block" from "[(" and "])" (with brackets) |v_aW| aW "a WORD" (with white space) |v_ab| ab "a block" from "[{" to "]}" (with braces) |v_ap| ap "a paragraph" (with white space) |v_as| as "a sentence" (with white space) |v_aw| aw "a word" (with white space) |v_iB| iB "inner Block" from "[(" and "])" |v_iW| iW "inner WORD" |v_ib| ib "inner block" from "[{" to "]}" |v_ip| ip "inner paragraph" |v_is| is "inner sentence" |v_iw| iw "inner word" ============================================================================== 2.2 Window commands *CTRL-W* tag command action in Normal mode ------------------------------------------------------------------------------ |CTRL-W_CTRL-B| CTRL-W CTRL-B same as "CTRL-W b" |CTRL-W_CTRL-C| CTRL-W CTRL-C same as "CTRL-W c" |CTRL-W_CTRL-D| CTRL-W CTRL-D same as "CTRL-W d" |CTRL-W_CTRL-F| CTRL-W CTRL-F same as "CTRL-W f" |CTRL-W_CTRL-I| CTRL-W CTRL-I same as "CTRL-W i" |CTRL-W_CTRL-J| CTRL-W CTRL-J same as "CTRL-W j" |CTRL-W_CTRL-K| CTRL-W CTRL-K same as "CTRL-W k" |CTRL-W_CTRL-N| CTRL-W CTRL-N same as "CTRL-W n" |CTRL-W_CTRL-O| CTRL-W CTRL-O same as "CTRL-W o" |CTRL-W_CTRL-P| CTRL-W CTRL-P same as "CTRL-W p" |CTRL-W_CTRL-Q| CTRL-W CTRL-Q same as "CTRL-W q" |CTRL-W_CTRL-R| CTRL-W CTRL-R same as "CTRL-W r" |CTRL-W_CTRL-S| CTRL-W CTRL-S same as "CTRL-W s" |CTRL-W_CTRL-T| CTRL-W CTRL-T same as "CTRL-W t" |CTRL-W_CTRL-W| CTRL-W CTRL-W same as "CTRL-W w" |CTRL-W_CTRL-X| CTRL-W CTRL-X same as "CTRL-W x" |CTRL-W_CTRL-]| CTRL-W CTRL-] same as "CTRL-W ]" |CTRL-W_CTRL-^| CTRL-W CTRL-^ same as "CTRL-W ^" |CTRL-W_CTRL-_| CTRL-W CTRL-_ same as "CTRL-W _" |CTRL-W_+| CTRL-W + increase current window height N lines |CTRL-W_-| CTRL-W - decrease current window height N lines |CTRL-W_=| CTRL-W = make all windows the same height |CTRL-W_R| CTRL-W R rotate windows upwards N times |CTRL-W_S| CTRL-W S same as "CTRL-W s" |CTRL-W_W| CTRL-W W go to N previous window (wrap around) |CTRL-W_]| CTRL-W ] split window and jump to tag under cursor |CTRL-W_^| CTRL-W ^ split current window and edit alternate file N |CTRL-W__| CTRL-W _ set current window height to N (default: very high) |CTRL-W_b| CTRL-W b go to bottom window |CTRL-W_c| CTRL-W c close current window (like ":close") |CTRL-W_d| CTRL-W d split window and jump to definition under the cursor |CTRL-W_f| CTRL-W f split window and edit file name under the cursor |CTRL-W_i| CTRL-W i split window and jump to declaration of identifier under the cursor |CTRL-W_j| CTRL-W j go to N next window (stop at last window) |CTRL-W_k| CTRL-W k go to N previous window (stop at first window) |CTRL-W_n| CTRL-W n open new window, N lines high |CTRL-W_o| CTRL-W o close all but current window (like ":only") |CTRL-W_p| CTRL-W p go to previous (last accessed) window |CTRL-W_q| CTRL-W q quit current window (like ":quit") |CTRL-W_r| CTRL-W r rotate windows downwards N times |CTRL-W_s| CTRL-W s split current window in two parts, new window N lines high |CTRL-W_t| CTRL-W t go to top window |CTRL-W_w| CTRL-W w go to N next window (wrap around) |CTRL-W_x| CTRL-W x exchange current window with window N (default: next window) |CTRL-W_| CTRL-W same as "CTRL-W j" |CTRL-W_| CTRL-W same as "CTRL-W k" ============================================================================== 2.3 Square bracket commands *[* *]* tag char note action in Normal mode ------------------------------------------------------------------------------ |[_CTRL-D| [_CTRL-D jump to first #define found in current and included files matching the word under the cursor, start searching at beginning of current file |[_CTRL-I| [_CTRL-I jump to first line in current and included files that contains the word under the cursor, start searching at beginning of current file |[#| [# 1 cursor to N previous unmatched #if, #else or #ifdef |[(| [( 1 cursor N times back to unmatched '(' |[star| [* 1 same as "[/" |[/| [/ 1 cursor to N previous start of a C comment |[D| [D list all defines found in current and included files matching the word under the cursor, start searching at beginning of current file |[I| [I list all lines found in current and included files that contain the word under the cursor, start searching at beginning of current file |[P| [P 2 same as "[p" |[[| [[ 1 cursor N sections backward |[]| [] 1 cursor N SECTIONS backward |[d| [d show first #define found in current and included files matching the word under the cursor, start searching at beginning of current file |[f| [f same as "gf" |[i| [i show first line found in current and included files that contains the word under the cursor, start searching at beginning of current file |[p| [p 2 like "P", but adjust indent to current line |[{| [{ 1 cursor N times back to unmatched '{' |[ [ 2 same as "[p" |]_CTRL-D| ]_CTRL-D jump to first #define found in current and included files matching the word under the cursor, start searching at cursor position |]_CTRL-I| ]_CTRL-I jump to first line in current and included files that contains the word under the cursor, start searching at cursor position |]#| ]# 1 cursor to N next unmatched #endif or #else |])| ]) 1 cursor N times forward to unmatched ')' |]star| ]* 1 same as "]/" |]/| ]/ 1 cursor to N next end of a C comment |]D| ]D list all #defines found in current and included files matching the word under the cursor, start searching at cursor position |]I| ]I list all lines found in current and included files that contain the word under the cursor, start searching at cursor position |]P| ]P 2 same as "[p" |][| ][ 1 cursor N SECTIONS forward |]]| ]] 1 cursor N sections forward |]d| ]d show first #define found in current and included files matching the word under the cursor, start searching at cursor position |]f| ]f same as "gf" |]i| ]i show first line found in current and included files that contains the word under the cursor, start searching at cursor position |]p| ]p 2 like "p", but adjust indent to current line |]}| ]} 1 cursor N times forward to unmatched '}' |] ] 2 same as "]p" ============================================================================== 2.4 Commands starting with 'g' *g* tag char note action in Normal mode ------------------------------------------------------------------------------ |g#| g# 1 like "#", but without using "\<" and "\>" |g$| g$ 1 when 'wrap' off go to rightmost character of the current line that is on the screen; when 'wrap' on go to the rightmost character of the current screen line |gstar| g* 1 like "*", but without using "\<" and "\>" |g0| g0 1 when 'wrap' off go to leftmost character of the current line that is on the screen; when 'wrap' on go to the leftmost character of the current screen line |gD| gD 1 goto definiton of word under the cursor in current file |gE| gE 1 go backwards to the end of the previous WORD |gI| gI 2 like "I", but always start in column 1 |gU| gU{motion} 2 make Nmove text uppercase |g^| g^ 1 when 'wrap' off go to leftmost non-white character of the current line that is on the screen; when 'wrap' on go to the leftmost non-white character of the current screen line |g_CTRL-G| g_CTRL-G show information about current cursor position |ga| ga print ascii value of character under the cursor |gd| gd 1 goto definiton of word under the cursor in current function |ge| ge 1 go backwards to the end of the previous word |gf| gf start editing the file whose name is under the cursor |gg| gg 1 cursor to line N, default first line |gj| gj 1 like "j", but when 'wrap' on go N screen lines down |gk| gk 1 like "k", but when 'wrap' on go N screen lines up |gq| gq{motion} 2 format Nmove text |gs| gs goto sleep for N seconds (default 1) |gu| gu{motion} 2 make Nmove text lowercase |gv| gv reselect the previous Visual area |g~| g~{motion} 2 swap case for Nmove text |g| g 1 same as "gj" |g| g 1 same as "g$" |g| g 1 same as "g0" |g| g same as |g| g same as |g| g 1 same as "gk" ============================================================================== 3. Visual mode *visual-index* Most commands in Visual mode are the same as in Normal mode. The ones listed here are those that are different. tag command note action in Visual mode ------------------------------------------------------------------------------ |v_CTRL-V| CTRL-V make Visual mode blockwise or stop Visual mode |v_CTRL-]| CTRL-] jump to highlighted tag |v_!| !{filter} 2 filter the highlighted lines through the external command {filter} |v_:| : start a command-line with the highlighted lines as a range |v_<| < 2 shift the highlighted lines one 'shiftwidth' left |v_=| = 2 filter the highlighted lines through the external program given with the 'equalprg' option |v_>| > 2 shift the highlighted lines one 'shiftwidth' right |v_C| C 2 delete the highlighted lines and start insert |v_D| D 2 delete the highlighted lines |v_J| J 2 join the highlighted lines |v_K| K run 'keywordprg' on the highlighted text |v_R| R 2 delete the highlighted lines and start insert |v_S| S 2 delete the highlighted lines and start insert |v_U| U 2 make highlighted text uppercase |v_V| V make Visual mode linewise or stop Visual mode |v_X| X 2 delete the highlighted lines |v_Y| Y yank the highlighted lines |v_aB| aB extend the highlighted text with a {} block |v_aW| aW extend the highlighted area with "a WORD" |v_ab| ab extend the highlighted text with a () block |v_ap| ap extend the highlighted area with a paragraph |v_as| as extend the highlighted area with a sentence |v_aw| aw extend the highlighted area with "a word" |v_c| c 2 delete the highlighted text and start insert |v_d| d 2 delete the highlighted text |v_gq| gq 2 format the highlighted lines |v_gv| gv exchange current and previous highlighted text |v_iB| iB extend the highlighted text with a {} block |v_iW| iW extend the highlighted area with "a WORD" |v_ib| ib extend the highlighted text with a () block |v_ip| ip extend the highlighted area with a paragraph |v_is| is extend the highlighted area with a sentence |v_iw| iw extend the highlighted area with "a word" |v_o| o move cursor to other end of hightlighted text |v_r| r 2 delete the highlighted text and start insert |v_s| s 2 delete the highlighted text and start insert |v_u| u 2 make highlighted text lowercase |v_v| v make Visual mode characterwise or stop Visual mode |v_x| x 2 delete the highlighted text |v_y| y yank the highlighted text |v_~| ~ 2 swap case for the highlighted text ============================================================================== 4. Command-line editing *ex-edit-index* Get to the command-line with the ':', '!', '/' or '?' commands. Normal characters are inserted at the current cursor position. "Completion" below refers to context-sensitive completion. It will complete file names, tags, commands etc. as appropriate. CTRL-@ not used |c_CTRL-A| CTRL-A do completion on the pattern in front of the cursor and insert all matches |c_CTRL-B| CTRL-B cursor to begin of command-line |c_CTRL-C| CTRL-C same as |c_CTRL-D| CTRL-D list completions that match the pattern in front of the cursor |c_CTRL-E| CTRL-E cursor to end of command-line CTRL-F not used CTRL-G not used |c_| delete the character in front of the cursor |c_digraph| {char1} {char2} enter digraph when 'digraph' is on |c_CTRL-H| CTRL-H same as |c_| if 'wildchar' is : Do completion on the pattern in front of the cursor |c_| same as CTRL-P |c_wildchar| 'wildchar' Do completion on the pattern in front of the cursor (default: ) |c_CTRL-I| CTRL-I same as |c_| same as |c_CTRL-J| CTRL-J same as |c_CTRL-K| CTRL-K {char1} {char2} enter digraph |c_CTRL-L| CTRL-L do completion on the pattern in front of the cursor and insert the longest common part |c_| execute entered command |c_| CTRL-M same as |c_CTRL-N| CTRL-N after using 'wildchar' with multiple matches: go to next match, otherwise: same as CTRL-O not used |c_CTRL-P| CTRL-P after using 'wildchar' with multiple matches: go to previous match, otherwise: same as |c_CTRL-Q| CTRL-Q same as CTRL-V (used for terminal control flow) |c_CTRL-R| CTRL-R <0-9a-z"%#:=> insert the contents of a register CTRL-S (used for terminal control flow) CTRL-T not used |c_CTRL-U| CTRL-U remove all characters |c_CTRL-V| CTRL-V insert next non-digit literally, insert three digit decimal number as a single byte. |c_CTRL-W| CTRL-W delete the word in front of the cursor CTRL-X not used CTRL-Y not used CTRL-Z not used |c_| abandon command-line without executing it |c_| CTRL-[ same as CTRL-\ not used CTRL-] not used CTRL-^ not used |c_CTRL-_| CTRL-_ change languate (RIGHTLEFT) |c_| cursor one word left |c_| cursor one word right |c_| delete the character under the cursor |c_| recall next command-line from history that matches pattern in front of the cursor |c_| cursor to end of command-line |c_| cursor to start of command-line |c_| toggle insert/overstrike mode |c_| cursor left |c_| cursor at mouse click |c_| same as |c_| same as |c_| cursor right |c_| recall next command-line from history |c_| cursor one word left |c_| cursor one word right |c_| recall previous command-line from history |c_| recall previous command-line from history that matches pattern in front of the cursor ============================================================================== 5. EX commands *ex-cmd-index* This is a brief listing of all the ":" commands, without mentioning any arguments. |:!| :! filter lines or execute an external command |:!!| :!! repeat last ":!" command |:#| :# same as ":number" |:&| :& repeat last ":substitute" |:<| :< shift lines one 'shiftwidth' left |:=| := print the cursor line number |:>| :> shift lines one 'shiftwidth' right |:@| :@ execute contents of a register |:@@| :@@ repeat the previous ":@" |:Next| :N[ext] go to previous file in the argument list |:append| :a[ppend] append text |:abbreviate| :ab[breviate] enter abbreviation |:abclear| :abc[lear] remove all abbreviations |:all| :al[l] open a window for each file in the argument list |:args| :ar[gs] print the argument list |:argument| :argu[ment] go to specific file in the argument list |:ascii| :a[scii] print ascii value of character under the cursor |:autocmd| :au[tocmd] enter or show autocommands |:buffer| :b[uffer] go to specific buffer in the buffer list |:bNext| :bN[ext] go to next buffer in the buffer list |:ball| :ba[ll] open a window for each file in the buffer list |:bdelete| :bd[elete] delete specific files from the buffer list |:blast| :bl[ast] go to last file in the buffer list |:bmodified| :bm[odified] go to next file in the buffer list that has been modified |:bnext| :bn[ext] go to next file in the buffer list |:bprevious| :bp[revious] go to previous file in the buffer list |:break| :brea[k] break out of while loop |:brewind| :br[ewind] go to last file in the buffer list |:buffers| :buffers list all files in the buffer list |:bunload| :bun[load] unload a specific buffer |:change| :c[hange] replace a line or series of lines |:cNext| :cN[ext] go to previous error |:cabbrev| :ca[bbrev] like ":abbreviate" but for command-line mode |:cabclear| :cabc[lear] clear all abbreviations for command-line mode |:cc| :cc go to specific error |:cd| :cd change directory |:center| :ce[nter] format lines at the center |:cfile| :cf[ile] read the file with error messages |:change| :ch[ange] delete and insert lines |:chdir| :chd[ir] change directory |:checkpath| :che[ckpath] list included files |:clist| :cl[ist] list all errors |:close| :clo[se] close current window |:cmap| :cm[ap] like ":map" but for command-line mode |:cmapclear| :cmapc[lear] clear all mappings for command-line mode |:cnext| :cn[ext] go to next error |:cnoremap| :cno[remap] like ":noremap" but for command-line mode |:cnoreabbrev| :cnorea[bbrev] like ":noreabbrev" but for command-line mode |:copy| :co[py] copy lines |:cprevious| :cp[revious] go to previous error |:cquit| :cq[uit] quit Vim with an error code |:cunmap| :cu[nmap] like ":unmap" but for command-line mode |:cunabbrev| :cuna[bbrev] like ":unabbrev" but for command-line mode |:delete| :d[elete] delete lines |:display| :di[splay] display registers |:digraphs| :dig[raphs] show or enter digraphs |:djump| :dj[ump] jump to #define |:dlist| :dl[ist] list #defines |:doautoall| :doautoa[al] apply autocommands for all loaded buffers |:doautocmd| :do[autocmd] apply autocommands to current buffer |:dsearch| :ds[earch] list one #define |:dsplit| :dsp[lit] split window and jump to #define |:edit| :e[dit] edit a file |:echo| :ec[ho] echoes the result of expressions |:echon| :echon same as :echo, but without newline |:else| :el[se] part of an :if command |:elseif| :elsei[f] part of an :if command |:endif| :en[dif] end previous :if |:endwhile| :endw[hile] end previous :while |:ex| :ex same as ":edit" |:execute| :exe[cute] execute result of expressions |:exit| :exi[t] same as ":xit" |:file| :f[ile] show or set the current file name |:files| :files list all files in the buffer list |:fixdel| :fix[del] set key code of |:global| :g[lobal] execute commands for matching lines |:gui| :gu[i] start the GUI |:gvim| :gv[im] start the GUI |:help| :h[elp] open a help window |:hide| :hid[e] hide current buffer for a command |:highlight| :hi[ghlight] specify highlighting methods |:if| :if execute commands when condition met |:insert| :i[nsert] insert text |:iabbrev| :ia[bbrev] like ":abbrev" but for Insert mode |:iabclear| :iabc[lear] like ":abclear" but for Insert mode |:ijump| :ij[ump] jump to definition of identifier |:ilist| :il[ist] list lines where identifier matches |:imap| :im[ap] like ":map" but for Insert mode |:imapclear| :imapc[lear] like ":mapclear" but for Insert mode |:inoremap| :ino[remap] like ":noremap" but for Insert mode |:inoreabbrev| :inorea[bbrev] like ":noreabbrev" but for Insert mode |:intro| :int[ro] print the introductory message |:isearch| :is[earch] list one line where identifier matches |:isplit| :isp[lit] split window and jump to definition of identifier |:iunmap| :iu[nmap] like ":unmap" but for Insert mode |:iunabbrev| :iuna[bbrev] like ":unabbrev" but for Insert mode |:join| :j[oin] join lines |:jumps| :ju[mps] print the jump list |:k| :k set a mark |:list| :l[ist] print lines |:last| :la[st] go to the last file in the argument list |:left| :le[ft] left align lines |:let| :let assign a value to a variable or option |:ls| :ls list all buffers |:move| :m[ove] move lines |:mark| :ma[rk] set a mark |:make| :mak[e] execute external command 'makeprg' and parse error messages |:map| :map show or enter a mapping |:mapclear| :mapc[lear] clear all mappings for Normal and Visual mode |:marks| :marks list all marks |:menu| :me[nu] enter a new menu item |:mkexrc| :mk[exrc] write current mappings and settings to a file |:mkvimrc| :mkv[imrc] write current mappings and settings to a file |:mode| :mod[e] show or change the screen mode |:next| :n[ext] go to next file in the argument list |:new| :new create a new empty window |:nmap| :nm[ap] like ":map" but for Normal mode |:nmapclear| :nmapc[lear] clear all mappings for Normal mode |:nnoremap| :nn[oremap] like ":noremap" but for Normal mode |:noremap| :no[remap] enter a mapping that will not be remapped |:noreabbrev| :norea[bbrev] enter an abbreviation that will not be remapped |:normal| :norm[al] execute Normal mode commands |:number| :nu[mber] print lines with line number |:nunmap| :nun[map] like ":unmap" but for Normal mode |:open| :o[pen] start open mode (not implemented) |:only| :on[ly] close all windows except current one |:perl| :pe[rl] execute Perl command |:perldo| :perld[o] execute Perl command for each line |:print| :p[rint] print lines |:pop| :po[p] jump to older entry in tag stack |:preserve| :pre[serve] write all text to swap file |:previous| :prev[ious] go to previous file in argument list |:put| :pu[t] insert contents of register in the text |:pwd| :pw[d] print current directory |:python| :py[thon] execute Python command |:pyfile| :pyf[ile] execute Python script file |:quit| :q[uit] quit current window or Vim |:qall| :qa[ll] quit Vim |:read| :r[ead] read file into the text |:recover| :rec[over] recover a file from a swap file |:redo| :red[o] redo one undone change |:registers| :reg[isters] display the contents of registers |:resize| :res[ize] change current window height |:retab| :ret[ab] change tab size |:rewind| :rew[ind] go to the first file in the argument list |:right| :ri[ght] right align text |:rviminfo| :rv[iminfo] read from viminfo file |:substitute| :s[ubstitute] find and replace text |:sNext| :sN[ext] split window and go to previous file in argument list |:sargument| :sa[rgument] split window and go to specific file in argument list |:sall| :sal[l] open a window for each file in argument list |:sbuffer| :sb[uffer] split window and go to specific file in the buffer list |:sbNext| :sbN[ext] split window and go to previous file in the buffer list |:sball| :sba[ll] open a window for each file in the buffer list |:sblast| :sbl[ast] split window and go to last file in buffer list |:sbmodified| :sbm[odified] split window and go to modified file in the buffer list |:sbnext| :sbn[ext] split window and go to next file in the buffer list |:sbprevious| :sbp[revious] split window and go to previous file in the buffer list |:sbrewind| :sbr[ewind] split window and go to first file in the buffer list |:set| :se[t] show or set options |:shell| :sh[ell] escape to a shell |:sleep| :sl[eep] do nothing for a few seconds |:slast| :sla[st] split window and go to last file in the argument list |:snext| :sn[ext] split window and go to next file in the argument list |:source| :so[urce] read Vim or Ex commands from a file |:split| :sp[lit] split current window |:sprevious| :spr[evious] split window and go to previous file in the argument list |:srewind| :sr[ewind] split window and go to first file in the argument list |:stop| :st[op] suspend the editor or escape to a shell |:stag| :sta[g] split window and jump to a tag |:sunhide| :sun[hide] same as ":unhide" |:suspend| :sus[pend] same as ":stop" |:sview| :sv[iew] split window and edit file read-only |:swapname| :sw[apname] show the name of the current swap file |:syntax| :sy[ntax] syntax highlighting |:t| :t same as ":copy" |:tag| :ta[g] jump to tag |:tags| :tags show the contents of the tag stack |:undo| :u[ndo] undo last change(s) |:unabbreviate| :una[bbreviate] remove abbreviation |:unhide| :unh[ide] open a window for each loaded file in the buffer list |:unmap| :unm[ap] remove mapping |:version| :ve[rsion] print version number and other info |:vglobal| :v[global] execute commands for not matching lines |:visual| :vi[sual] same as ":edit", but turns off "Ex" mode |:view| :vie[w] edit a file read-only |:vmap| :vm[ap] like ":map" but for Visual mode |:vmapclear| :vmapc[lear] remove all mappings for Visual mode |:vnoremap| :vn[oremap] like ":noremap" but for Visual mode |:vunmap| :vu[nmap] like ":unmap" but for Visual mode |:write| :w[rite] write to a file |:wNext| :wN[ext] write to a file and go to previous file in argument list |:wall| :wa[ll] write all (changed) buffers |:while| :wh[ile] execute loop for as long as condition met |:wnext| :wn[ext] write to a file and go to next file in argument list |:wprevious| :wp[revious] write to a file and go to previous file in argument list |:wq| :wq write to a file and quit window or Vim |:wqall| :wqa[ll] write all changed buffers and quit Vim |:wviminfo| :wv[iminfo] write to viminfo file |:xit| :x[it] write if buffer changed and quit window or Vim |:xall| :xa[ll] same as ":wqall" |:yank| :y[ank] yank lines into a register |:z| :z print some lines |:~| :~ repeat last ":substitute" vim:ts=8:sw=8:tw=78: