index.txt - html version
index.txt - html version
*index.txt* For Vim version 5.0. Last modification: 1998 Feb 18
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
CTRL-B not used |i_CTRL-B-gone|
|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_<BS>| <BS> delete character before the cursor
|i_digraph| {char1}<BS>{char2}
enter digraph (only when 'digraph' option set)
|i_CTRL-H| CTRL-H same as <BS>
|i_<Tab>| <Tab> insert a <Tab> character
|i_CTRL-I| CTRL-I same as <Tab>
|i_<NL>| <NL> same as <CR>
|i_CTRL-J| CTRL-J same as <CR>
|i_CTRL-K| CTRL-K {char1} {char2}
enter digraph
|i_CTRL-L| CTRL-L when 'insertmode' set: Leave Insert mode
|i_<CR>| <CR> begin new line
|i_CTRL-M| CTRL-M same as <CR>
|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
|i_CTRL-Z| CTRL-Z when 'insertmode' set: suspend Vim
|i_<Esc>| <Esc> end insert mode (unless 'insertmode' set)
|i_CTRL-[| CTRL-[ same as <Esc>
CTRL-\ not used
|i_CTRL-]| CTRL-] trigger abbreviation
CTRL-^ not used
|i_CTRL-_| CTRL-_ change language (Hebrew, Farsi)
<Space> 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_<C-End>| <C-End> cursor past end of file
|i_<C-Home>| <C-Home> cursor to start of file
|i_<C-Left>| <C-Left> cursor one word left
|i_<C-Right>| <C-Right> cursor one word right
|i_<Del>| <Del> delete character under the cursor
Meta characters (0x80 to 0xff, 128 to 255)
not used
|i_<Down>| <Down> cursor one line down
|i_<End>| <End> cursor past end of line
|i_<F1>| <F1> same as <Help>
|i_<Help>| <Help> stop insert mode and display help window
|i_<Home>| <Home> cursor to start of line
|i_<Insert>| <Insert> toggle Insert/Replace mode
|i_<Left>| <Left> cursor one character left
|i_<LeftMouse>| <LeftMouse> cursor at mouse click
|i_<PageDown>| <PageDown> one screenfull forward
|i_<PageUp>| <PageUp> one screenfull backward
|i_<Right>| <Right> cursor one character right
|i_<S-Down>| <S-Down> same as <PageDown>
|i_<S-Left>| <S-Left> cursor one word left
|i_<S-Right>| <S-Right> cursor one word right
|i_<S-Up>| <S-Up> same as <PageUp>
|i_<Up>| <Up> 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 identifiers 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
|<BS>| <BS> 1 same as "h"
|CTRL-H| CTRL-H 1 same as "h"
|<Tab>| <Tab> 1 go to N newer entry in jump list
|CTRL-I| CTRL-I 1 same as <Tab>
|<NL>| <NL> 1 same as "j"
|CTRL-J| CTRL-J 1 same as "j"
CTRL-K not used
|CTRL-L| CTRL-L redraw screen
|<CR>| <CR> 1 cursor to the first CHAR N lines lower
|CTRL-M| CTRL-M> 1 same as <CR>
|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-[ <Esc> 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
|<Space>| <Space> 1 same as "l"
|!| !{motion}{filter}
2 filter Nmove text through the {filter}
command
|!!| !!{filter} 2 filter N lines through the {filter} command
|quote| "<a-zA-Z0-9.%#:-"> use buffer <a-zA-Z0-9.%#:-"> 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
|'| '<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 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}<CR> 1 search forward for the Nth occurrence of
{pattern}
|/<CR>| /<CR> 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
|?| ?<pattern><CR> 1 search backward for the Nth previous
occurrence of <pattern>
|?<CR>| ?<CR> 1 search backward for {pattern} of last search
|@| @<a-z> 2 execute the contents of named buffer <a-z>
N times
|@:| @: repeat the previous ":" command 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 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
|`| `<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
|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"> (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<CR>| z<CR> redraw, cursor line to top of window,
cursor on first non-blank
|zN<CR>| z{height}<CR> 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<Left>| z<Left> same as "zh"
|z<Right>| z<Right> 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
|<C-End>| <C-End> 1 same as "G"
|<C-Home>| <C-Home> 1 same as "gg"
|<C-Left>| <C-Left> 1 same as "b"
|<C-LeftMouse>| <C-LeftMouse> ":ta" to the keyword at the mouse click
|<C-Right>| <C-Right> 1 same as "w"
|<C-RightMouse>| <C-RightMouse> same as "CTRL-T"
|<Del>| ["x]<Del> 2 same as "x"
|N<Del>| {count}<Del> remove the last digit from {count}
|<Down>| <Down> 1 same as "j"
|<End>| <End> 1 same as "$"
|<F1>| <F1> same as <Help>
|<Help>| <Help> open a help window
|<Home>| <Home> 1 same as "0"
|<Insert>| <Insert> 2 same as "i"
|<Left>| <Left> 1 same as "h"
|<LeftMouse>| <LeftMouse> 1 move cursor to the mouse click position
|<MiddleMouse>| <MiddleMouse> 2 same as "P" at the mouse click position
|<PageDown>| <PageDown> same as CTRL-F
|<PageUp>| <PageUp> same as CTRL-B
|<Right>| <Right> 1 same as "l"
|<RightMouse>| <RightMouse> start Visual mode, move cursor to the mouse
click position
|<S-Down>| <S-Down> 1 same as CTRL-F
|<S-Left>| <S-Left> 1 same as "b"
|<S-LeftMouse>| <S-LeftMouse> same as "*" at the mouse click position
|<S-Right>| <S-Right> 1 same as "w"
|<S-RightMouse>| <S-RightMouse> same as "#" at the mouse click position
|<S-Up>| <S-Up> 1 same as CTRL-B
|<Undo>| <Undo> 2 same as "u"
|<Up>| <Up> 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_<Down>| CTRL-W <Down> same as "CTRL-W j"
|CTRL-W_<Up>| CTRL-W <Up> 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 '{'
|[<MiddleMouse> [<MiddleMouse> 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 '}'
|]<MiddleMouse> ]<MiddleMouse> 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<Down>| g<Down> 1 same as "gj"
|g<End>| g<End> 1 same as "g$"
|g<Home>| g<Home> 1 same as "g0"
|g<LeftMouse>| g<LeftMouse> same as <C-LeftMouse>
|g<RightMouse>| g<RightMouse> same as <C-RightMouse>
|g<Up>| g<Up> 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_O| O Move horizontally to other corner of area.
|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 corner of area
|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 <ESC>
|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_<BS>| <BS> delete the character in front of the cursor
|c_digraph| {char1} <BS> {char2}
enter digraph when 'digraph' is on
|c_CTRL-H| CTRL-H same as <BS>
|c_<Tab>| <Tab> if 'wildchar' is <Tab>: Do completion on
the pattern in front of the cursor
|c_<S-Tab>| <S-Tab> same as CTRL-P
|c_wildchar| 'wildchar' Do completion on the pattern in front of the
cursor (default: <Tab>)
|c_CTRL-I| CTRL-I same as <Tab>
|c_<NL>| <NL> same as <CR>
|c_CTRL-J| CTRL-J same as <CR>
|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_<CR>| <CR> execute entered command
|c_<CR>| CTRL-M same as <CR>
|c_CTRL-N| CTRL-N after using 'wildchar' with multiple matches:
go to next match, otherwise: same as <Down>
CTRL-O not used
|c_CTRL-P| CTRL-P after using 'wildchar' with multiple matches:
go to previous match, otherwise: same as <Up>
|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_<Esc>| <Esc> abandon command-line without executing it
|c_<Esc>| CTRL-[ same as <Esc>
CTRL-\ not used
CTRL-] not used
CTRL-^ not used
|c_CTRL-_| CTRL-_ change language (Hebrew, Farsi)
|c_<C-Left>| <C-Left> cursor one word left
|c_<C-Right>| <C-Right> cursor one word right
|c_<Del>| <Del> delete the character under the cursor
|c_<Down>| <Down> recall next command-line from history that
matches pattern in front of the cursor
|c_<End>| <End> cursor to end of command-line
|c_<Home>| <Home> cursor to start of command-line
|c_<Insert>| <Insert> toggle insert/overstrike mode
|c_<Left>| <Left> cursor left
|c_<LeftMouse>| <LeftMouse> cursor at mouse click
|c_<PageDown>| <PageDown> same as <S-Down>
|c_<PageUp>| <PageUp> same as <S-Up>
|c_<Right>| <Right> cursor right
|c_<S-Down>| <S-Down> recall next command-line from history
|c_<S-Left>| <S-Left> cursor one word left
|c_<S-Right>| <S-Right> cursor one word right
|c_<S-Up>| <S-Up> recall previous command-line from history
|c_<Up>| <Up> 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
|:augroup| :aug[roup] select the autocommand group to use
|: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
|:clast| :cla[st] go to the specified error, default last one
|:clist| :cl[ist] list all errors
|:close| :clo[se] close current window
|:cmap| :cm[ap] like ":map" but for command-line mode
|:cmenu| :cme[nu] add menu 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
|:cnoremenu| :cnoreme[nu] like ":noremenu" 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
|:crewind| :cr[ewind] go to the specified error, default first one
|:cunmap| :cu[nmap] like ":unmap" but for command-line mode
|:cunmenu| :cunme[nu] remove menu 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 <EOL>
|: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 <Del>
|: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
|:imenu| :ime[nu] add menu for Insert mode
|:inoremap| :in[oremap] like ":noremap" 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
|:inoremenu| :inoreme[nu] like ":noremenu" 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
|:iunabbrev| :iuna[bbrev] like ":unabbrev" but for Insert mode
|:iunmap| :iu[nmap] like ":unmap" but for Insert mode
|:iunmenu| :iunme[nu] remove menu 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
|:nmenu| :nme[nu] add menu for Normal mode
|:nmapclear| :nmapc[lear] clear all mappings for Normal mode
|:nnoremap| :nn[oremap] like ":noremap" but for Normal mode
|:nnoremenu| :nnoreme[nu] like ":noremenu" but for Normal mode
|:noremap| :no[remap] enter a mapping that will not be remapped
|:noremenu| :noreme[nu] enter a menu 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
|:nunmenu| :nunme[nu] remove menu for Normal mode
|:open| :o[pen] start open mode (not implemented)
|:only| :on[ly] close all windows except current one
|:omap| :om[ap] like ":map" but for Operator-pending mode
|:omapclear| :omapc[lear] remove all mappings for Operator-pending mode
|:omenu| :ome[nu] add menu for Operator-pending mode
|:onoremap| :ono[remap] like ":noremap" but for Operator-pending mode
|:onoremenu| :onoreme[nu] like ":noremenu" but for Operator-pending mode
|:ounmap| :ou[nmap] like ":unmap" but for Operator-pending mode
|:ounmenu| :ounme[nu] remove menu for Operator-pending mode
|: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
|:stselect| :sts[elect] list matching tags, select one, split window
|: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
|:tlast| :tl[ast] jump to last matching tag
|:tnext| :tn[ext] jump to next matching tag
|:tNext| :tN[ext] jump to previous matching tag
|:tprevious| :tp[revious] jump to previous matching tag
|:trewind| :tr[ewind] jump to first matching tag
|:tselect| :ts[elect] list matching tags and select one
|: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
|:unmenu| :unme[nu] remove menu
|: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
|:vmenu| :vme[nu] add menu for Visual mode
|:vnoremap| :vn[oremap] like ":noremap" but for Visual mode
|:vnoremenu| :vnoreme[nu] like ":noremenu" but for Visual mode
|:vunmap| :vu[nmap] like ":unmap" but for Visual mode
|:vunmenu| :vunme[nu] remove menu 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"
top - back to help