For Vim version 5.0p. Last modification: 1997 Sep 09
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
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_<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
CTRL-L not used
|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
CTRL-Z not used
|i_<Esc>| <Esc> end insert mode
|i_CTRL-[| CTRL-[ same as <Esc>
CTRL-\ not used
CTRL-] not used
CTRL-^ not used
|i_CTRL-_| CTRL-_ change language (RIGHTLEFT)
<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 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
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 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
|`| `<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
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
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'
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 ", 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
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
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 languate (RIGHTLEFT)
|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
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 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 <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
|| :ome[nu] add menu for Operator-pending mode
|:onoremap| :ono[remap] like ":noremap" but for Operator-pending mode
|| :onoreme[nu] like ":noremenu" but for Operator-pending mode
|:ounmap| :ou[nmap] like ":unmap" but for Operator-pending mode
|| :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
|: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
|: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"
vim:ts=8:sw=8:tw=78:
Generated by vim2html on Mon Nov 3 03:34:24 EST 1997