*vim_idx.txt*   For Vim version 4.2.  Last modification: 1996 June 16

This file contains a list of all commands for each mode, with a tag and a
short description.  The list is sorted on ASCII value.

When looking for certain functionality use the search command.  For example,
to look for deleting something, use: "/delete".

		    Sections:
|insert_index|	 1. Insert mode
|normal_index|	 2. Normal mode
|objects|		2.1. text objects
|CTRL-W|		2.2. window commands
|[|			2.3. Square bracket commands
|g|			2.4. Commands starting with 'g'
|visual_index|	 3. Visual mode
|ex_edit_index|	 4. Command-line editing
|ex_cmd_index|	 5. EX commands

For an overview of options see vim_help.txt |option_list|.
For a complete description of each option see vim_ref.txt |options|.


1. Insert mode						*insert_index*
==============

tag		char		action
-----------------------------------------------------------------------
|i_CTRL-@|	CTRL-@		insert previously inserted text and stop
				insert
|i_CTRL-A|	CTRL-A		insert previously inserted text
|i_CTRL-B|	CTRL-B		Only if compiled with TOGGLE_REVINS (which is
				not the default): toggle 'revins' (backwards
				insert) option.
|i_CTRL-C|	CTRL-C		quit insert mode, without checking for
				abbreviation.
|i_CTRL-D|	CTRL-D		delete one shiftwidth of indent in the current
				line
|i_CTRL-E|	CTRL-E		insert the character which is below the cursor
		CTRL-F		not used
		CTRL-G		not used
|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 contents of register <0-9a-z"%:>
		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 languate (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_<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_<C-End>|	<C-End>		cursor past end of file
|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_<C-Home>|	<C-Home>	cursor to start of file
|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						*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
|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
|'>|		'>		1  cursor to the first CHAR of the line where
				   highlighted area ends/ended
|'[|		'[		1  cursor to the first CHAR on the line of the
				   start of last operated text or start of
				   putted text
|']|		']		1  cursor to the first CHAR on the line of the
				   end of last operated text or end of putted
				   text
|(|		(		1  cursor N sentences backward
|)|		)		1  cursor N sentences forward
|star|		*		1  search forward for the Nth occurrence of
				   the ident under the cursor
|+|		+		1  cursor to the first CHAR N lines lower
|,|		,		1  repeat latest f, t, F or T in opposite
				   direction N times
|-|		-		1  cursor to the first CHAR N lines higher
|.|		.		2  repeat last change with count replaced with
				   N
|/|		/{pattern}<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{motion}	2  format Nmove lines (obsolete)
|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
|[|		[{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-LeftMouse>|	<C-LeftMouse>	   ":ta" to the keyword at the mouse click
|<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 "$"
|<C-End>|	<C-End>		1  same as "G"
|<F1>|		<F1>		   same as <Help>
|<Help>|	<Help>		   open a help window
|<Home>|	<Home>		1  same as "0"
|<C-Home>|	<C-Home>	1  same as "gg"
|<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
|v_a|		a		   a word (with white space)
|v_A|		A		   a WORD (with white space)
|v_p|		p		   a paragraph
|v_s|		s		   a sentence
|v_P|		P		   a block from "[{" to "]}"
|v_S|		S		   a block from "[(" and "])"


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 filename 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 (same as "Q")
|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_A|		A		   extend the highlighted area with a WORD
|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_P|		P		   extend the highlighted text with a {} block
|v_Q|		Q		2  format the highlighted lines (obsolete)
|v_R|		R		2  delete the highlighted lines and start
				   insert
|v_S|		S		   extend the highlighted text with a () block
|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_a|		a		   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_o|		o		   move cursor to other end of hightlighted
				   text
|v_p|		p		   extend the highlighted area with a paragraph
|v_r|		r		2  delete the highlighted text and start insert
|v_s|		s		   extend the highlighted area with a sentence
|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
filenames, 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 contents of register <0-9a-z"%:>
		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_<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 (not implemented)
|:abbreviate|	:ab[breviate]	enter abbreviation
|:abclear|	:abc[lear]	remove all abbreviations
|:all|		:al[l]		open a window for each file in the argument
				list
|:args|		:ar[gs]		print the argument list
|:argument|	:argu[ment]	go to specific file in the argument list
|:ascii|	:a[scii]	print ascii value of character under the
				cursor
|:autocmd|	:au[tocmd]	enter or show autocommands
|:buffer|	:b[uffer]	go to specific buffer in the buffer list
|:bNext|	:bN[ext]	go to next buffer in the buffer list
|:ball|		:ba[ll]		open a window for each file in the buffer list
|:bdelete|	:bd[elete]	delete specific files from the buffer list
|:blast|	:bl[ast]	go to last file in the buffer list
|:bmodified|	:bm[odified]	go to next file in the buffer list that has
				been modified
|:bnext|	:bn[ext]	go to next file in the buffer list
|:bprevious|	:bp[revious]	go to previous file in the buffer list
|: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 (not implemented)
|: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
|:chdir|	:chd[ir]	change directory
|:checkpath|	:che[ckpath]	list included files
|:clist|	:cl[ist]	list all errors
|:close|	:clo[se]	close current window
|:cmap|		:cm[ap]		like ":map" but for command-line mode
|:cmapclear|	:cmapc[lear]	clear all mappings for command-line mode
|:cnext|	:cn[ext]	go to next error
|:cnoremap|	:cno[remap]	like ":noremap" but for command-line mode
|:cnoreabbrev|	:cnorea[bbrev]	like ":noreabbrev" but for command-line mode
|:copy|		:co[py]		copy lines
|:cprevious|	:cp[revious]	go to previous error
|:cquit|	:cq[uit]	quit Vim with an error code
|:cunmap|	:cu[nmap]	like ":unmap" but for command-line mode
|:cunabbrev|	:cuna[bbrev]	like ":unabbrev" but for command-line mode
|:delete|	:d[elete]	delete lines
|:display|	:di[splay]	display registers
|:digraphs|	:dig[raphs]	show or enter digraphs
|:djump|	:dj[ump]	jump to #define
|:dlist|	:dl[ist]	list #defines
|:doautocmd|	:do[autocmd]	apply autocommands
|:dsearch|	:ds[earch]	list one #define
|:dsplit|	:dsp[lit]	split window and jump to #define
|:edit|		:e[dit]		edit a file
|:ex|		:ex		same as ":edit"
|: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
|:insert|	:i[nsert]	insert text (not implemented)
|:iabbrev|	:ia[bbrev]	like ":abbrev" but for Insert mode
|:iabclear|	:iabc[lear]	like ":abclear" but for Insert mode
|:ijump|	:ij[ump]	jump to definition of identifier
|:ilist|	:il[ist]	list lines where identifier matches
|:imap|		:im[ap]		like ":map" but for Insert mode
|:imapclear|	:imapc[lear]	like ":mapclear" but for Insert mode
|:inoremap|	:ino[remap]	like ":noremap" but for Insert mode
|:inoreabbrev|	:inorea[bbrev]	like ":noreabbrev" but for Insert mode
|:isearch|	:is[earch]	list one line where identifier matches
|:isplit|	:isp[lit]	split window and jump to definition of
				identifier
|:iunmap|	:iu[nmap]	like ":unmap" but for Insert mode
|:iunabbrev|	:iuna[bbrev]	like ":unabbrev" but for Insert mode
|:join|		:j[oin]		join lines
|:jumps|	:ju[mps]	print the jump list
|:k|		:k		set a mark
|:list|		:l[ist]		print lines
|:last|		:la[st]		go to the last file in the argument list
|:left|		:le[ft]		left align lines
|:ls|		:ls		list all buffers
|:move|		:m[ove]		move lines
|:mark|		:ma[rk]		set a mark
|:make|		:mak[e]		execute external command 'makeprg' and parse
				error messages
|:map|		:map		show or enter a mapping
|:mapclear|	:mapc[lear]	clear all mappings for Normal and Visual mode
|:marks|	:marks		list all marks
|:menu|		:me[nu]		enter a new menu item
|:mkexrc|	:mk[exrc]	write current mappings and settings to a file
|:mkvimrc|	:mkv[imrc]	write current mappings and settings to a file
|:mode|		:mod[e]		show or change the screen mode
|:next|		:n[ext]		go to next file in the argument list
|:new|		:new		create a new empty window
|:nmap|		:nm[ap]		like ":map" but for Normal mode
|:nmapclear|	:nmapc[lear]	clear all mappings for Normal mode
|:nnoremap|	:nn[oremap]	like ":noremap" but for Normal mode
|:noremap|	:no[remap]	enter a mapping that will not be remapped
|:noreabbrev|	:norea[bbrev]	enter an abbreviation that will not be
				remapped
|:normal|	:norm[al]	execute Normal mode commands
|:number|	:nu[mber]	print lines with line number
|:nunmap|	:nun[map]	like ":unmap" but for Normal mode
|:open|		:o[pen]		start open mode (not implemented)
|:only|		:on[ly]		close all windows except current one
|: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
|: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
|:t|		:t		same as ":copy"
|:tag|		:ta[g]		jump to tag
|:tags|		:tags		show the contents of the tag stack
|:undo|		:u[ndo]		undo last change(s)
|:unabbreviate|	:una[bbreviate]	remove abbreviation
|:unhide|	:unh[ide]	open a window for each loaded file in the
				buffer list
|:unmap|	:unm[ap]	remove mapping
|:version|	:ve[rsion]	print version number and other info
|:vglobal|	:v[global]	execute commands for not matching lines
|:visual|	:vi[sual]	same as ":edit"
|:view|		:vie[w]		edit a file read-only
|:vmap|		:vm[ap]		like ":map" but for Visual mode
|:vmapclear|	:vmapc[lear]	remove all mappings for Visual mode
|:vnoremap|	:vn[oremap]	like ":noremap" but for Visual mode
|:vunmap|	:vu[nmap]	like ":unmap" but for Visual mode
|:write|	:w[rite]	write to a file
|:wNext|	:wN[ext]	write to a file and go to previous file in
				argument list
|:wall|		:wa[ll]		write all (changed) buffers
|: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 (not implemented)
|:~|		:~		repeat last ":substitute"
