*index.txt* For IdeaVIM version 0.10.2. Last change: 2005 November 4. For IDEA version @IDEA-VERSION@ IdeaVIM REFERENCE MANUAL by Rick Maddy *index* 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. ============================================================================== 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-C| CTRL-C quit insert mode |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 |i_| delete character before the cursor |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 |i_digraph| {char1}{char2} enter digraph (only when 'digraph' option set) |i_| begin new line |i_CTRL-M| CTRL-M same as |i_CTRL-O| CTRL-O execute a single command and return to insert mode |i_CTRL-R| CTRL-R {0-9a-z"%#*:=} insert the contents of a register |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_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-Y| CTRL-Y insert the character which is above the cursor |i_| end insert mode |i_CTRL-[| CTRL-[ same as |i_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode |i_0_CTRL-D| 0 CTRL-D delete all indent in the current line |i_| delete character under the cursor |i_| cursor one character left |i_| cursor one word left |i_| cursor one word left |i_| cursor one character right |i_| cursor one word right |i_| cursor one word right |i_| cursor one line up |i_| same as |i_| cursor one line down |i_| same as |i_| cursor to start of line |i_| cursor to start of file |i_| cursor past end of line |i_| cursor past end of file |i_| one screenfull backward |i_| one screenfull forward |i_| toggle Insert/Replace mode |i_| cursor at mouse click |i_| stop insert mode and display help window |i_| same as ============================================================================== 2. Normal mode *normal-index* CHAR any non-blank character WORD a sequence 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-B| CTRL-B 1 scroll N screens Backwards |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 || 1 same as "h" |CTRL-H| CTRL-H 1 same as "h" || 1 same as "j" |CTRL-J| CTRL-J 1 same as "j" || 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-P| CTRL-P 1 cursor N lines upward |CTRL-Q| CTRL-Q same as CTRL-V |CTRL-R| CTRL-R 2 redo changes which were undone with 'u' |CTRL-U| CTRL-U scroll N lines Upwards (default: half a screen) |CTRL-V| CTRL-V start blockwise Visual mode |CTRL-Y| CTRL-Y scroll N lines downwards |CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode (no-op) || 1 same as "l" |quote| "{a-zA-Z0-9.%#:-"} use buffer {a-zA-Z0-9.%#:-"} for next delete, yank or put (uppercase to append) ({.%#:} only work with put) |!| !{motion}{filter} 2 filter Nmove text through the {filter} command |!!| !!{filter} 2 filter N lines through the {filter} command |@:| @: repeat the previous ":" command N times |#| # 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 |star| * 1 search forward for the Nth occurrence of the ident under the cursor |'| '{a-zA-Z0-9} 1 cursor to the first CHAR on the line with mark {a-zA-Z0-9} |''| '' 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 in the current buffer. |'>| '> 1 cursor to the first CHAR of the line where highlighted area ends/ended in the current buffer. |'[| '[ 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 to the first CHAR on the line of the start of the current paragraph |'}| '} 1 cursor to the first CHAR on the line of the end of the current paragraph |+| + 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} |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 " |:| : 1 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 |/| / 1 search forward for {pattern} of last search |==| == 2 filter N lines through "indent" (one line) |?| ? 1 search backward for {pattern} of last search |>| >{motion} 2 shift Nmove lines one 'shiftwidth' rightwards |>>| >> 2 shift N lines one 'shiftwidth' rightwards |?| ?{pattern} 1 search backward for the Nth previous occurrence of {pattern} |@| @{a-z} 2 execute the contents of named buffer {a-z} N times |@@| @@ 2 repeat the previous @{a-z} N times |A| A 2 append text after 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 Show Quick JavaDoc for Keyword under the cursor |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 |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 |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) |]| ]{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 |`| `{a-zA-Z0-9} 1 cursor to the mark {a-zA-Z0-9} |`<| `< 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 |`{| `{ 1 cursor to the start of the current paragraph |`}| `} 1 cursor to the end of the current paragraph |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{A-Za-z} set mark {A-Za-z} 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"} (uppercase 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{char} commands starting with 'z', see below |{| { 1 cursor N paragraphs backward |bar| | 1 cursor to column N |}| } 1 cursor N paragraphs forward |~| ~ 2 switch case of N characters under cursor and move the cursor N characters to the right || 1 same as "G" || 1 same as "gg" || 1 same as "b" || 1 same as "w" || ["x] 2 same as "x" |N| {count} remove the last digit from {count} || 1 same as "j" || 1 same as "$" || 1 same as "0" || 2 same as "i" || 1 same as "h" || 1 move cursor to the mouse click position || same as CTRL-F || same as CTRL-B || 1 same as "l" || 1 same as CTRL-F || 1 same as "b" || 1 same as "w" || 1 same as CTRL-B || 1 same as "k" || open a help window || same as || 2 same as "u" ============================================================================== 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_aW| aW "a WORD" (with white space) |v_aw| aw "a word" (with white space) |v_iW| iW "inner WORD" |v_iw| iw "inner word" ============================================================================== 2.2 Window commands *CTRL-W* tag command action in Normal mode ~ ------------------------------------------------------------------------------ ============================================================================== 2.3 Square bracket commands *[* *]* tag char note action in Normal mode ~ ------------------------------------------------------------------------------ |[b| [b 1 cursor N camel words backward |[w| [w 1 cursor N camel words forward |]b| ]b 1 cursor backward to the end of camel word N |]w| ]w 1 cursor forward to the end of camel word N |[P| [P 2 like "P", but don't autoindent text |[p| [p 2 like "p", but don't autoindent text |]P| ]P 2 same as "[P" |]p| ]p 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 |g&| g& 2 repeat last ":s" on all lines |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 go to definition 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 |gJ| gJ 2 join lines without inserting space |gP| ["x]gP 2 put the text [from register x] before the cursor N times, leave the cursor after it |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 |gd| gd 1 go to definition of word under the cursor in current function |ge| ge 1 go backwards to the end of the previous word |gg| gg 1 cursor to line N, default first line |gi| gi 2 like "i", but first move to the |'^| mark |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 |gm| gm 1 go to character at middle of the screenline |go| go 1 cursor to character N in the buffer |gp| ["x]gp 2 put the text [from register x] after the cursor N times, leave the cursor after it |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 1 same as "gk" ============================================================================== 2.5 Commands starting with 'z' *z* tag char note action in Normal mode ~ ------------------------------------------------------------------------------ |z| z redraw, cursor line to top of window, cursor on first non-blank |z| z same as "zh" |z| z same as "zl" |z+| z+ cursor on line N (default line below window), otherwise like "z" |z^| z^ cursor on line N (default line above window), otherwise like "z-" |z-| z- redraw, cursor line at bottom of window, cursor on first non-blank |z.| z. redraw, cursor line to center of window, cursor on first non-blank |zb| zb redraw, cursor line at bottom of window |zc| zc close a fold |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 |zM| zM set 'foldlevel' to zero |zo| zo open fold |zR| zR set 'foldlevel' to the deepest fold |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 ============================================================================== 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-\_CTRL-N| CTRL-\ CTRL-N stop Visual mode |v_CTRL-Q| CTRL-Q same as CTRL-V |v_CTRL-V| CTRL-V make Visual mode blockwise or stop Visual mode |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 Reformat the highlighted lines |v_>| > 2 shift the highlighted lines one 'shiftwidth' right |v_b_A| A 2 block mode: append same text in all lines, after the highlighted area |v_C| C 2 delete the highlighted lines and start insert |v_D| D 2 delete the highlighted lines |v_b_I| I 2 block mode: insert same text in all lines, before the highlighted area |v_J| J 2 join the highlighted lines |v_O| O Move horizontally to other corner of area. Q does not start Ex mode |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 area 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_aW| aW extend highlighted area with "a WORD" |v_aw| aw extend highlighted area with "a word" |v_c| c 2 delete highlighted area and start insert |v_d| d 2 delete highlighted area |v_gJ| gJ 2 join the highlighted lines without inserting spaces |v_gq| gq 2 format the highlighted lines |v_gv| gv exchange current and previous highlighted area |v_iW| iW extend highlighted area with "inner WORD" |v_iw| iw extend highlighted area with "inner word" |v_o| o move cursor to other corner of area |v_r| r 2 delete highlighted area and start insert |v_s| s 2 delete highlighted area and start insert |v_u| u 2 make highlighted area lowercase |v_v| v make Visual mode characterwise or stop Visual mode |v_x| x 2 delete the highlighted area |v_y| y yank the highlighted area |v_~| ~ 2 swap case for the highlighted area ============================================================================== 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. |c_CTRL-B| CTRL-B cursor to begin of command-line |c_CTRL-C| CTRL-C same as |c_CTRL-E| CTRL-E cursor to end of command-line |c_| delete the character in front of the cursor |c_CTRL-H| CTRL-H same as |c_| same as |c_CTRL-J| CTRL-J same as |c_CTRL-K| CTRL-K {char1} {char2} enter digraph |c_| execute entered command |c_| CTRL-M same as |c_CTRL-R| CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A} insert the contents of a register or object under the cursor as if typed |c_CTRL-U| CTRL-U remove all characters up to cursor |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 |c_| abandon command-line without executing it |c_| CTRL-[ same as |c_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode, abandon command-line |c_| delete the character under the cursor |c_| cursor left |c_| cursor one word left |c_| cursor one word left |c_| cursor right |c_| cursor one word right |c_| cursor one word right |c_| cursor to start of command-line |c_| cursor to end of command-line |c_| toggle insert/overstrike mode |c_| cursor at mouse click ============================================================================== 5. EX commands *ex-cmd-index* *:index* This is a brief but complete listing of all the ":" commands, without mentioning any arguments. The optional part of the command name is inside []. The commands are sorted on the non-optional part of their name. |:!| :! filter lines or execute an external command |:!!| :!! repeat last ":!" command |:<| :< shift lines one 'shiftwidth' left |:>| :> shift lines one 'shiftwidth' right |:&| :& repeat last ":substitute" |:@| :@ execute contents of a register |:@@| :@@ repeat the previous ":@" |:Next| :N[ext] go to previous file in the argument list |:argument| :argu[ment] go to specific file in the argument list |:browse| :bro[wse] Opens the 'File Open...' dialog |:class] :cla[ss] find class in project and edit it (not in VIM) |:close| :clo[se] close current window |:copy| :co[py] copy lines |:delete| :d[elete] delete lines |:digraphs| :dig[raphs] show or enter digraphs |:display| :di[splay] display registers |:edit| :e[dit] Opens the 'File Open...' dialog |:exit| :exi[t] same as ":xit" |:find| :fin[d] Opens the file search dialog |:first| :fir[st] go to the first file in the argument list |:goto| :go[to] go to character in the buffer |:help| :h[elp] open a help window |:hide| :hid[e] close current window |:join| :j[oin] join lines |:k| :k set a mark |:last| :la[st] go to the last file in the argument list |:move| :m[ove] move lines |:mark| :ma[rk] set a mark |:marks| :marks list all marks |:next| :n[ext] go to next file in the argument list |:nohlsearch| :noh[lsearch] suspend 'hlsearch' highlighting (not in 4.0.x) |:only| :on[ly] close all editors except current one |:previous| :prev[ious] go to previous file in argument list |:promptfind| :pro[mptfind] Search dialog |:promptrepl| :promptr[epl] Search/Replace dialog |:put| :pu[t] insert contents of register in the text |:quit| :q[uit] quit current window (when one window quit Vim) |:qall| :qa[ll] close all editors |:quitall| :quita[ll] close all editors |:redo| :red[o] redo one undone change |:registers| :reg[isters] display the contents of registers |:rewind| :rew[ind] go to the first file in the argument list |:set| :se[t] show or set options |:substitute| :s[ubstitute] search and replace text |:t| :t same as ":copy" |:undo| :u[ndo] undo last change(s) |:write| :w[rite] write to a file |:wall| :wa[ll] Save all files |:wNext| :wN[ext] write to a file and go to previous file in argument list |: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] close all editors |:xit| :x[it] write if buffer changed and quit window or Vim |:xall| :xa[ll] close all editors |:yank| :y[ank] yank lines into a register |:~| :~ repeat last ":substitute"