Vim documentation: quickref

main help file

*quickref.txt*  For Vim version 6.2.  Last change: 2003 May 11


		  VIM REFERENCE MANUAL    by Bram Moolenaar

			    Quick reference guide


							 *quickref* *Contents*
 tag	  subject			 tag	  subject	
|Q_ct|  list of help files		|Q_re|	Repeating commands
|Q_lr|	motion: Left-right		|Q_km|	Key mapping
|Q_ud|	motion: Up-down			|Q_ab|	Abbreviations
|Q_tm|	motion: Text object		|Q_op|	Options
|Q_pa|	motion: Pattern searches	|Q_ur|	Undo/Redo commands
|Q_ma|	motion: Marks			|Q_et|	External commands
|Q_vm|	motion: Various			|Q_qf|	Quickfix commands
|Q_ta|	motion: Using tags		|Q_vc|	Various commands
|Q_sc|	Scrolling			|Q_ce|	Ex: Command-line editing
|Q_in|	insert: Inserting text		|Q_ra|	Ex: Ranges
|Q_ai|	insert: Keys			|Q_ex|	Ex: Special characters
|Q_ss|	insert: Special keys		|Q_ed|	Editing a file
|Q_di|	insert: Digraphs		|Q_fl|	Using the argument list
|Q_si|	insert: Special inserts		|Q_wq|	Writing and quitting
|Q_de|	change: Deleting text		|Q_st|	Starting VIM
|Q_cm|	change: Copying and moving	|Q_ac|	Automatic commands
|Q_ch|	change: Changing text		|Q_wi|	Multi-window commands
|Q_co|	change: Complex			|Q_bu|	Buffer list commands
|Q_vi|	Visual mode			|Q_sy|	Syntax highlighting
|Q_to|	Text objects			|Q_gu|	GUI commands
					|Q_fo|  Folding

------------------------------------------------------------------------------
N is used to indicate an optional count that can be given before the command.
------------------------------------------------------------------------------

*Q_lr*		Left-right motions

|h|	N  h		left (also: CTRL-H, <BS>, or <Left> key)
|l|	N  l		right (also: <Space> or <Right> key)
|0|	   0		to first character in the line (also: <Home> key)
|^|	   ^		to first non-blank character in the line
|$|	N  $		to the last character in the line (N-1 lines lower)
			   (also: <End> key)
|g0|	N  g0		to first character in screen line (differs from "0"
			   when lines wrap)
|g^|	N  g^		to first non-blank character in screen line (differs
			   from "^" when lines wrap)
|g$|	N  g$		to last character in screen line (differs from "$"
			   when lines wrap)
|gm|	N  gm		to middle of the screen line
|bar|	N  |		to column N (default: 1)
|f|	N  f{char}	to the Nth occurrence of {char} to the right
|F|	N  F{char}	to the Nth occurrence of {char} to the left
|t|	N  t{char}	till before the Nth occurrence of {char} to the right
|T|	N  T{char}	till before the Nth occurrence of {char} to the left
|;|	N  ;		repeat the last "f", "F", "t", or "T" N times
|,|	N  ,		repeat the last "f", "F", "t", or "T" N times in
			   opposite direction
------------------------------------------------------------------------------

*Q_ud*		Up-down motions

|k|	N  k		up N lines (also: CTRL-P and <Up>)
|j|	N  j		down N lines (also: CTRL-J, CTRL-N, <NL>, and <Down>)
|-|	N  -		up N lines, on the first non-blank character
|+|	N  +		down N lines, on the first non-blank character (also:
			   CTRL-M and <CR>)
|_|	N  _		down N-1 lines, on the first non-blank character
|G|	N  G		goto line N (default: last line), on the first
			   non-blank character
|gg|	N  gg		goto line N (default: first line), on the first
			   non-blank character
|N%|	N  %		goto line N percentage down in the file.  N must be
			   given, otherwise it is the |%| command.
|gk|	N  gk		up N screen lines (differs from "k" when line wraps)
|gj|	N  gj		down N screen lines (differs from "j" when line wraps)
------------------------------------------------------------------------------

*Q_tm*		Text object motions

|w|	N  w		N words forward
|W|	N  W		N blank-separated |WORD|s forward
|e|	N  e		forward to the end of the Nth word
|E|	N  E		forward to the end of the Nth blank-separated |WORD|
|b|	N  b		N words backward
|B|	N  B		N blank-separated |WORD|s backward
|ge|	N  ge		backward to the end of the Nth word
|gE|	N  gE		backward to the end of the Nth blank-separated |WORD|

|)|	N  )		N sentences forward
|(|	N  (		N sentences backward
|}|	N  }		N paragraphs forward
|{|	N  {		N paragraphs backward
|]]|	N  ]]		N sections forward, at start of section
|[[|	N  [[		N sections backward, at start of section
|][|	N  ][		N sections forward, at end of section
|[]|	N  []		N sections backward, at end of section
|[(|	N  [(		N times back to unclosed '('
|[{|	N  [{		N times back to unclosed '{'
|[m|	N  [m		N times back to start of method (for Java)
|[M|	N  [M		N times back to end of method (for Java)
|])|	N  ])		N times forward to unclosed ')'
|]}|	N  ]}		N times forward to unclosed '}'
|]m|	N  ]m		N times forward to start of method (for Java)
|]M|	N  ]M		N times forward to end of method (for Java)
|[#|	N  [#		N times back to unclosed "#if" or "#else"
|]#|	N  ]#		N times forward to unclosed "#else" or "#endif"
|[star|	N  [*		N times back to start of comment "/*"
|]star|	N  ]*		N times forward to end of comment "*/"
------------------------------------------------------------------------------

*Q_pa*		Pattern searches

|/|	N  /{pattern}[/[offset]]<CR>
			search forward for the Nth occurrence of {pattern}
|?|	N  ?{pattern}[?[offset]]<CR>
			search backward for the Nth occurrence of {pattern}
|/<CR>|	N  /<CR>	repeat last search, in the forward direction
|?<CR>|	N  ?<CR>	repeat last search, in the backward direction
|n|	N  n		repeat last search
|N|	N  N		repeat last search, in opposite direction
|star|	N  *		search forward for the identifier under the cursor
|#|	N  #		search backward for the identifier under the cursor
|gstar|	N  g*		like "*", but also find partial matches
|g#|	N  g#		like "#", but also find partial matches
|gd|	   gd		goto local declaration of identifier under the cursor
|gD|	   gD		goto global declaration of identifier under the cursor

|pattern|		Special characters in search patterns

			meaning		      magic   nomagic	
		matches any single character	.	\.
		       matches start of line	^	^
			       matches <EOL>	$	$
		       matches start of word	\<	\<
			 matches end of word	\>	\>
	matches a single char from the range	[a-z]	\[a-z]
      matches a single char not in the range	[^a-z]	\[^a-z]
		  matches an identifier char	\i	\i
		   idem but excluding digits	\I	\I
		 matches a keyword character	\k	\k
		   idem but excluding digits	\K	\K
	       matches a file name character	\f	\f
		   idem but excluding digits	\F	\F
	       matches a printable character	\p	\p
		   idem but excluding digits	\P	\P
	     matches a white space character	\s	\s
	 matches a non-white space character	\S	\S

			       matches <Esc>	\e	\e
			       matches <Tab>	\t	\t
				matches <CR>	\r	\r
				matches <BS>	\b	\b

     matches 0 or more of the preceding atom	*	\*
     matches 1 or more of the preceding atom	\+	\+
	matches 0 or 1 of the preceding atom	\=	\=
	matches 2 to 5 of the preceding atom	\{2,5}  \{2,5}
		  separates two alternatives	\|	\|
		group a pattern into an atom	\(\)	\(\)

|search-offset|		Offsets allowed after search command

    [num]	[num] lines downwards, in column 1
    +[num]	[num] lines downwards, in column 1
    -[num]	[num] lines upwards, in column 1
    e[+num]	[num] characters to the right of the end of the match
    e[-num]	[num] characters to the left of the end of the match
    s[+num]	[num] characters to the right of the start of the match
    s[-num]	[num] characters to the left of the start of the match
    b[+num]	[num] characters to the right of the start (begin) of the match
    b[-num]	[num] characters to the left of the start (begin) of the match
    ;{search-command}	execute {search-command} next
------------------------------------------------------------------------------

*Q_ma*		Marks and motions

|m|	   m{a-zA-Z}	mark current position with mark {a-zA-Z}
|`a|	   `{a-z}	go to mark {a-z} within current file
|`A|	   `{A-Z}	go to mark {A-Z} in any file
|`0|	   `{0-9}	go to the position where Vim was previously exited
|``|	   ``		go to the position before the last jump
|`quote|   `"		go to the position when last editing this file
|`[|	   `[		go to the start of the previously operated or put text
|`]|	   `]		go to the end of the previously operated or put text
|`<|	   `<		go to the start of the (previous) Visual area
|`>|	   `>		go to the end of the (previous) Visual area
|`.|	   `.		go to the position of the last change in this file
|'|	   '{a-zA-Z0-9[]'"'<>.}
			same as `, but on the first non-blank in the line
|:marks|  :marks	print the active marks
|CTRL-O|  N  CTRL-O	go to Nth older position in jump list
|CTRL-I|  N  CTRL-I	go to Nth newer position in jump list
|:ju|	  :ju[mps]	print the jump list
------------------------------------------------------------------------------

*Q_vm*		Various motions

|%|	   %		find the next brace, bracket, comment, or "#if"/
			   "#else"/"#endif" in this line and go to its match
|H|	N  H		go to the Nth line in the window, on the first
			   non-blank
|M|	   M		go to the middle line in the window, on the first
			   non-blank
|L|	N  L		go to the Nth line from the bottom, on the first
			   non-blank

|go|	N  go			go to Nth byte in the buffer
|:go|	:[range]go[to] [off]	go to [off] byte in the buffer
------------------------------------------------------------------------------

*Q_ta*		Using tags

|:ta|	   :ta[g][!] {tag}	Jump to tag {tag}
|:ta|	   :[count]ta[g][!]	Jump to [count]'th newer tag in tag list
|CTRL-]|      CTRL-]		Jump to the tag under cursor, unless changes
				   have been made
|:ts|	   :ts[elect][!] [tag]	List matching tags and select one to jump to
|:tjump|   :tj[ump][!] [tag]	Jump to tag [tag] or select from list when
				   there are multiple matches

|:tags|	   :tags		Print tag list
|CTRL-T|   N  CTRL-T		Jump back from Nth older tag in tag list
|:po|	   :[count]po[p][!]	Jump back from [count]'th older tag in tag list
|:tnext|   :[count]tn[ext][!]	Jump to [count]'th next matching tag
|:tp|      :[count]tp[revious][!] Jump to [count]'th previous matching tag
|:tr|	   :[count]tr[ewind][!] Jump to [count]'th matching tag
|:tl|	   :tl[ast][!]		Jump to last matching tag

|:ptag|	   :pt[ag] {tag}	open a preview window to show tag {tag}
|CTRL-W_}|     CTRL-W }		like CTRL-] but show tag in preview window
|:pts|     :pts[elect]		like ":tselect" but show tag in preview window
|:ptjump|  :ptj[ump]		like ":tjump" but show tag in preview window
|:pclose|  :pc[lose]		close tag preview window
|CTRL-W_z|     CTRL-W z		close tag preview window
------------------------------------------------------------------------------

*Q_sc*		Scrolling

|CTRL-E|	N  CTRL-E	window N lines downwards (default: 1)
|CTRL-D|	N  CTRL-D	window N lines Downwards (default: 1/2 window)
|CTRL-F|	N  CTRL-F	window N pages Forwards (downwards)
|CTRL-Y|	N  CTRL-Y	window N lines upwards (default: 1)
|CTRL-U|	N  CTRL-U	window N lines Upwards (default: 1/2 window)
|CTRL-B|	N  CTRL-B	window N pages Backwards (upwards)
|z<CR>|		   z<CR> or zt	redraw, current line at top of window
|z.|		   z.	 or zz	redraw, current line at center of window
|z-|		   z-	 or zb	redraw, current line at bottom of window

These only work when 'wrap' is off:
|zh|		N  zh		scroll screen N characters to the right
|zl|		N  zl		scroll screen N characters to the left
|zH|		N  zH		scroll screen half a screenwidth to the right
|zL|		N  zL		scroll screen half a screenwidth to the left
------------------------------------------------------------------------------

*Q_in*		Inserting text

|a|	N  a	append text after the cursor (N times)
|A|	N  A	append text at the end of the line (N times)
|i|	N  i	insert text before the cursor (N times) (also: <Insert>)
|I|	N  I	insert text before the first non-blank in the line (N times)
|gI|	N  gI	insert text in column 1 (N times)
|o|	N  o	open a new line below the current line, append text (N times)
|O|	N  O	open a new line above the current line, append text (N times)
|:startinsert|  :star[tinsert][!]  start Insert mode, append when [!] used

in Visual block mode:
|v_b_I|    I	insert the same text in front of all the selected lines
|v_b_A|	   A	append the same text after all the selected lines
------------------------------------------------------------------------------

*Q_ai*		Insert mode keys

|insert-index|	alphabetical index of Insert mode commands

leaving Insert mode:
|i_<Esc>|	<Esc>		  end Insert mode, back to Normal mode
|i_CTRL-C|	CTRL-C		  like <Esc>, but do not use an abbreviation
|i_CTRL-O|	CTRL-O {command}  execute {command} and return to Insert mode

moving around:
|i_<Up>|	cursor keys	  move cursor left/right/up/down
|i_<S-Left>|	shift-left/right  one word left/right
|i_<S-Up>|	shift-up/down	  one screenful backward/forward
|i_<End>|	<End>		  cursor after last character in the line
|i_<Home>|	<Home>		  cursor to first character in the line
------------------------------------------------------------------------------

*Q_ss*		Special keys in Insert mode

|i_CTRL-V|	CTRL-V {char}..	  insert character literally, or enter decimal
				     byte value
|i_<NL>|	<NL> or <CR> or CTRL-M or CTRL-J
				  begin new line
|i_CTRL-E|	CTRL-E		  insert the character from below the cursor
|i_CTRL-Y|	CTRL-Y		  insert the character from above the cursor

|i_CTRL-A|	CTRL-A		  insert previously inserted text
|i_CTRL-@|	CTRL-@		  insert previously inserted text and stop
				     Insert mode
|i_CTRL-R|	CTRL-R {0-9a-z%#:.-="}  insert the contents of a register

|i_CTRL-N|	CTRL-N		  insert next match of identifier before the
				     cursor
|i_CTRL-P|	CTRL-P		  insert previous match of identifier before
				     the cursor
|i_CTRL-X|	CTRL-X ...	  complete the word before the cursor in
				     various ways

|i_<BS>|	<BS> or CTRL-H	  delete the character before the cursor
|i_<Del>|	<Del>		  delete the character under the cursor
|i_CTRL-W|	CTRL-W		  delete word before the cursor
|i_CTRL-U|	CTRL-U		  delete all entered characters in the current
				     line
|i_CTRL-T|	CTRL-T		  insert one shiftwidth of indent in front of
				       the current line
|i_CTRL-D|	CTRL-D		  delete one shiftwidth of indent in front of
				     the current line
|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 indent in next line
------------------------------------------------------------------------------

*Q_di*		Digraphs

|:dig|	   :dig[raphs]		show current list of digraphs
|:dig|	   :dig[raphs] {char1}{char2} {number} ...
				add digraph(s) to the list

In Insert or Command-line mode:
|i_CTRL-K|	CTRL-K {char1} {char2}
				  enter digraph
|i_digraph|	{char1} <BS> {char2}
				  enter digraph if 'digraph' option set
------------------------------------------------------------------------------

*Q_si*		Special inserts

|:r|	   :r [file]	   insert the contents of [file] below the cursor
|:r!|	   :r! {command}   insert the standard output of {command} below the
			      cursor
------------------------------------------------------------------------------

*Q_de*		Deleting text

|x|	N  x		delete N characters under and after the cursor
|<Del>| N  <Del>	delete N characters under and after the cursor
|X|	N  X		delete N characters before the cursor
|d|	N  d{motion}	delete the text that is moved over with {motion}
|v_d|	{visual}d	delete the highlighted text
|dd|	N  dd		delete N lines
|D|	N  D		delete to the end of the line (and N-1 more lines)
|J|	N  J		join N-1 lines (delete <EOL>s)
|v_J|	{visual}J	join the highlighted lines
|gJ|	N  gJ		like "J", but without inserting spaces
|v_gJ|	{visual}gJ	like "{visual}J", but without inserting spaces
|:d|	:[range]d [x]	delete [range] lines [into register x]
------------------------------------------------------------------------------

*Q_cm*		Copying and moving text

|quote|	  "{char}	use register {char} for the next delete, yank, or put
|:reg|	  :reg		show the contents of all registers
|:reg|	  :reg {arg}	show the contents of registers mentioned in {arg}
|y|	  N  y{motion}	yank the text moved over with {motion} into a register
|v_y|	     {visual}y	yank the highlighted text into a register
|yy|	  N  yy		yank N lines into a register
|Y|	  N  Y		yank N lines into a register
|p|	  N  p		put a register after the cursor position (N times)
|P|	  N  P		put a register before the cursor position (N times)
|]p|	  N  ]p		like p, but adjust indent to current line
|[p|	  N  [p		like P, but adjust indent to current line
|gp|	  N  gp		like p, but leave cursor after the new text
|gP|	  N  gP		like P, but leave cursor after the new text
------------------------------------------------------------------------------

*Q_ch*		Changing text

|r|	  N  r{char}	replace N characters with {char}
|gr|	  N  gr{char}	replace N characters without affecting layout
|R|	  N  R		enter Replace mode (repeat the entered text N times)
|gR|	  N  gR		enter virtual Replace mode: Like Replace mode but
			   without affecting layout
|v_b_r|	  {visual}r{char}
			in Visual block mode: Replace each char of the
			   selected text with {char}

	(change = delete text and enter Insert mode)
|c|	  N  c{motion}	change the text that is moved over with {motion}
|v_c|	     {visual}c	change the highlighted text
|cc|	  N  cc		change N lines
|S|	  N  S		change N lines
|C|	  N  C		change to the end of the line (and N-1 more lines)
|s|	  N  s		change N characters
|v_b_c|	     {visual}c	in Visual block mode: Change each of the selected
			   lines with the entered text
|v_b_C|	     {visual}C	in Visual block mode: Change each of the selected
			   lines until end-of-line with the entered text

|~|	  N  ~		switch case for N characters and advance cursor
|v_~|	     {visual}~	switch case for highlighted text
|v_u|	     {visual}u	make highlighted text lowercase
|v_U|	     {visual}U	make highlighted text uppercase
|g~|	     g~{motion} switch case for the text that is moved over with
			   {motion}
|gu|	     gu{motion} make the text that is moved over with {motion}
			   lowercase
|gU|	     gU{motion} make the text that is moved over with {motion}
			   uppercase
|v_g?|	     {visual}g? perform rot13 encoding on highlighted text
|g?|	     g?{motion} perform rot13 encoding on the text that is moved over
			   with {motion}

|CTRL-A|  N  CTRL-A	add N to the number at or after the cursor
|CTRL-X|  N  CTRL-X	subtract N from the number at or after the cursor

|<|	  N  <{motion}	move the lines that are moved over with {motion} one
			   shiftwidth left
|<<|	  N  <<		move N lines one shiftwidth left
|>|	  N  >{motion}	move the lines that are moved over with {motion} one
			   shiftwidth right
|>>|	  N  >>		move N lines one shiftwidth right
|gq|	  N  gq{motion}	format the lines that are moved over with {motion} to
			   'textwidth' length
|:ce|	  :[range]ce[nter] [width]
			center the lines in [range]
|:le|	  :[range]le[ft] [indent]
			left-align the lines in [range] (with [indent])
|:ri|	  :[range]ri[ght] [width]
			right-align the lines in [range]
------------------------------------------------------------------------------

*Q_co*		Complex changes

|!|	   N  !{motion}{command}<CR>
			filter the lines that are moved over through {command}
|!!|	   N  !!{command}<CR>
			filter N lines through {command}
|v_!|	      {visual}!{command}<CR>
			filter the highlighted lines through {command}
|:range!|  :[range]! {command}<CR>
			filter [range] lines through {command}
|=|	   N  ={motion}
			filter the lines that are moved over through 'equalprg'
|==|	   N  ==	filter N lines through 'equalprg'
|v_=|	      {visual}=
			filter the highlighted lines through 'equalprg'
|:s|	   :[range]s[ubstitute]/{pattern}/{string}/[g][c]
			substitute {pattern} by {string} in [range] lines;
			   with [g], replace all occurrences of {pattern};
			   with [c], confirm each replacement
|:s|	   :[range]s[ubstitute] [g][c]
			repeat previous ":s" with new range and options
|&|	      &		Repeat previous ":s" on current line without options
|:ret|	   :[range]ret[ab][!] [tabstop]
			set 'tabstop' to new value and adjust white space
			   accordingly
------------------------------------------------------------------------------

*Q_vi*		Visual mode

|visual-index|	list of Visual mode commands.

|v|	   v		start highlighting characters  }  move cursor and use
|V|	   V		start highlighting linewise    }  operator to affect
|CTRL-V|   CTRL-V	start highlighting blockwise   }  highlighted text
|v_o|	   o		exchange cursor position with start of highlighting
|gv|	   gv		start highlighting on previous visual area
|v_v|	   v		highlight characters or stop highlighting
|v_V|	   V		highlight linewise or stop highlighting
|v_CTRL-V| CTRL-V	highlight blockwise or stop highlighting
------------------------------------------------------------------------------

*Q_to*		Text objects (only in Visual mode or after an operator)

|v_aw|	N  aw		Select "a word"
|v_iw|	N  iw		Select "inner word"
|v_aW|	N  aW		Select "a |WORD|"
|v_iW|	N  iW		Select "inner |WORD|"
|v_as|	N  as		Select "a sentence"
|v_is|	N  is		Select "inner sentence"
|v_ap|	N  ap		Select "a paragraph"
|v_ip|	N  ip		Select "inner paragraph"
|v_ab|	N  ab		Select "a block" (from "[(" to "])")
|v_ib|	N  ib		Select "inner block" (from "[(" to "])")
|v_aB|	N  aB		Select "a Block" (from "[{" to "]}")
|v_iB|	N  iB		Select "inner Block" (from "[{" to "]}")
------------------------------------------------------------------------------

*Q_re*		Repeating commands

|.|	   N  .		repeat last change (with count replaced with N)
|q|	      q{a-z}	record typed characters into register {a-z}
|q|	      q{A-Z}	record typed characters, appended to register {a-z}
|q|	      q		stop recording
|@|	   N  @{a-z}	execute the contents of register {a-z} (N times)
|@@|	   N  @@	   repeat previous @{a-z} (N times)
|:@|	   :@{a-z}	execute the contents of register {a-z} as an Ex
			   command
|:@@|	   :@@		repeat previous :@{a-z}
|:g|	   :[range]g[lobal]/{pattern}/[cmd]
			Execute Ex command [cmd] (default: ":p") on the lines
			   within [range] where {pattern} matches.
|:g|	   :[range]g[lobal]!/{pattern}/[cmd]
			Execute Ex command [cmd] (default: ":p") on the lines
			   within [range] where {pattern} does NOT match.
|:so|	   :so[urce] {file}
			Read Ex commands from {file}.
|:so|	   :so[urce]! {file}
			Read Vim commands from {file}.
|:sl|	   :sl[eep] [sec]
			don't do anything for [sec] seconds
|gs|	   N  gs	Goto Sleep for N seconds
------------------------------------------------------------------------------

*Q_km*		Key mapping

|:map|	     :ma[p] {lhs} {rhs}	  Map {lhs} to {rhs} in Normal and Visual
				     mode.
|:map!|	     :ma[p]! {lhs} {rhs}  Map {lhs} to {rhs} in Insert and Command-line
				     mode.
|:noremap|   :no[remap][!] {lhs} {rhs}
				  Same as ":map", no remapping for this {rhs}
|:unmap|     :unm[ap] {lhs}	  Remove the mapping of {lhs} for Normal and
				     Visual mode.
|:unmap!|    :unm[ap]! {lhs}	  Remove the mapping of {lhs} for Insert and
				     Command-line mode.
|:map_l|     :ma[p] [lhs]	  List mappings (starting with [lhs]) for
				     Normal and Visual mode.
|:map_l!|    :ma[p]! [lhs]	  List mappings (starting with [lhs]) for
				     Insert and Command-line mode.
|:cmap|	     :cmap/:cunmap/:cnoremap
				  like ":map!"/":unmap!"/":noremap!" but for
				     Command-line mode only
|:imap|	     :imap/:iunmap/:inoremap
				  like ":map!"/":unmap!"/":noremap!" but for
				     Insert mode only
|:nmap|	     :nmap/:nunmap/:nnoremap
				  like ":map"/":unmap"/":noremap" but for
				     Normal mode only
|:vmap|	     :vmap/:vunmap/:vnoremap
				  like ":map"/":unmap"/":noremap" but for
				     Visual mode only
|:omap|	     :omap/:ounmap/:onoremap
				  like ":map"/":unmap"/":noremap" but only for
				     when an operator is pending
|:mapc|      :mapc[lear]	  remove mappings for Normal and Visual mode
|:mapc|      :mapc[lear]!	  remove mappings for Insert and Cmdline mode
|:imapc|     :imapc[lear]	  remove mappings for Insert mode
|:vmapc|     :vmapc[lear]	  remove mappings for Visual mode
|:omapc|     :omapc[lear]	  remove mappings for Operator-pending mode
|:nmapc|     :nmapc[lear]	  remove mappings for Normal mode
|:cmapc|     :cmapc[lear]	  remove mappings for Cmdline mode
|:mkexrc|    :mk[exrc][!] [file]  write current mappings, abbreviations, and
				     settings to [file] (default: ".exrc";
				     use ! to overwrite)
|:mkvimrc|   :mkv[imrc][!] [file]
				  same as ":mkexrc", but with default ".vimrc"
|:mksession| :mks[ession][!] [file]
				  like ":mkvimrc", but store current files,
				     windows, etc. too, to be able to continue
				     this session later.
------------------------------------------------------------------------------

*Q_ab*		Abbreviations

|:abbreviate|	:ab[breviate] {lhs} {rhs}  add abbreviation for {lhs} to {rhs}
|:abbreviate|	:ab[breviate] {lhs}	   show abbr's that start with {lhs}
|:abbreviate|	:ab[breviate]		   show all abbreviations
|:unabbreviate|	:una[bbreviate] {lhs}	   remove abbreviation for {lhs}
|:noreabbrev|	:norea[bbrev] [lhs] [rhs]  like ":ab", but don't remap [rhs]
|:iabbrev|	:iab/:iunab/:inoreab	   like ":ab", but only for Insert mode
|:cabbrev|	:cab/:cunab/:cnoreab	   like ":ab", but only for
						Command-line mode
|:abclear|	:abc[lear]		   remove all abbreviations
|:cabclear|	:cabc[lear]		   remove all abbr's for Cmdline mode
|:iabclear|	:iabc[lear]		   remove all abbr's for Insert mode
------------------------------------------------------------------------------

*Q_op*		Options

|:set|		:se[t]			  Show all modified options.
|:set|		:se[t] all		  Show all non-termcap options.
|:set|		:se[t] termcap		  Show all termcap options.
|:set|		:se[t] {option}		  Set boolean option (switch it on),
					  show string or number option.
|:set|		:se[t] no{option}	  Reset boolean option (switch it off).
|:set|		:se[t] inv{option}	  invert boolean option.
|:set|		:se[t] {option}={value}	  Set string/number option to {value}.
|:set|		:se[t] {option}+={value}  append {value} to string option, add
					  {value} to number option
|:set|		:se[t] {option}-={value}  remove {value} to string option,
					  subtract {value} from number option
|:set|		:se[t] {option}?	  Show value of {option}.
|:set|		:se[t] {option}&	  Reset {option} to its default value.

|:setlocal|	:setl[ocal]		  like ":set" but set the local value
					  for options that have one
|:setglobal|	:setg[lobal]		  like ":set" but set the global value
					  of a local option

|:fix|		:fix[del]		  Set value of 't_kD' according to
					  value of 't_kb'.
|:options|	:opt[ions]		  Open a new window to view and set
					  options, grouped by functionality,
					  a one line explanation and links to
					  the help.


Short explanation of each option:		*option-list*
|'aleph'|	  |'al'|     ASCII code of the letter Aleph (Hebrew)
|'allowrevins'|	  |'ari'|    allow CTRL-_ in Insert and Command-line mode
|'altkeymap'|	  |'akm'|    for default second language (Farsi/Hebrew)
|'arabic'|	  |'arab'|   for Arabic as a default second language
|'autoindent'|	  |'ai'|     take indent for new line from previous line
|'autoread'|	  |'ar'|     autom. read file when changed outside of Vim
|'autowrite'|	  |'aw'|     automatically write file if changed
|'autowriteall'|  |'awa'|    as 'autowrite', but works with more commands
|'background'|	  |'bg'|     "dark" or "light", used for highlight colors
|'backspace'|	  |'bs'|     how backspace works at start of line
|'backup'|	  |'bk'|     keep backup file after overwriting a file
|'backupcopy'|	  |'bkc'|    make backup as a copy, don't rename the file
|'backupdir'|	  |'bdir'|   list of directories for the backup file
|'backupext'|	  |'bex'|    extension used for the backup file
|'backupskip'|	  |'bsk'|    no backup for files that match these patterns
|'balloondelay'|  |'bdlay'|  delay in mS before a balloon may pop up
|'ballooneval'|   |'beval'|  switch on balloon evaluation
|'binary'|	  |'bin'|    read/write/edit file in binary mode
|'bioskey'|	  |'biosk'|  MS-DOS: use bios calls for input characters
|'bomb'|		     prepend a Byte Order Mark to the file
|'breakat'|	  |'brk'|    characters that may cause a line break
|'browsedir'|	  |'bsdir'|  which directory to start browsing in
|'bufhidden'|	  |'bh'|     what to do when buffer is no longer in window
|'buflisted'|	  |'bl'|     whether the buffer shows up in the buffer list
|'buftype'|	  |'bt'|     special type of buffer
|'cdpath'|	  |'cd'|     list of directories searched with ":cd"
|'cedit'|		     key used to open the command-line window
|'charconvert'|   |'ccv'|    expression for character encoding conversion
|'cindent'|	  |'cin'|    do C program indenting
|'cinkeys'|	  |'cink'|   keys that trigger indent when 'cindent' is set
|'cinoptions'|	  |'cino'|   how to do indenting when 'cindent' is set
|'cinwords'|	  |'cinw'|   words where 'si' and 'cin' add an indent
|'clipboard'|	  |'cb'|     use the clipboard as the unnamed register
|'cmdheight'|	  |'ch'|     number of lines to use for the command-line
|'cmdwinheight'|  |'cwh'|    height of the command-line window
|'columns'|	  |'co'|     number of columns in the display
|'comments'|	  |'com'|    patterns that can start a comment line
|'commentstring'| |'cms'|    template for comments; used for fold marker
|'compatible'|	  |'cp'|     behave Vi-compatible as much as possible
|'complete'|	  |'cpt'|    specify how Insert mode completion works
|'confirm'|	  |'cf'|     ask what to do about unsaved/read-only files
|'conskey'|	  |'consk'|  get keys directly from console (MS-DOS only)
|'copyindent'|    |'ci'|     make 'autoindent' use existing indent structure
|'cpoptions'|	  |'cpo'|    flags for Vi-compatible behavior
|'cscopepathcomp'| |'cspc'|  how many components of the path to show
|'cscopeprg'|	  |'csprg'|  command to execute cscope
|'cscopetag'|	  |'cst'|    use cscope for tag commands
|'cscopetagorder'| |'csto'|  determines ":cstag" search order
|'cscopeverbose'| |'csverb'| give messages when adding a cscope database
|'debug'|		     set to "msg" to see all error messages
|'define'|	  |'def'|    pattern to be used to find a macro definition
|'delcombine'|	  |'deco'|   delete combining characters on their own
|'dictionary'|	  |'dict'|   list of file names used for keyword completion
|'diff'|		     use diff mode for the current window
|'diffexpr'|	  |'dex'|    expression used to obtain a diff file
|'diffopt'|	  |'dip'|    options for using diff mode
|'digraph'|	  |'dg'|     enable the entering of digraphs in Insert mode
|'directory'|	  |'dir'|    list of directory names for the swap file
|'display'|	  |'dy'|     list of flags for how to display text
|'edcompatible'|  |'ed'|     toggle flags of ":substitute" command
|'eadirection'|   |'ead'|    in which direction 'equalalways' works
|'encoding'|	  |'enc'|    encoding used internally
|'endofline'|	  |'eol'|    write <EOL> for last line in file
|'equalalways'|   |'ea'|     windows are automatically made the same size
|'equalprg'|	  |'ep'|     external program to use for "=" command
|'errorbells'|	  |'eb'|     ring the bell for error messages
|'errorfile'|	  |'ef'|     name of the errorfile for the QuickFix mode
|'errorformat'|   |'efm'|    description of the lines in the error file
|'esckeys'|	  |'ek'|     recognize function keys in Insert mode
|'eventignore'|	  |'ei'|     autocommand events that are ignored
|'expandtab'|	  |'et'|     use spaces when <Tab> is inserted
|'exrc'|	  |'ex'|     read .vimrc and .exrc in the current directory
|'fileencoding'|  |'fenc'|   file encoding for multi-byte text
|'fileencodings'| |'fencs'|  automatically detected character encodings
|'fileformat'|	  |'ff'|     file format used for file I/O
|'fileformats'|	  |'ffs'|    automatically detected values for 'fileformat'
|'filetype'|	  |'ft'|     type of file, used for autocommands
|'fillchars'|	  |'fcs'|    characters to use for displaying special items
|'fkmap'|	  |'fk'|     Farsi keyboard mapping
|'foldclose'|	  |'fcl'|    close a fold when the cursor leaves it
|'foldcolumn'|	  |'fdc'|    width of the column used to indicate folds
|'foldenable'|	  |'fen'|    set to display all folds open
|'foldexpr'|	  |'fde'|    expression used when 'foldmethod' is "expr"
|'foldignore'|	  |'fdi'|    ignore lines when 'foldmethod' is "indent"
|'foldlevel'|	  |'fdl'|    close folds with a level higher than this
|'foldlevelstart'| |'fdls'|  'foldlevel' when starting to edit a file
|'foldmarker'|	  |'fmr'|    markers used when 'foldmethod' is "marker"
|'foldmethod'|	  |'fdm'|    folding type
|'foldminlines'|  |'fml'|    minimum number of lines for a fold to be closed
|'foldnestmax'|   |'fdn'|    maximum fold depth
|'foldopen'|	  |'fdo'|    for which commands a fold will be opened
|'foldtext'|	  |'fdt'|    expression used to display for a closed fold
|'formatoptions'| |'fo'|     how automatic formatting is to be done
|'formatprg'|	  |'fp'|     name of external program used with "gq" command
|'gdefault'|	  |'gd'|     the ":substitute" flag 'g' is default on
|'grepformat'|	  |'gfm'|    format of 'grepprg' output
|'grepprg'|	  |'gp'|     program to use for ":grep"
|'guicursor'|	  |'gcr'|    GUI: settings for cursor shape and blinking
|'guifont'|	  |'gfn'|    GUI: Name(s) of font(s) to be used
|'guifontset'|	  |'gfs'|    GUI: Names of multi-byte fonts to be used
|'guifontwide'|   |'gfw'|    list of font names for double-wide characters
|'guiheadroom'|	  |'ghr'|    GUI: pixels room for window decorations
|'guioptions'|	  |'go'|     GUI: Which components and options are used
|'guipty'|		     GUI: try to use a pseudo-tty for ":!" commands
|'helpfile'|	  |'hf'|     name of this help file
|'helpheight'|	  |'hh'|     minimum height of a new help window
|'hidden'|	  |'hid'|    don't unload buffer when it is |abandon|ed
|'highlight'|	  |'hl'|     sets highlighting mode for various occasions
|'hlsearch'|	  |'hls'|    highlight matches with last search pattern
|'history'|	  |'hi'|     number of command-lines that are remembered
|'hkmap'|	  |'hk'|     Hebrew keyboard mapping
|'hkmapp'|	  |'hkp'|    phonetic Hebrew keyboard mapping
|'icon'|		     let Vim set the text of the window icon
|'iconstring'|		     string to use for the Vim icon text
|'ignorecase'|	  |'ic'|     ignore case in search patterns
|'imactivatekey'| |'imak'|   key that activates the X input method
|'imcmdline'|	  |'imc'|    use IM when starting to edit a command line
|'iminsert'|	  |'imi'|    use :lmap or IM in Insert mode
|'imsearch'|	  |'ims'|    use :lmap or IM when typing a search pattern
|'include'|	  |'inc'|    pattern to be used to find an include file
|'includeexpr'|   |'inex'|   expression used to process an include line
|'incsearch'|	  |'is'|     highlight match while typing search pattern
|'indentexpr'|	  |'inde'|   expression used to obtain the indent of a line
|'indentkeys'|	  |'indk'|   keys that trigger indenting with 'indentexpr'
|'infercase'|	  |'inf'|    adjust case of match for keyword completion
|'insertmode'|	  |'im'|     start the edit of a file in Insert mode
|'isfname'|	  |'isf'|    characters included in file names and pathnames
|'isident'|	  |'isi'|    characters included in identifiers
|'iskeyword'|	  |'isk'|    characters included in keywords
|'isprint'|	  |'isp'|    printable characters
|'joinspaces'|	  |'js'|     two spaces after a period with a join command
|'key'|			     encryption key
|'keymap'|	  |'kmp'|    name of a keyboard mapping
|'keymodel'|	  |'km'|     enable starting/stopping selection with keys
|'keywordprg'|	  |'kp'|     program to use for the "K" command
|'langmap'|	  |'lmap'|   alphabetic characters for other language mode
|'langmenu'|	  |'lm'|     language to be used for the menus
|'laststatus'|	  |'ls'|     tells when last window has status lines
|'lazyredraw'|	  |'lz'|     don't redraw while executing macros
|'linebreak'|	  |'lbr'|    wrap long lines at a blank
|'lines'|		     number of lines in the display
|'linespace'|	  |'lsp'|    number of pixel lines to use between characters
|'lisp'|		     automatic indenting for Lisp
|'lispwords'|	  |'lw'|     words that change how lisp indenting works
|'list'|		     show <Tab> and <EOL>
|'listchars'|	  |'lcs'|    characters for displaying in list mode
|'loadplugins'|   |'lpl'|    load plugin scripts when starting up
|'magic'|		     changes special characters in search patterns
|'makeef'|	  |'mef'|    name of the errorfile for ":make"
|'makeprg'|	  |'mp'|     program to use for the ":make" command
|'matchpairs'|	  |'mps'|    pairs of characters that "%" can match
|'matchtime'|	  |'mat'|    tenths of a second to show matching paren
|'maxfuncdepth'|  |'mfd'|    maximum recursive depth for user functions
|'maxmapdepth'|   |'mmd'|    maximum recursive depth for mapping
|'maxmem'|	  |'mm'|     maximum memory (in Kbyte) used for one buffer
|'maxmemtot'|	  |'mmt'|    maximum memory (in Kbyte) used for all buffers
|'menuitems'|	  |'mis'|    maximum number of items in a menu
|'modeline'|	  |'ml'|     recognize modelines at start or end of file
|'modelines'|	  |'mls'|    number of lines checked for modelines
|'modifiable'|	  |'ma'|     changes to the text are not possible
|'modified'|	  |'mod'|    buffer has been modified
|'more'|		     pause listings when the whole screen is filled
|'mouse'|		     enable the use of mouse clicks
|'mousefocus'|	  |'mousef'| keyboard focus follows the mouse
|'mousehide'|	  |'mh'|     hide mouse pointer while typing
|'mousemodel'|	  |'mousem'| changes meaning of mouse buttons
|'mouseshape'|	  |'mouses'| shape of the mouse pointer in different modes
|'mousetime'|	  |'mouset'| max time between mouse double-click
|'nrformats'|	  |'nf'|     number formats recognized for CTRL-A command
|'number'|	  |'nu'|     print the line number in front of each line
|'osfiletype'|	  |'oft'|    operating system-specific filetype information
|'paragraphs'|	  |'para'|   nroff macros that separate paragraphs
|'paste'|		     allow pasting text
|'pastetoggle'|	  |'pt'|     key code that causes 'paste' to toggle
|'patchexpr'|	  |'pex'|    expression used to patch a file
|'patchmode'|	  |'pm'|     keep the oldest version of a file
|'path'|	  |'pa'|     list of directories searched with "gf" et.al.
|'preserveindent'| |'pi'|    preserve the indent structure when reindenting
|'previewheight'| |'pvh'|    height of the preview window
|'previewwindow'| |'pvw'|    identifies the preview window
|'printdevice'|   |'pdev'|   name of the printer to be used for :hardcopy
|'printfont'|	  |'pfn'|    name of the font to be used for :hardcopy
|'printheader'|   |'pheader'| format of the header used for :hardcopy
|'printoptions'|  |'popt'|   controls the format of :hardcopy output
|'readonly'|	  |'ro'|     disallow writing the buffer
|'remap'|		     allow mappings to work recursively
|'report'|		     threshold for reporting nr. of lines changed
|'restorescreen'| |'rs'|     Win32: restore screen when exiting
|'revins'|	  |'ri'|     inserting characters will work backwards
|'rightleft'|	  |'rl'|     window is right-to-left oriented
|'ruler'|	  |'ru'|     show cursor line and column in the status line
|'rulerformat'|	  |'ruf'|    custom format for the ruler
|'runtimepath'|   |'rtp'|    list of directories used for runtime files
|'scroll'|	  |'scr'|    lines to scroll with CTRL-U and CTRL-D
|'scrollbind'|	  |'scb'|    scroll in window as other windows scroll
|'scrolljump'|	  |'sj'|     minimum number of lines to scroll
|'scrolloff'|	  |'so'|     minimum nr. of lines above and below cursor
|'scrollopt'|	  |'sbo'|    how 'scrollbind' should behave
|'sections'|	  |'sect'|   nroff macros that separate sections
|'secure'|		     secure mode for reading .vimrc in current dir
|'selection'|	  |'sel'|    what type of selection to use
|'selectmode'|	  |'slm'|    when to use Select mode instead of Visual mode
|'sessionoptions'| |'ssop'|  options for |:mksession|
|'shell'|	  |'sh'|     name of shell to use for external commands
|'shellcmdflag'|  |'shcf'|   flag to shell to execute one command
|'shellpipe'|	  |'sp'|     string to put output of ":make" in error file
|'shellquote'|	  |'shq'|    quote character(s) for around shell command
|'shellredir'|	  |'srr'|    string to put output of filter in a temp file
|'shellslash'|	  |'ssl'|    use forward slash for shell file names
|'shelltype'|	  |'st'|     Amiga: influences how to use a shell
|'shellxquote'|	  |'sxq'|    like 'shellquote', but include redirection
|'shiftround'|	  |'sr'|     round indent to multiple of shiftwidth
|'shiftwidth'|	  |'sw'|     number of spaces to use for (auto)indent step
|'shortmess'|	  |'shm'|    list of flags, reduce length of messages
|'shortname'|	  |'sn'|     non-MS-DOS: Filenames assumed to be 8.3 chars
|'showbreak'|	  |'sbr'|    string to use at the start of wrapped lines
|'showcmd'|	  |'sc'|     show (partial) command in status line
|'showfulltag'|	  |'sft'|    show full tag pattern when completing tag
|'showmatch'|	  |'sm'|     briefly jump to matching bracket if insert one
|'showmode'|	  |'smd'|    message on status line to show current mode
|'sidescroll'|	  |'ss'|     minimum number of columns to scroll horizontal
|'sidescrolloff'| |'siso'|   min. nr. of columns to left and right of cursor
|'smartcase'|	  |'scs'|    no ignore case when pattern has uppercase
|'smartindent'|   |'si'|     smart autoindenting for C programs
|'smarttab'|	  |'sta'|    use 'shiftwidth' when inserting <Tab>
|'softtabstop'|	  |'sts'|    number of spaces that <Tab> uses while editing
|'splitbelow'|	  |'sb'|     new window from split is below the current one
|'splitright'|	  |'spr'|    new window is put right of the current one
|'startofline'|   |'sol'|    commands move cursor to first blank in line
|'statusline'|	  |'stl'|    custom format for the status line
|'suffixes'|	  |'su'|     suffixes that are ignored with multiple match
|'suffixesadd'|   |'sua'|    suffixes added when searching for a file
|'swapfile'|	  |'swf'|    whether to use a swapfile for a buffer
|'swapsync'|	  |'sws'|    how to sync the swap file
|'switchbuf'|	  |'swb'|    sets behavior when switching to another buffer
|'syntax'|	  |'syn'|    syntax to be loaded for current buffer
|'tabstop'|	  |'ts'|     number of spaces that <Tab> in file uses
|'tagbsearch'|	  |'tbs'|    use binary searching in tags files
|'taglength'|	  |'tl'|     number of significant characters for a tag
|'tagrelative'|   |'tr'|     file names in tag file are relative
|'tags'|	  |'tag'|    list of file names used by the tag command
|'tagstack'|	  |'tgst'|   push tags onto the tag stack
|'term'|		     name of the terminal
|'termencoding'|  |'tenc'|   character encoding used by the terminal
|'terse'|		     shorten some messages
|'textauto'|	  |'ta'|     obsolete, use 'fileformats'
|'textmode'|	  |'tx'|     obsolete, use 'fileformat'
|'textwidth'|	  |'tw'|     maximum width of text that is being inserted
|'thesaurus'|	  |'tsr'|    list of thesaurus files for keyword completion
|'tildeop'|	  |'top'|    tilde command "~" behaves like an operator
|'timeout'|	  |'to'|     time out on mappings and key codes
|'timeoutlen'|	  |'tm'|     time out time in milliseconds
|'title'|		     let Vim set the title of the window
|'titlelen'|		     percentage of 'columns' used for window title
|'titleold'|		     old title, restored when exiting
|'titlestring'|		     string to use for the Vim window title
|'toolbar'|	  |'tb'|     GUI: which items to show in the toolbar
|'ttimeout'|		     time out on mappings
|'ttimeoutlen'|	  |'ttm'|    time out time for key codes in milliseconds
|'ttybuiltin'|	  |'tbi'|    use built-in termcap before external termcap
|'ttyfast'|	  |'tf'|     indicates a fast terminal connection
|'ttymouse'|	  |'ttym'|   type of mouse codes generated
|'ttyscroll'|	  |'tsl'|    maximum number of lines for a scroll
|'ttytype'|	  |'tty'|    alias for 'term'
|'undolevels'|	  |'ul'|     maximum number of changes that can be undone
|'updatecount'|   |'uc'|     after this many characters flush swap file
|'updatetime'|	  |'ut'|     after this many milliseconds flush swap file
|'verbose'|	  |'vbs'|    give informative messages
|'viewdir'|	  |'vdir'|   directory where to store files with :mkview
|'viewoptions'|   |'vop'|    specifies what to save for :mkview
|'viminfo'|	  |'vi'|     use .viminfo file upon startup and exiting
|'virtualedit'|   |'ve'|     when to use virtual editing
|'visualbell'|	  |'vb'|     use visual bell instead of beeping
|'warn'|		     warn for shell command when buffer was changed
|'weirdinvert'|   |'wi'|     for terminals that have weird inversion method
|'whichwrap'|	  |'ww'|     allow specified keys to cross line boundaries
|'wildchar'|	  |'wc'|     command-line character for wildcard expansion
|'wildcharm'|	  |'wcm'|    like 'wildchar' but also works when mapped
|'wildignore'|	  |'wig'|    files matching these patterns are not completed
|'wildmenu'|	  |'wmnu'|   use menu for command line completion
|'wildmode'|	  |'wim'|    mode for 'wildchar' command-line expansion
|'winaltkeys'|	  |'wak'|    when the windows system handles ALT keys
|'winheight'|	  |'wh'|     minimum number of lines for the current window
|'winminheight'|  |'wmh'|    minimum number of lines for any window
|'winminwidth'|   |'wmw'|    minimal number of columns for any window
|'winwidth'|	  |'wiw'|    minimal number of columns for current window
|'wrap'|		     long lines wrap and continue on the next line
|'wrapmargin'|	  |'wm'|     chars from the right where wrapping starts
|'wrapscan'|	  |'ws'|     searches wrap around the end of the file
|'write'|		     writing to a file is allowed
|'writeany'|	  |'wa'|     write to file with no need for "!" override
|'writebackup'|   |'wb'|     make a backup before overwriting a file
|'writedelay'|	  |'wd'|     delay this many msec for each char (for debug)
------------------------------------------------------------------------------

*Q_ur*		Undo/Redo commands

|u|	  N  u		undo last N changes
|CTRL-R|  N  CTRL-R	redo last N undone changes
|U|	     U		restore last changed line
------------------------------------------------------------------------------

*Q_et*		External commands

|:shell|	:sh[ell]	start a shell
|:!|		:!{command}	execute {command} with a shell
|K|		   K		lookup keyword under the cursor with
				   'keywordprg' program (default: "man")
------------------------------------------------------------------------------

*Q_qf*		Quickfix commands

|:cc|		:cc [nr]	display error [nr] (default is the same again)
|:cnext|	:cn		display the next error
|:cprevious|	:cp		display the previous error
|:clist|	:cl		list all errors
|:cfile|	:cf		read errors from the file 'errorfile'
|:cquit|	:cq		quit without writing and return error code (to
				   the compiler)
|:make|		:make [args]	start make, read errors, and jump to first
				   error
|:grep|		:gr[ep] [args]	execute 'grepprg' to find matches and jump to
				   the first one.
------------------------------------------------------------------------------

*Q_vc*		Various commands

|CTRL-L|	   CTRL-L	Clear and redraw the screen.
|CTRL-G|	   CTRL-G	show current file name (with path) and cursor
				   position
|ga|		   ga		show ascii value of character under cursor in
				   decimal, hex, and octal
|g_CTRL-G|	   g CTRL-G	show cursor column, line, and character
				   position
|CTRL-C|	   CTRL-C	during searches: Interrupt the search
|dos-CTRL-Break|   CTRL-Break	MS-DOS: during searches: Interrupt the search
|<Del>|		   <Del>	while entering a count: delete last character
|:version|	:ve[rsion]	show version information
|:mode|		:mode N		MS-DOS: set screen mode to N (number, C80,
				   C4350, etc.)
|:normal|	:norm[al][!] {commands}
				Execute Normal mode commands.
|Q|		Q		switch to "Ex" mode

|:redir|	:redir >{file}		redirect messages to {file}
|:silent|	:silent[!] {command}	execute {command} silently
|:confirm|	:confirm {command}	quit, write, etc., asking about
					unsaved changes or read-only files.
|:browse|	:browse {command}	open/read/write file, using a
					file selection dialog
------------------------------------------------------------------------------

*Q_ce*		Command-line editing

|c_<Esc>|	<Esc>		   abandon command-line (if 'wildchar' is
				      <Esc>, type it twice)

|c_CTRL-V|	CTRL-V {char}	   insert {char} literally
|c_CTRL-V|	CTRL-V {number}    enter decimal value of character (up to
				      three digits)
|c_CTRL-K|	CTRL-K {char1} {char2}
				   enter digraph (See |Q_di|)
|c_CTRL-R|	CTRL-R {0-9a-z"%#:-=}
				   insert the contents of a register

|c_<Left>|	<Left>/<Right>	   cursor left/right
|c_<S-Left>|	<S-Left>/<S-Right> cursor one word left/right
|c_CTRL-B|	CTRL-B/CTRL-E	   cursor to beginning/end of command-line

|c_<BS>|	<BS>		   delete the character in front of the cursor
|c_<Del>|	<Del>		   delete the character under the cursor
|c_CTRL-W|	CTRL-W		   delete the word in front of the cursor
|c_CTRL-U|	CTRL-U		   remove all characters

|c_<Up>|	<Up>/<Down>	   recall older/newer command-line that starts
				      with current command
|c_<S-Up>|	<S-Up>/<S-Down>	   recall older/newer command-line from history
|:history|	:his[tory]	   show older command-lines

Context-sensitive completion on the command-line:

|c_wildchar|	'wildchar'  (default: <Tab>)
				do completion on the pattern in front of the
				   cursor.  If there are multiple matches,
				   beep and show the first one; further
				   'wildchar' will show the next ones.
|c_CTRL-D|	CTRL-D		list all names that match the pattern in
				   front of the cursor
|c_CTRL-A|	CTRL-A		insert all names that match pattern in front
				   of cursor
|c_CTRL-L|	CTRL-L		insert longest common part of names that
				   match pattern
|c_CTRL-N|	CTRL-N		after 'wildchar' with multiple matches: go
				   to next match
|c_CTRL-P|	CTRL-P		after 'wildchar' with multiple matches: go
				   to previous match
------------------------------------------------------------------------------

*Q_ra*		Ex ranges

|:range|	,		separates two line numbers
|:range|	;		idem, set cursor to the first line number
				before interpreting the second one

|:range|	{number}	an absolute line number
|:range|	.		the current line
|:range|	$		the last line in the file
|:range|	%		equal to 1,$ (the entire file)
|:range|	*		equal to '<,'> (visual area)
|:range|	't		position of mark t
|:range|	/{pattern}[/]	the next line where {pattern} matches
|:range|	?{pattern}[?]	the previous line where {pattern} matches

|:range|	+[num]		add [num] to the preceding line number
				   (default: 1)
|:range|	-[num]		subtract [num] from the preceding line
				   number (default: 1)
------------------------------------------------------------------------------

*Q_ex*		Special Ex characters

|:bar|	    |		separates two commands (not for ":global" and ":!")
|:quote|    "		begins comment

|:_%|	    %		current file name (only where a file name is expected)
|:_#|	    #[num]	alternate file name [num] (only where a file name is
			   expected)
	Note: The next four are typed literally; these are not special keys!
|:<cword>|  <cword>	word under the cursor (only where a file name is
			   expected)
|:<cWORD>|  <cWORD>	WORD under the cursor (only where a file name is
			   expected) (see |WORD|)
|:<cfile>|  <cfile>	file name under the cursor (only where a file name is
			   expected)
|:<afile>|  <afile>	file name for autocommand (only where a file name is
			   expected)
|:<sfile>|  <sfile>	file name of a ":source"d file, within that file (only
			   where a file name is expected)

		After "%", "#", "<cfile>", "<sfile>" or "<afile>"
		|::p|	    :p		full path
		|::h|	    :h		head (file name removed)
		|::t|	    :t		tail (file name only)
		|::r|	    :r		root (extension removed)
		|::e|	    :e		extension
		|::s|	    :s/{pat}/{repl}/	substitute {pat} with {repl}
------------------------------------------------------------------------------

*Q_ed*		Editing a file

	   Without !: Fail if changes has been made to the current buffer.
	      With !: Discard any changes to the current buffer.
|:edit_f|  :e[dit][!] {file}	Edit {file}.
|:edit|	   :e[dit][!]		Reload the current file.
|:enew|	   :ene[w][!]		Edit a new, unnamed buffer.
|:find|    :fin[d][!] {file}	Find {file} in 'path' and edit it.

|CTRL-^|   N   CTRL-^		Edit alternate file N (equivalent to ":e #N").
|gf|	       gf  or ]f	Edit the file whose name is under the cursor
|:pwd|	   :pwd			Print the current directory name.
|:cd|	   :cd [path]		Change the current directory to [path].
|:cd-|	   :cd -		Back to previous current directory.
|:file|	   :f[ile]		Print the current file name and the cursor
				   position.
|:file|	   :f[ile] {name}	Set the current file name to {name}.
|:files|   :files		Show alternate file names.
------------------------------------------------------------------------------

*Q_fl*		Using the argument list			|argument-list|

|:args|	   :ar[gs]		Print the argument list, with the current file
				   in "[]".
|:all|	   :all  or :sall	Open a window for every file in the arg list.
|:wn|	   :wn[ext][!]		Write file and edit next file.
|:wn|	   :wn[ext][!] {file}	Write to {file} and edit next file, unless
				   {file} exists.  With !, overwrite existing
				   file.
|:wN|	   :wN[ext][!] [file]	Write file and edit previous file.

	     in current window    in new window	
|:argument|  :argu[ment] N	  :sar[gument] N	Edit file N
|:next|	     :n[ext]		  :sn[ext]		Edit next file
|:next_f|    :n[ext] {arglist}	  :sn[ext] {arglist}	define new arg list
							   and edit first file
|:Next|	     :N[ext]		  :sN[ext]		Edit previous file
|:first|     :fir[st]		  :sfir[st]		Edit first file
|:last|	     :la[st]		  :sla[st]		Edit last file
------------------------------------------------------------------------------

*Q_wq*		Writing and quitting

|:w|	  :[range]w[rite][!]		Write to the current file.
|:w_f|	  :[range]w[rite] {file}	Write to {file}, unless it already
					   exists.
|:w_f|	  :[range]w[rite]! {file}	Write to {file}.  Overwrite an existing
					   file.
|:w_a|	  :[range]w[rite][!] >>		Append to the current file.
|:w_a|	  :[range]w[rite][!] >> {file}	Append to {file}.
|:w_c|	  :[range]w[rite] !{cmd}	Execute {cmd} with [range] lines as
					   standard input.
|:up|	  :[range]up[date][!]		write to current file if modified
|:wall|	  :wa[ll][!]			write all changed buffers

|:q|	  :q[uit]		Quit current buffer, unless changes have been
				   made.  Exit Vim when there are no other
				   non-help buffers
|:q|	  :q[uit]!		Quit current buffer always, discard any
				   changes.  Exit Vim when there are no other
				   non-help buffers
|:qa|	  :qa[ll]		Exit Vim, unless changes have been made.
|:qa|	  :qa[ll]!		Exit Vim always, discard any changes.
|:cq|	  :cq			Quit without writing and return error code.

|:wq|	  :wq[!]		Write the current file and exit.
|:wq|	  :wq[!] {file}		Write to {file} and exit.
|:xit|	  :x[it][!] [file]	Like ":wq" but write only when changes have
				   been made
|ZZ|	     ZZ			Same as ":x".
|ZQ|	     ZQ			Same as ":q!".
|:xall|	  :xa[ll][!]  or :wqall[!]
				Write all changed buffers and exit

|:stop|	  :st[op][!]		Suspend VIM or start new shell. If 'aw' option
				   is set and [!] not given write the buffer.
|CTRL-Z|     CTRL-Z		Same as ":stop"
------------------------------------------------------------------------------

*Q_st*		Starting VIM

|-vim|	   vim [options]		start editing with an empty buffer
|-file|	   vim [options] {file} ..	start editing one or more files
|--|	   vim [options] -		read file from stdin
|-tag|	   vim [options] -t {tag}	edit the file associated with {tag}
|-qf|	   vim [options] -q [fname]	start editing in QuickFix mode,
					   display the first error

	Vim arguments:

|-gui|	-g		    start GUI (also allows other options)

|-+|	+[num]		    put the cursor at line [num] (default: last line)
|-+c|	+{command}	    execute {command} after loading the file
|-+/|	+/{pat} {file} ..   put the cursor at the first occurrence of {pat}
|-v|	-v		    Vi mode, start ex in Normal mode
|-e|	-e		    Ex mode, start vim in Ex mode
|-R|	-R		    Read-only mode, implies -n
|-m|	-m		    modifications not allowed (resets 'write' option)
|-b|	-b		    binary mode
|-l|	-l		    lisp mode
|-A|	-A		    Arabic mode ('arabic' is set)
|-F|	-F		    Farsi mode ('fkmap' and 'rightleft' are set)
|-H|	-H		    Hebrew mode ('hkmap' and 'rightleft' are set)
|-V|	-V		    Verbose, give informative messages
|-C|	-C		    Compatible, set the 'compatible' option
|-N|	-N		    Nocompatible, reset the 'compatible' option
|-r|	-r		    give list of swap files
|-r|	-r {file} ..	    recover aborted edit session
|-n|	-n		    do not create a swap file
|-o|	-o [num]	    open [num] windows (default: one for each file)
|-f|	-f		    GUI: foreground process, don't fork
			    Amiga: do not restart VIM to open a window (for
				e.g., mail)
|-s|	-s {scriptin}	    first read commands from the file {scriptin}
|-w|	-w {scriptout}	    write typed chars to file {scriptout} (append)
|-W|	-W {scriptout}	    write typed chars to file {scriptout} (overwrite)
|-T|	-T {terminal}	    set terminal name
|-d|	-d {device}	    Amiga: open {device} to be used as a console
|-u|	-u {vimrc}	    read inits from {vimrc} instead of other inits
|-U|	-U {gvimrc}	    idem, for when starting the GUI
|-i|	-i {viminfo}	    read info from {viminfo} instead of other files
|---|	--		    end of options, other arguments are file names
|--help|    --help	    show list of arguments and exit
|--version| --version	    show version info and exit
|--|	-		    Read file from stdin.
------------------------------------------------------------------------------

*Q_ac*		Automatic Commands

|viminfo-file|	Read registers, marks, history at startup, save when exiting.

|:rviminfo|	:rv[iminfo] [file]	Read info from viminfo file [file]
|:rviminfo|	:rv[iminfo]! [file]	idem, overwrite existing info
|:wviminfo|	:wv[iminfo] [file]	Add info to viminfo file [file]
|:wviminfo|	:wv[iminfo]! [file]	Write info to viminfo file [file]

|modeline|	Automatic option setting when editing a file

|modeline|	vim:{set-arg}: ..	In the first and last lines of the
					file (see 'ml' option), {set-arg} is
					given as an argument to ":set"

|autocommand|	Automatic execution of commands on certain events.

|:autocmd|	:au			List all autocommands
|:autocmd|	:au {event}		List all autocommands for {event}
|:autocmd|	:au {event} {pat}	List all autocommands for {event} with
					{pat}
|:autocmd|	:au {event} {pat} {cmd}	Enter new autocommands for {event}
					with {pat}
|:autocmd|	:au!			Remove all autocommands
|:autocmd|	:au! {event}		Remove all autocommands for {event}
|:autocmd|	:au! * {pat}		Remove all autocommands for {pat}
|:autocmd|	:au! {event} {pat}	Remove all autocommands for {event}
					with {pat}
|:autocmd|	:au! {event} {pat} {cmd}  Remove all autocommands for {event}
					with {pat} and enter new one
------------------------------------------------------------------------------

*Q_wi*		Multi-window commands

|CTRL-W_s|	CTRL-W s  or  :split	Split window into two parts
|:split_f|	:split {file}		Split window and edit {file} in one of
					   them
|:sfind|	:sf[ind] {file}		Split window, find {file} in 'path'
					   and edit it.
|CTRL-W_]|	CTRL-W ]		Split window and jump to tag under
					   cursor
|CTRL-W_f|	CTRL-W f		Split window and edit file name under
					   the cursor
|CTRL-W_CTRL-^| CTRL-W CTRL-^		Split window and edit alternate file
|CTRL-W_n|	CTRL-W n  or  :new	Create new empty window
|CTRL-W_q|	CTRL-W q  or  :q[uit]	Quit editing and close window
|CTRL-W_c|	CTRL-W c  or  :cl[ose]	Make buffer hidden and close window
|CTRL-W_o|	CTRL-W o  or  :on[ly]	Make current window only one on the
					   screen

|CTRL-W_j|	CTRL-W j		Move cursor to window below
|CTRL-W_k|	CTRL-W k		Move cursor to window above
|CTRL-W_CTRL-W|	CTRL-W CTRL-W		Move cursor to window below (wrap)
|CTRL-W_W|	CTRL-W W		Move cursor to window above (wrap)
|CTRL-W_t|	CTRL-W t		Move cursor to top window
|CTRL-W_b|	CTRL-W b		Move cursor to bottom window
|CTRL-W_p|	CTRL-W p		Move cursor to previous active window

|CTRL-W_r|	CTRL-W r		Rotate windows downwards
|CTRL-W_R|	CTRL-W R		Rotate windows upwards
|CTRL-W_x|	CTRL-W x		Exchange current window with next one

|CTRL-W_=|	CTRL-W =		Make all windows equal height
|CTRL-W_-|	CTRL-W -		Decrease current window height
|CTRL-W_+|	CTRL-W +		Increase current window height
|CTRL-W__|	CTRL-W _		Set current window height (default:
					   very high)
------------------------------------------------------------------------------

*Q_bu*		Buffer list commands

|:buffers|	:buffers  or  :files	list all known buffer and file names

|:ball|		:ball	  or  :sball	edit all args/buffers
|:unhide|	:unhide   or  :sunhide	edit all loaded buffers

|:badd|		:badd {fname}		add file name {fname} to the list
|:bunload|	:bunload[!] [N]		unload buffer [N] from memory
|:bdelete|	:bdelete[!] [N]		unload buffer [N] and delete it from
					   the buffer list

	      in current window   in new window	
|:buffer|     :[N]buffer [N]	  :[N]sbuffer [N]     to arg/buf N
|:bnext|      :[N]bnext [N]	  :[N]sbnext [N]      to Nth next arg/buf
|:bNext|      :[N]bNext [N]	  :[N]sbNext [N]      to Nth previous arg/buf
|:bprevious|  :[N]bprevious [N]   :[N]sbprevious [N]  to Nth previous arg/buf
|:bfirst|     :bfirst		  :sbfirst	      to first arg/buf
|:blast|      :blast		  :sblast	      to last arg/buf
|:bmodified|  :[N]bmod [N]	  :[N]sbmod [N]	      to Nth modified buf
------------------------------------------------------------------------------

*Q_sy*		Syntax Highlighting

|:syn-on|	:syntax on		start using syntax highlighting
|:syn-off|	:syntax off		stop using syntax highlighting

|:syn-keyword|	:syntax keyword {group-name} {keyword} ..
					add a syntax keyword item
|:syn-match|	:syntax match {group-name} {pattern} ...
					add syntax match item
|:syn-region|	:syntax region {group-name} {pattern} ...
					add syntax region item
|:syn-sync|	:syntax sync [ccomment | lines {N} | ...]
					tell syntax how to sync
|:syntax|	:syntax [list]		list current syntax items
|:syn-clear|	:syntax clear		clear all syntax info

|:highlight|	:highlight clear	clear all highlight info
|:highlight|	:highlight {group-name} {key}={arg} ..
					set highlighting for {group-name}

|:filetype|	:filetype on		switch on file type detection, without
					syntax highlighting
|:filetype|	:filetype plugin indent on
					switch on file type detection, with
					automatic indenting and settings
------------------------------------------------------------------------------

*Q_gu*		GUI commands

|:gui|		:gui			UNIX: start the GUI
|:gui|		:gui {fname} ..		idem, and edit {fname} ..

|:menu|		:menu			list all menus
|:menu|		:menu {mpath}		list menus starting with {mpath}
|:menu|		:menu {mpath} {rhs}	add menu {mpath}, giving {lhs}
|:menu|		:menu {pri} {mpath} {rhs}
					idem, with priorities {pri}
|:menu|		:menu ToolBar.{name} {rhs}
					add toolbar item, giving {lhs}
|:tmenu|	:tmenu {mpath} {text}	add tooltip to menu {mpath}
|:unmenu|	:unmenu {mpath}		remove menu {mpath}

------------------------------------------------------------------------------

*Q_fo*		Folding

|'foldmethod'|	set foldmethod=manual	manual folding
		set foldmethod=indent	folding by indent
		set foldmethod=expr	folding by 'foldexpr'
		set foldmethod=syntax	folding by syntax regions
		set foldmethod=marker	folding by 'foldmarkers'

|zf|		zf{motion}		operator: Define a fold manually
|:fold|		:{range}fold		define a fold for {range} lines
|zd|		zd			delete one fold under the cursor
|zD|		zD			delete all folds under the cursor

|zo|		zo			open one fold under the cursor
|zO|		zO			open all folds under the cursor
|zc|		zc			close one fold under the cursor
|zC|		zC			close all folds under the cursor

|zm|		zm			fold more: decrease 'foldlevel'
|zM|		zM			close all folds: make 'foldlevel' zero
|zr|		zr			reduce folding: increase 'foldlevel'
|zR|		zR			open all folds: make 'foldlevel' max.

|zn|		zn			fold none: reset 'foldenable'
|zN|		zN			fold normal set 'foldenable'
|zi|		zi			invert 'foldenable'

top - main help file