blob: 7175a5b182663263fb279ff6de628333af7d009a [file] [log] [blame]
Bram Moolenaareca15752006-03-10 21:35:45 +00001*quickref.txt* For Vim version 7.0aa. Last change: 2006 Mar 10
Bram Moolenaar071d4272004-06-13 20:20:40 +00002
3
4 VIM REFERENCE MANUAL by Bram Moolenaar
5
6 Quick reference guide
7
8 *quickref* *Contents*
9 tag subject tag subject ~
10|Q_ct| list of help files |Q_re| Repeating commands
11|Q_lr| motion: Left-right |Q_km| Key mapping
12|Q_ud| motion: Up-down |Q_ab| Abbreviations
13|Q_tm| motion: Text object |Q_op| Options
14|Q_pa| motion: Pattern searches |Q_ur| Undo/Redo commands
15|Q_ma| motion: Marks |Q_et| External commands
16|Q_vm| motion: Various |Q_qf| Quickfix commands
17|Q_ta| motion: Using tags |Q_vc| Various commands
18|Q_sc| Scrolling |Q_ce| Ex: Command-line editing
19|Q_in| insert: Inserting text |Q_ra| Ex: Ranges
20|Q_ai| insert: Keys |Q_ex| Ex: Special characters
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +000021|Q_ss| insert: Special keys |Q_st| Starting VIM
22|Q_di| insert: Digraphs |Q_ed| Editing a file
23|Q_si| insert: Special inserts |Q_fl| Using the argument list
24|Q_de| change: Deleting text |Q_wq| Writing and quitting
Bram Moolenaar071d4272004-06-13 20:20:40 +000025|Q_cm| change: Copying and moving |Q_ac| Automatic commands
26|Q_ch| change: Changing text |Q_wi| Multi-window commands
27|Q_co| change: Complex |Q_bu| Buffer list commands
28|Q_vi| Visual mode |Q_sy| Syntax highlighting
29|Q_to| Text objects |Q_gu| GUI commands
30 |Q_fo| Folding
31
32------------------------------------------------------------------------------
33N is used to indicate an optional count that can be given before the command.
34------------------------------------------------------------------------------
35*Q_lr* Left-right motions
36
37|h| N h left (also: CTRL-H, <BS>, or <Left> key)
38|l| N l right (also: <Space> or <Right> key)
39|0| 0 to first character in the line (also: <Home> key)
40|^| ^ to first non-blank character in the line
41|$| N $ to the last character in the line (N-1 lines lower)
42 (also: <End> key)
43|g0| N g0 to first character in screen line (differs from "0"
44 when lines wrap)
45|g^| N g^ to first non-blank character in screen line (differs
46 from "^" when lines wrap)
47|g$| N g$ to last character in screen line (differs from "$"
48 when lines wrap)
49|gm| N gm to middle of the screen line
50|bar| N | to column N (default: 1)
51|f| N f{char} to the Nth occurrence of {char} to the right
52|F| N F{char} to the Nth occurrence of {char} to the left
53|t| N t{char} till before the Nth occurrence of {char} to the right
54|T| N T{char} till before the Nth occurrence of {char} to the left
55|;| N ; repeat the last "f", "F", "t", or "T" N times
56|,| N , repeat the last "f", "F", "t", or "T" N times in
57 opposite direction
58------------------------------------------------------------------------------
59*Q_ud* Up-down motions
60
61|k| N k up N lines (also: CTRL-P and <Up>)
62|j| N j down N lines (also: CTRL-J, CTRL-N, <NL>, and <Down>)
63|-| N - up N lines, on the first non-blank character
64|+| N + down N lines, on the first non-blank character (also:
65 CTRL-M and <CR>)
66|_| N _ down N-1 lines, on the first non-blank character
67|G| N G goto line N (default: last line), on the first
68 non-blank character
69|gg| N gg goto line N (default: first line), on the first
70 non-blank character
71|N%| N % goto line N percentage down in the file. N must be
72 given, otherwise it is the |%| command.
73|gk| N gk up N screen lines (differs from "k" when line wraps)
74|gj| N gj down N screen lines (differs from "j" when line wraps)
75------------------------------------------------------------------------------
76*Q_tm* Text object motions
77
78|w| N w N words forward
79|W| N W N blank-separated |WORD|s forward
80|e| N e forward to the end of the Nth word
81|E| N E forward to the end of the Nth blank-separated |WORD|
82|b| N b N words backward
83|B| N B N blank-separated |WORD|s backward
84|ge| N ge backward to the end of the Nth word
85|gE| N gE backward to the end of the Nth blank-separated |WORD|
86
87|)| N ) N sentences forward
88|(| N ( N sentences backward
89|}| N } N paragraphs forward
90|{| N { N paragraphs backward
91|]]| N ]] N sections forward, at start of section
92|[[| N [[ N sections backward, at start of section
93|][| N ][ N sections forward, at end of section
94|[]| N [] N sections backward, at end of section
95|[(| N [( N times back to unclosed '('
96|[{| N [{ N times back to unclosed '{'
97|[m| N [m N times back to start of method (for Java)
98|[M| N [M N times back to end of method (for Java)
99|])| N ]) N times forward to unclosed ')'
100|]}| N ]} N times forward to unclosed '}'
101|]m| N ]m N times forward to start of method (for Java)
102|]M| N ]M N times forward to end of method (for Java)
103|[#| N [# N times back to unclosed "#if" or "#else"
104|]#| N ]# N times forward to unclosed "#else" or "#endif"
105|[star| N [* N times back to start of comment "/*"
106|]star| N ]* N times forward to end of comment "*/"
107------------------------------------------------------------------------------
108*Q_pa* Pattern searches
109
110|/| N /{pattern}[/[offset]]<CR>
111 search forward for the Nth occurrence of {pattern}
112|?| N ?{pattern}[?[offset]]<CR>
113 search backward for the Nth occurrence of {pattern}
114|/<CR>| N /<CR> repeat last search, in the forward direction
115|?<CR>| N ?<CR> repeat last search, in the backward direction
116|n| N n repeat last search
117|N| N N repeat last search, in opposite direction
118|star| N * search forward for the identifier under the cursor
119|#| N # search backward for the identifier under the cursor
120|gstar| N g* like "*", but also find partial matches
121|g#| N g# like "#", but also find partial matches
122|gd| gd goto local declaration of identifier under the cursor
123|gD| gD goto global declaration of identifier under the cursor
124
125|pattern| Special characters in search patterns
126
127 meaning magic nomagic ~
128 matches any single character . \.
129 matches start of line ^ ^
130 matches <EOL> $ $
131 matches start of word \< \<
132 matches end of word \> \>
133 matches a single char from the range [a-z] \[a-z]
134 matches a single char not in the range [^a-z] \[^a-z]
135 matches an identifier char \i \i
136 idem but excluding digits \I \I
137 matches a keyword character \k \k
138 idem but excluding digits \K \K
139 matches a file name character \f \f
140 idem but excluding digits \F \F
141 matches a printable character \p \p
142 idem but excluding digits \P \P
143 matches a white space character \s \s
144 matches a non-white space character \S \S
145
146 matches <Esc> \e \e
147 matches <Tab> \t \t
148 matches <CR> \r \r
149 matches <BS> \b \b
150
151 matches 0 or more of the preceding atom * \*
152 matches 1 or more of the preceding atom \+ \+
153 matches 0 or 1 of the preceding atom \= \=
154 matches 2 to 5 of the preceding atom \{2,5} \{2,5}
155 separates two alternatives \| \|
156 group a pattern into an atom \(\) \(\)
157
158|search-offset| Offsets allowed after search command
159
160 [num] [num] lines downwards, in column 1
161 +[num] [num] lines downwards, in column 1
162 -[num] [num] lines upwards, in column 1
163 e[+num] [num] characters to the right of the end of the match
164 e[-num] [num] characters to the left of the end of the match
165 s[+num] [num] characters to the right of the start of the match
166 s[-num] [num] characters to the left of the start of the match
167 b[+num] [num] identical to s[+num] above (mnemonic: begin)
168 b[-num] [num] identical to s[-num] above (mnemonic: begin)
169 ;{search-command} execute {search-command} next
170------------------------------------------------------------------------------
171*Q_ma* Marks and motions
172
173|m| m{a-zA-Z} mark current position with mark {a-zA-Z}
174|`a| `{a-z} go to mark {a-z} within current file
175|`A| `{A-Z} go to mark {A-Z} in any file
176|`0| `{0-9} go to the position where Vim was previously exited
177|``| `` go to the position before the last jump
178|`quote| `" go to the position when last editing this file
179|`[| `[ go to the start of the previously operated or put text
180|`]| `] go to the end of the previously operated or put text
181|`<| `< go to the start of the (previous) Visual area
182|`>| `> go to the end of the (previous) Visual area
183|`.| `. go to the position of the last change in this file
184|'| '{a-zA-Z0-9[]'"<>.}
185 same as `, but on the first non-blank in the line
186|:marks| :marks print the active marks
187|CTRL-O| N CTRL-O go to Nth older position in jump list
188|CTRL-I| N CTRL-I go to Nth newer position in jump list
189|:ju| :ju[mps] print the jump list
190------------------------------------------------------------------------------
191*Q_vm* Various motions
192
193|%| % find the next brace, bracket, comment, or "#if"/
194 "#else"/"#endif" in this line and go to its match
195|H| N H go to the Nth line in the window, on the first
196 non-blank
197|M| M go to the middle line in the window, on the first
198 non-blank
199|L| N L go to the Nth line from the bottom, on the first
200 non-blank
201
202|go| N go go to Nth byte in the buffer
203|:go| :[range]go[to] [off] go to [off] byte in the buffer
204------------------------------------------------------------------------------
205*Q_ta* Using tags
206
207|:ta| :ta[g][!] {tag} Jump to tag {tag}
208|:ta| :[count]ta[g][!] Jump to [count]'th newer tag in tag list
209|CTRL-]| CTRL-] Jump to the tag under cursor, unless changes
210 have been made
211|:ts| :ts[elect][!] [tag] List matching tags and select one to jump to
212|:tjump| :tj[ump][!] [tag] Jump to tag [tag] or select from list when
213 there are multiple matches
Bram Moolenaarb8a7b562006-02-01 21:47:16 +0000214|:ltag| :lt[ag][!] [tag] Jump to tag [tag] and add matching tags to the
215 location list.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000216
217|:tags| :tags Print tag list
218|CTRL-T| N CTRL-T Jump back from Nth older tag in tag list
219|:po| :[count]po[p][!] Jump back from [count]'th older tag in tag list
220|:tnext| :[count]tn[ext][!] Jump to [count]'th next matching tag
221|:tp| :[count]tp[revious][!] Jump to [count]'th previous matching tag
222|:tr| :[count]tr[ewind][!] Jump to [count]'th matching tag
223|:tl| :tl[ast][!] Jump to last matching tag
224
225|:ptag| :pt[ag] {tag} open a preview window to show tag {tag}
226|CTRL-W_}| CTRL-W } like CTRL-] but show tag in preview window
227|:pts| :pts[elect] like ":tselect" but show tag in preview window
228|:ptjump| :ptj[ump] like ":tjump" but show tag in preview window
229|:pclose| :pc[lose] close tag preview window
230|CTRL-W_z| CTRL-W z close tag preview window
231------------------------------------------------------------------------------
232*Q_sc* Scrolling
233
234|CTRL-E| N CTRL-E window N lines downwards (default: 1)
235|CTRL-D| N CTRL-D window N lines Downwards (default: 1/2 window)
236|CTRL-F| N CTRL-F window N pages Forwards (downwards)
237|CTRL-Y| N CTRL-Y window N lines upwards (default: 1)
238|CTRL-U| N CTRL-U window N lines Upwards (default: 1/2 window)
239|CTRL-B| N CTRL-B window N pages Backwards (upwards)
240|z<CR>| z<CR> or zt redraw, current line at top of window
241|z.| z. or zz redraw, current line at center of window
242|z-| z- or zb redraw, current line at bottom of window
243
244These only work when 'wrap' is off:
245|zh| N zh scroll screen N characters to the right
246|zl| N zl scroll screen N characters to the left
247|zH| N zH scroll screen half a screenwidth to the right
248|zL| N zL scroll screen half a screenwidth to the left
249------------------------------------------------------------------------------
250*Q_in* Inserting text
251
252|a| N a append text after the cursor (N times)
253|A| N A append text at the end of the line (N times)
254|i| N i insert text before the cursor (N times) (also: <Insert>)
255|I| N I insert text before the first non-blank in the line (N times)
256|gI| N gI insert text in column 1 (N times)
257|o| N o open a new line below the current line, append text (N times)
258|O| N O open a new line above the current line, append text (N times)
259|:startinsert| :star[tinsert][!] start Insert mode, append when [!] used
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000260|:startreplace| :startr[eplace][!] start Replace mode, at EOL when [!] used
Bram Moolenaar071d4272004-06-13 20:20:40 +0000261
262in Visual block mode:
263|v_b_I| I insert the same text in front of all the selected lines
264|v_b_A| A append the same text after all the selected lines
265------------------------------------------------------------------------------
266*Q_ai* Insert mode keys
267
268|insert-index| alphabetical index of Insert mode commands
269
270leaving Insert mode:
271|i_<Esc>| <Esc> end Insert mode, back to Normal mode
272|i_CTRL-C| CTRL-C like <Esc>, but do not use an abbreviation
273|i_CTRL-O| CTRL-O {command} execute {command} and return to Insert mode
274
275moving around:
276|i_<Up>| cursor keys move cursor left/right/up/down
277|i_<S-Left>| shift-left/right one word left/right
278|i_<S-Up>| shift-up/down one screenful backward/forward
279|i_<End>| <End> cursor after last character in the line
280|i_<Home>| <Home> cursor to first character in the line
281------------------------------------------------------------------------------
282*Q_ss* Special keys in Insert mode
283
284|i_CTRL-V| CTRL-V {char}.. insert character literally, or enter decimal
285 byte value
286|i_<NL>| <NL> or <CR> or CTRL-M or CTRL-J
287 begin new line
288|i_CTRL-E| CTRL-E insert the character from below the cursor
289|i_CTRL-Y| CTRL-Y insert the character from above the cursor
290
291|i_CTRL-A| CTRL-A insert previously inserted text
292|i_CTRL-@| CTRL-@ insert previously inserted text and stop
293 Insert mode
294|i_CTRL-R| CTRL-R {0-9a-z%#:.-="} insert the contents of a register
295
296|i_CTRL-N| CTRL-N insert next match of identifier before the
297 cursor
298|i_CTRL-P| CTRL-P insert previous match of identifier before
299 the cursor
300|i_CTRL-X| CTRL-X ... complete the word before the cursor in
301 various ways
302
303|i_<BS>| <BS> or CTRL-H delete the character before the cursor
304|i_<Del>| <Del> delete the character under the cursor
305|i_CTRL-W| CTRL-W delete word before the cursor
306|i_CTRL-U| CTRL-U delete all entered characters in the current
307 line
308|i_CTRL-T| CTRL-T insert one shiftwidth of indent in front of
309 the current line
310|i_CTRL-D| CTRL-D delete one shiftwidth of indent in front of
311 the current line
312|i_0_CTRL-D| 0 CTRL-D delete all indent in the current line
313|i_^_CTRL-D| ^ CTRL-D delete all indent in the current line,
314 restore indent in next line
315------------------------------------------------------------------------------
316*Q_di* Digraphs
317
318|:dig| :dig[raphs] show current list of digraphs
319|:dig| :dig[raphs] {char1}{char2} {number} ...
320 add digraph(s) to the list
321
322In Insert or Command-line mode:
323|i_CTRL-K| CTRL-K {char1} {char2}
324 enter digraph
325|i_digraph| {char1} <BS> {char2}
326 enter digraph if 'digraph' option set
327------------------------------------------------------------------------------
328*Q_si* Special inserts
329
330|:r| :r [file] insert the contents of [file] below the cursor
331|:r!| :r! {command} insert the standard output of {command} below the
332 cursor
333------------------------------------------------------------------------------
334*Q_de* Deleting text
335
336|x| N x delete N characters under and after the cursor
337|<Del>| N <Del> delete N characters under and after the cursor
338|X| N X delete N characters before the cursor
339|d| N d{motion} delete the text that is moved over with {motion}
340|v_d| {visual}d delete the highlighted text
341|dd| N dd delete N lines
342|D| N D delete to the end of the line (and N-1 more lines)
343|J| N J join N-1 lines (delete <EOL>s)
344|v_J| {visual}J join the highlighted lines
345|gJ| N gJ like "J", but without inserting spaces
346|v_gJ| {visual}gJ like "{visual}J", but without inserting spaces
347|:d| :[range]d [x] delete [range] lines [into register x]
348------------------------------------------------------------------------------
349*Q_cm* Copying and moving text
350
351|quote| "{char} use register {char} for the next delete, yank, or put
352|:reg| :reg show the contents of all registers
353|:reg| :reg {arg} show the contents of registers mentioned in {arg}
354|y| N y{motion} yank the text moved over with {motion} into a register
355|v_y| {visual}y yank the highlighted text into a register
356|yy| N yy yank N lines into a register
357|Y| N Y yank N lines into a register
358|p| N p put a register after the cursor position (N times)
359|P| N P put a register before the cursor position (N times)
360|]p| N ]p like p, but adjust indent to current line
361|[p| N [p like P, but adjust indent to current line
362|gp| N gp like p, but leave cursor after the new text
363|gP| N gP like P, but leave cursor after the new text
364------------------------------------------------------------------------------
365*Q_ch* Changing text
366
367|r| N r{char} replace N characters with {char}
368|gr| N gr{char} replace N characters without affecting layout
369|R| N R enter Replace mode (repeat the entered text N times)
370|gR| N gR enter virtual Replace mode: Like Replace mode but
371 without affecting layout
372|v_b_r| {visual}r{char}
373 in Visual block mode: Replace each char of the
374 selected text with {char}
375
376 (change = delete text and enter Insert mode)
377|c| N c{motion} change the text that is moved over with {motion}
378|v_c| {visual}c change the highlighted text
379|cc| N cc change N lines
380|S| N S change N lines
381|C| N C change to the end of the line (and N-1 more lines)
382|s| N s change N characters
383|v_b_c| {visual}c in Visual block mode: Change each of the selected
384 lines with the entered text
385|v_b_C| {visual}C in Visual block mode: Change each of the selected
386 lines until end-of-line with the entered text
387
388|~| N ~ switch case for N characters and advance cursor
389|v_~| {visual}~ switch case for highlighted text
390|v_u| {visual}u make highlighted text lowercase
391|v_U| {visual}U make highlighted text uppercase
392|g~| g~{motion} switch case for the text that is moved over with
393 {motion}
394|gu| gu{motion} make the text that is moved over with {motion}
395 lowercase
396|gU| gU{motion} make the text that is moved over with {motion}
397 uppercase
398|v_g?| {visual}g? perform rot13 encoding on highlighted text
399|g?| g?{motion} perform rot13 encoding on the text that is moved over
400 with {motion}
401
402|CTRL-A| N CTRL-A add N to the number at or after the cursor
403|CTRL-X| N CTRL-X subtract N from the number at or after the cursor
404
405|<| N <{motion} move the lines that are moved over with {motion} one
406 shiftwidth left
407|<<| N << move N lines one shiftwidth left
408|>| N >{motion} move the lines that are moved over with {motion} one
409 shiftwidth right
410|>>| N >> move N lines one shiftwidth right
411|gq| N gq{motion} format the lines that are moved over with {motion} to
412 'textwidth' length
413|:ce| :[range]ce[nter] [width]
414 center the lines in [range]
415|:le| :[range]le[ft] [indent]
416 left-align the lines in [range] (with [indent])
417|:ri| :[range]ri[ght] [width]
418 right-align the lines in [range]
419------------------------------------------------------------------------------
420*Q_co* Complex changes
421
422|!| N !{motion}{command}<CR>
423 filter the lines that are moved over through {command}
424|!!| N !!{command}<CR>
425 filter N lines through {command}
426|v_!| {visual}!{command}<CR>
427 filter the highlighted lines through {command}
428|:range!| :[range]! {command}<CR>
429 filter [range] lines through {command}
430|=| N ={motion}
431 filter the lines that are moved over through 'equalprg'
432|==| N == filter N lines through 'equalprg'
433|v_=| {visual}=
434 filter the highlighted lines through 'equalprg'
435|:s| :[range]s[ubstitute]/{pattern}/{string}/[g][c]
436 substitute {pattern} by {string} in [range] lines;
437 with [g], replace all occurrences of {pattern};
438 with [c], confirm each replacement
439|:s| :[range]s[ubstitute] [g][c]
440 repeat previous ":s" with new range and options
441|&| & Repeat previous ":s" on current line without options
442|:ret| :[range]ret[ab][!] [tabstop]
443 set 'tabstop' to new value and adjust white space
444 accordingly
445------------------------------------------------------------------------------
446*Q_vi* Visual mode
447
448|visual-index| list of Visual mode commands.
449
450|v| v start highlighting characters } move cursor and use
451|V| V start highlighting linewise } operator to affect
452|CTRL-V| CTRL-V start highlighting blockwise } highlighted text
453|v_o| o exchange cursor position with start of highlighting
454|gv| gv start highlighting on previous visual area
455|v_v| v highlight characters or stop highlighting
456|v_V| V highlight linewise or stop highlighting
457|v_CTRL-V| CTRL-V highlight blockwise or stop highlighting
458------------------------------------------------------------------------------
459*Q_to* Text objects (only in Visual mode or after an operator)
460
461|v_aw| N aw Select "a word"
462|v_iw| N iw Select "inner word"
463|v_aW| N aW Select "a |WORD|"
464|v_iW| N iW Select "inner |WORD|"
465|v_as| N as Select "a sentence"
466|v_is| N is Select "inner sentence"
467|v_ap| N ap Select "a paragraph"
468|v_ip| N ip Select "inner paragraph"
469|v_ab| N ab Select "a block" (from "[(" to "])")
470|v_ib| N ib Select "inner block" (from "[(" to "])")
471|v_aB| N aB Select "a Block" (from "[{" to "]}")
472|v_iB| N iB Select "inner Block" (from "[{" to "]}")
473------------------------------------------------------------------------------
474*Q_re* Repeating commands
475
476|.| N . repeat last change (with count replaced with N)
477|q| q{a-z} record typed characters into register {a-z}
478|q| q{A-Z} record typed characters, appended to register {a-z}
479|q| q stop recording
480|@| N @{a-z} execute the contents of register {a-z} (N times)
481|@@| N @@ repeat previous @{a-z} (N times)
482|:@| :@{a-z} execute the contents of register {a-z} as an Ex
483 command
484|:@@| :@@ repeat previous :@{a-z}
485|:g| :[range]g[lobal]/{pattern}/[cmd]
486 Execute Ex command [cmd] (default: ":p") on the lines
487 within [range] where {pattern} matches.
488|:g| :[range]g[lobal]!/{pattern}/[cmd]
489 Execute Ex command [cmd] (default: ":p") on the lines
490 within [range] where {pattern} does NOT match.
491|:so| :so[urce] {file}
492 Read Ex commands from {file}.
493|:so| :so[urce]! {file}
494 Read Vim commands from {file}.
495|:sl| :sl[eep] [sec]
496 don't do anything for [sec] seconds
497|gs| N gs Goto Sleep for N seconds
498------------------------------------------------------------------------------
499*Q_km* Key mapping
500
501|:map| :ma[p] {lhs} {rhs} Map {lhs} to {rhs} in Normal and Visual
502 mode.
503|:map!| :ma[p]! {lhs} {rhs} Map {lhs} to {rhs} in Insert and Command-line
504 mode.
505|:noremap| :no[remap][!] {lhs} {rhs}
506 Same as ":map", no remapping for this {rhs}
507|:unmap| :unm[ap] {lhs} Remove the mapping of {lhs} for Normal and
508 Visual mode.
509|:unmap!| :unm[ap]! {lhs} Remove the mapping of {lhs} for Insert and
510 Command-line mode.
511|:map_l| :ma[p] [lhs] List mappings (starting with [lhs]) for
512 Normal and Visual mode.
513|:map_l!| :ma[p]! [lhs] List mappings (starting with [lhs]) for
514 Insert and Command-line mode.
515|:cmap| :cmap/:cunmap/:cnoremap
516 like ":map!"/":unmap!"/":noremap!" but for
517 Command-line mode only
518|:imap| :imap/:iunmap/:inoremap
519 like ":map!"/":unmap!"/":noremap!" but for
520 Insert mode only
521|:nmap| :nmap/:nunmap/:nnoremap
522 like ":map"/":unmap"/":noremap" but for
523 Normal mode only
524|:vmap| :vmap/:vunmap/:vnoremap
525 like ":map"/":unmap"/":noremap" but for
526 Visual mode only
527|:omap| :omap/:ounmap/:onoremap
528 like ":map"/":unmap"/":noremap" but only for
529 when an operator is pending
530|:mapc| :mapc[lear] remove mappings for Normal and Visual mode
531|:mapc| :mapc[lear]! remove mappings for Insert and Cmdline mode
532|:imapc| :imapc[lear] remove mappings for Insert mode
533|:vmapc| :vmapc[lear] remove mappings for Visual mode
534|:omapc| :omapc[lear] remove mappings for Operator-pending mode
535|:nmapc| :nmapc[lear] remove mappings for Normal mode
536|:cmapc| :cmapc[lear] remove mappings for Cmdline mode
537|:mkexrc| :mk[exrc][!] [file] write current mappings, abbreviations, and
538 settings to [file] (default: ".exrc";
539 use ! to overwrite)
540|:mkvimrc| :mkv[imrc][!] [file]
541 same as ":mkexrc", but with default ".vimrc"
542|:mksession| :mks[ession][!] [file]
543 like ":mkvimrc", but store current files,
544 windows, etc. too, to be able to continue
545 this session later.
546------------------------------------------------------------------------------
547*Q_ab* Abbreviations
548
549|:abbreviate| :ab[breviate] {lhs} {rhs} add abbreviation for {lhs} to {rhs}
550|:abbreviate| :ab[breviate] {lhs} show abbr's that start with {lhs}
551|:abbreviate| :ab[breviate] show all abbreviations
552|:unabbreviate| :una[bbreviate] {lhs} remove abbreviation for {lhs}
553|:noreabbrev| :norea[bbrev] [lhs] [rhs] like ":ab", but don't remap [rhs]
554|:iabbrev| :iab/:iunab/:inoreab like ":ab", but only for Insert mode
555|:cabbrev| :cab/:cunab/:cnoreab like ":ab", but only for
556 Command-line mode
557|:abclear| :abc[lear] remove all abbreviations
558|:cabclear| :cabc[lear] remove all abbr's for Cmdline mode
559|:iabclear| :iabc[lear] remove all abbr's for Insert mode
560------------------------------------------------------------------------------
561*Q_op* Options
562
563|:set| :se[t] Show all modified options.
564|:set| :se[t] all Show all non-termcap options.
565|:set| :se[t] termcap Show all termcap options.
566|:set| :se[t] {option} Set boolean option (switch it on),
567 show string or number option.
568|:set| :se[t] no{option} Reset boolean option (switch it off).
569|:set| :se[t] inv{option} invert boolean option.
570|:set| :se[t] {option}={value} Set string/number option to {value}.
571|:set| :se[t] {option}+={value} append {value} to string option, add
572 {value} to number option
573|:set| :se[t] {option}-={value} remove {value} to string option,
574 subtract {value} from number option
575|:set| :se[t] {option}? Show value of {option}.
576|:set| :se[t] {option}& Reset {option} to its default value.
577
578|:setlocal| :setl[ocal] like ":set" but set the local value
579 for options that have one
580|:setglobal| :setg[lobal] like ":set" but set the global value
581 of a local option
582
583|:fix| :fix[del] Set value of 't_kD' according to
584 value of 't_kb'.
585|:options| :opt[ions] Open a new window to view and set
586 options, grouped by functionality,
587 a one line explanation and links to
588 the help.
589
590Short explanation of each option: *option-list*
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000591'aleph' 'al' ASCII code of the letter Aleph (Hebrew)
592'allowrevins' 'ari' allow CTRL-_ in Insert and Command-line mode
593'altkeymap' 'akm' for default second language (Farsi/Hebrew)
594'ambiwidth' 'ambw' what to do with Unicode chars of ambiguous width
595'antialias' 'anti' Mac OS X: use smooth, antialiased fonts
596'autochdir' 'acd' change directory to the file in the current window
597'arabic' 'arab' for Arabic as a default second language
598'arabicshape' 'arshape' do shaping for Arabic characters
599'autoindent' 'ai' take indent for new line from previous line
600'autoread' 'ar' autom. read file when changed outside of Vim
601'autowrite' 'aw' automatically write file if changed
602'autowriteall' 'awa' as 'autowrite', but works with more commands
603'background' 'bg' "dark" or "light", used for highlight colors
604'backspace' 'bs' how backspace works at start of line
605'backup' 'bk' keep backup file after overwriting a file
606'backupcopy' 'bkc' make backup as a copy, don't rename the file
607'backupdir' 'bdir' list of directories for the backup file
608'backupext' 'bex' extension used for the backup file
609'backupskip' 'bsk' no backup for files that match these patterns
610'balloondelay' 'bdlay' delay in mS before a balloon may pop up
611'ballooneval' 'beval' switch on balloon evaluation
612'balloonexpr' 'bexpr' expression to show in balloon
613'binary' 'bin' read/write/edit file in binary mode
614'bioskey' 'biosk' MS-DOS: use bios calls for input characters
615'bomb' prepend a Byte Order Mark to the file
616'breakat' 'brk' characters that may cause a line break
617'browsedir' 'bsdir' which directory to start browsing in
618'bufhidden' 'bh' what to do when buffer is no longer in window
619'buflisted' 'bl' whether the buffer shows up in the buffer list
620'buftype' 'bt' special type of buffer
621'casemap' 'cmp' specifies how case of letters is changed
622'cdpath' 'cd' list of directories searched with ":cd"
623'cedit' key used to open the command-line window
624'charconvert' 'ccv' expression for character encoding conversion
625'cindent' 'cin' do C program indenting
626'cinkeys' 'cink' keys that trigger indent when 'cindent' is set
627'cinoptions' 'cino' how to do indenting when 'cindent' is set
628'cinwords' 'cinw' words where 'si' and 'cin' add an indent
629'clipboard' 'cb' use the clipboard as the unnamed register
630'cmdheight' 'ch' number of lines to use for the command-line
631'cmdwinheight' 'cwh' height of the command-line window
632'columns' 'co' number of columns in the display
633'comments' 'com' patterns that can start a comment line
634'commentstring' 'cms' template for comments; used for fold marker
635'compatible' 'cp' behave Vi-compatible as much as possible
636'complete' 'cpt' specify how Insert mode completion works
637'completefunc' 'cfu' function to be used for Insert mode completion
638'completeopt' 'cot' options for Insert mode completion
639'confirm' 'cf' ask what to do about unsaved/read-only files
640'conskey' 'consk' get keys directly from console (MS-DOS only)
641'copyindent' 'ci' make 'autoindent' use existing indent structure
642'cpoptions' 'cpo' flags for Vi-compatible behavior
643'cscopepathcomp' 'cspc' how many components of the path to show
644'cscopeprg' 'csprg' command to execute cscope
645'cscopequickfix' 'csqf' use quickfix window for cscope results
646'cscopetag' 'cst' use cscope for tag commands
647'cscopetagorder' 'csto' determines ":cstag" search order
648'cscopeverbose' 'csverb' give messages when adding a cscope database
649'debug' set to "msg" to see all error messages
650'define' 'def' pattern to be used to find a macro definition
651'delcombine' 'deco' delete combining characters on their own
652'dictionary' 'dict' list of file names used for keyword completion
653'diff' use diff mode for the current window
654'diffexpr' 'dex' expression used to obtain a diff file
655'diffopt' 'dip' options for using diff mode
656'digraph' 'dg' enable the entering of digraphs in Insert mode
657'directory' 'dir' list of directory names for the swap file
658'display' 'dy' list of flags for how to display text
659'eadirection' 'ead' in which direction 'equalalways' works
660'edcompatible' 'ed' toggle flags of ":substitute" command
661'encoding' 'enc' encoding used internally
662'endofline' 'eol' write <EOL> for last line in file
663'equalalways' 'ea' windows are automatically made the same size
664'equalprg' 'ep' external program to use for "=" command
665'errorbells' 'eb' ring the bell for error messages
666'errorfile' 'ef' name of the errorfile for the QuickFix mode
667'errorformat' 'efm' description of the lines in the error file
668'esckeys' 'ek' recognize function keys in Insert mode
669'eventignore' 'ei' autocommand events that are ignored
670'expandtab' 'et' use spaces when <Tab> is inserted
671'exrc' 'ex' read .vimrc and .exrc in the current directory
672'fileencoding' 'fenc' file encoding for multi-byte text
673'fileencodings' 'fencs' automatically detected character encodings
674'fileformat' 'ff' file format used for file I/O
675'fileformats' 'ffs' automatically detected values for 'fileformat'
676'filetype' 'ft' type of file, used for autocommands
677'fillchars' 'fcs' characters to use for displaying special items
678'fkmap' 'fk' Farsi keyboard mapping
679'foldclose' 'fcl' close a fold when the cursor leaves it
680'foldcolumn' 'fdc' width of the column used to indicate folds
681'foldenable' 'fen' set to display all folds open
682'foldexpr' 'fde' expression used when 'foldmethod' is "expr"
683'foldignore' 'fdi' ignore lines when 'foldmethod' is "indent"
684'foldlevel' 'fdl' close folds with a level higher than this
685'foldlevelstart' 'fdls' 'foldlevel' when starting to edit a file
686'foldmarker' 'fmr' markers used when 'foldmethod' is "marker"
687'foldmethod' 'fdm' folding type
688'foldminlines' 'fml' minimum number of lines for a fold to be closed
689'foldnestmax' 'fdn' maximum fold depth
690'foldopen' 'fdo' for which commands a fold will be opened
691'foldtext' 'fdt' expression used to display for a closed fold
692'formatlistpat' 'flp' pattern used to recognize a list header
693'formatoptions' 'fo' how automatic formatting is to be done
694'formatprg' 'fp' name of external program used with "gq" command
695'formatexpr' 'fex' expression used with "gq" command
696'fsync' 'fs' whether to invoke fsync() after file write
697'gdefault' 'gd' the ":substitute" flag 'g' is default on
698'grepformat' 'gfm' format of 'grepprg' output
699'grepprg' 'gp' program to use for ":grep"
700'guicursor' 'gcr' GUI: settings for cursor shape and blinking
701'guifont' 'gfn' GUI: Name(s) of font(s) to be used
702'guifontset' 'gfs' GUI: Names of multi-byte fonts to be used
703'guifontwide' 'gfw' list of font names for double-wide characters
704'guiheadroom' 'ghr' GUI: pixels room for window decorations
705'guioptions' 'go' GUI: Which components and options are used
706'guipty' GUI: try to use a pseudo-tty for ":!" commands
707'guitablabel' 'gtl' GUI: custom label for a tab page
708'helpfile' 'hf' full path name of the main help file
709'helpheight' 'hh' minimum height of a new help window
710'helplang' 'hlg' preferred help languages
711'hidden' 'hid' don't unload buffer when it is |abandon|ed
712'highlight' 'hl' sets highlighting mode for various occasions
713'hlsearch' 'hls' highlight matches with last search pattern
714'history' 'hi' number of command-lines that are remembered
715'hkmap' 'hk' Hebrew keyboard mapping
716'hkmapp' 'hkp' phonetic Hebrew keyboard mapping
717'icon' let Vim set the text of the window icon
718'iconstring' string to use for the Vim icon text
719'ignorecase' 'ic' ignore case in search patterns
720'imactivatekey' 'imak' key that activates the X input method
721'imcmdline' 'imc' use IM when starting to edit a command line
722'imdisable' 'imd' do not use the IM in any mode
723'iminsert' 'imi' use :lmap or IM in Insert mode
724'imsearch' 'ims' use :lmap or IM when typing a search pattern
725'include' 'inc' pattern to be used to find an include file
726'includeexpr' 'inex' expression used to process an include line
727'incsearch' 'is' highlight match while typing search pattern
728'indentexpr' 'inde' expression used to obtain the indent of a line
729'indentkeys' 'indk' keys that trigger indenting with 'indentexpr'
730'infercase' 'inf' adjust case of match for keyword completion
731'insertmode' 'im' start the edit of a file in Insert mode
732'isfname' 'isf' characters included in file names and pathnames
733'isident' 'isi' characters included in identifiers
734'iskeyword' 'isk' characters included in keywords
735'isprint' 'isp' printable characters
736'joinspaces' 'js' two spaces after a period with a join command
737'key' encryption key
738'keymap' 'kmp' name of a keyboard mapping
739'keymodel' 'km' enable starting/stopping selection with keys
740'keywordprg' 'kp' program to use for the "K" command
741'langmap' 'lmap' alphabetic characters for other language mode
742'langmenu' 'lm' language to be used for the menus
743'laststatus' 'ls' tells when last window has status lines
744'lazyredraw' 'lz' don't redraw while executing macros
745'linebreak' 'lbr' wrap long lines at a blank
746'lines' number of lines in the display
747'linespace' 'lsp' number of pixel lines to use between characters
748'lisp' automatic indenting for Lisp
749'lispwords' 'lw' words that change how lisp indenting works
750'list' show <Tab> and <EOL>
751'listchars' 'lcs' characters for displaying in list mode
752'loadplugins' 'lpl' load plugin scripts when starting up
753'magic' changes special characters in search patterns
754'makeef' 'mef' name of the errorfile for ":make"
755'makeprg' 'mp' program to use for the ":make" command
756'matchpairs' 'mps' pairs of characters that "%" can match
757'matchtime' 'mat' tenths of a second to show matching paren
Bram Moolenaareca15752006-03-10 21:35:45 +0000758'maxcombine' 'mco' maximum nr of combining characters displayed
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000759'maxfuncdepth' 'mfd' maximum recursive depth for user functions
760'maxmapdepth' 'mmd' maximum recursive depth for mapping
761'maxmem' 'mm' maximum memory (in Kbyte) used for one buffer
762'maxmempattern' 'mmp' maximum memory (in Kbyte) used for pattern search
763'maxmemtot' 'mmt' maximum memory (in Kbyte) used for all buffers
764'menuitems' 'mis' maximum number of items in a menu
765'mkspellmem' 'msm' memory used before |:mkspell| compresses the tree
766'modeline' 'ml' recognize modelines at start or end of file
767'modelines' 'mls' number of lines checked for modelines
768'modifiable' 'ma' changes to the text are not possible
769'modified' 'mod' buffer has been modified
770'more' pause listings when the whole screen is filled
771'mouse' enable the use of mouse clicks
772'mousefocus' 'mousef' keyboard focus follows the mouse
773'mousehide' 'mh' hide mouse pointer while typing
774'mousemodel' 'mousem' changes meaning of mouse buttons
775'mouseshape' 'mouses' shape of the mouse pointer in different modes
776'mousetime' 'mouset' max time between mouse double-click
777'mzquantum' 'mzq' the interval between polls for MzScheme threads
778'nrformats' 'nf' number formats recognized for CTRL-A command
779'number' 'nu' print the line number in front of each line
780'numberwidth' 'nuw' number of columns used for the line number
781'omnifunc' 'ofu' function for filetype-specific completion
782'operatorfunc' 'opfunc' funtion to be called for |g@| operator
783'osfiletype' 'oft' operating system-specific filetype information
784'paragraphs' 'para' nroff macros that separate paragraphs
785'paste' allow pasting text
786'pastetoggle' 'pt' key code that causes 'paste' to toggle
787'patchexpr' 'pex' expression used to patch a file
788'patchmode' 'pm' keep the oldest version of a file
789'path' 'pa' list of directories searched with "gf" et.al.
790'preserveindent' 'pi' preserve the indent structure when reindenting
791'previewheight' 'pvh' height of the preview window
792'previewwindow' 'pvw' identifies the preview window
793'printdevice' 'pdev' name of the printer to be used for :hardcopy
794'printencoding' 'penc' encoding to be used for printing
795'printexpr' 'pexpr' expression used to print PostScript for :hardcopy
796'printfont' 'pfn' name of the font to be used for :hardcopy
797'printheader' 'pheader' format of the header used for :hardcopy
798'printmbcharset' 'pmbcs' CJK character set to be used for :hardcopy
799'printmbfont' 'pmbfn' font names to be used for CJK output of :hardcopy
800'printoptions' 'popt' controls the format of :hardcopy output
801'quoteescape' 'qe' escape characters used in a string
802'readonly' 'ro' disallow writing the buffer
803'remap' allow mappings to work recursively
804'report' threshold for reporting nr. of lines changed
805'restorescreen' 'rs' Win32: restore screen when exiting
806'revins' 'ri' inserting characters will work backwards
807'rightleft' 'rl' window is right-to-left oriented
808'rightleftcmd' 'rlc' commands for which editing works right-to-left
809'ruler' 'ru' show cursor line and column in the status line
810'rulerformat' 'ruf' custom format for the ruler
811'runtimepath' 'rtp' list of directories used for runtime files
812'scroll' 'scr' lines to scroll with CTRL-U and CTRL-D
813'scrollbind' 'scb' scroll in window as other windows scroll
814'scrolljump' 'sj' minimum number of lines to scroll
815'scrolloff' 'so' minimum nr. of lines above and below cursor
816'scrollopt' 'sbo' how 'scrollbind' should behave
817'sections' 'sect' nroff macros that separate sections
818'secure' secure mode for reading .vimrc in current dir
819'selection' 'sel' what type of selection to use
820'selectmode' 'slm' when to use Select mode instead of Visual mode
821'sessionoptions' 'ssop' options for |:mksession|
822'shell' 'sh' name of shell to use for external commands
823'shellcmdflag' 'shcf' flag to shell to execute one command
824'shellpipe' 'sp' string to put output of ":make" in error file
825'shellquote' 'shq' quote character(s) for around shell command
826'shellredir' 'srr' string to put output of filter in a temp file
827'shellslash' 'ssl' use forward slash for shell file names
828'shelltemp' 'stmp' whether to use a temp file for shell commands
829'shelltype' 'st' Amiga: influences how to use a shell
830'shellxquote' 'sxq' like 'shellquote', but include redirection
831'shiftround' 'sr' round indent to multiple of shiftwidth
832'shiftwidth' 'sw' number of spaces to use for (auto)indent step
833'shortmess' 'shm' list of flags, reduce length of messages
834'shortname' 'sn' non-MS-DOS: Filenames assumed to be 8.3 chars
835'showbreak' 'sbr' string to use at the start of wrapped lines
836'showcmd' 'sc' show (partial) command in status line
837'showfulltag' 'sft' show full tag pattern when completing tag
838'showmatch' 'sm' briefly jump to matching bracket if insert one
839'showmode' 'smd' message on status line to show current mode
840'showtabline' 'stal' tells when the tab pages line is displayed
841'sidescroll' 'ss' minimum number of columns to scroll horizontal
842'sidescrolloff' 'siso' min. nr. of columns to left and right of cursor
843'smartcase' 'scs' no ignore case when pattern has uppercase
844'smartindent' 'si' smart autoindenting for C programs
845'smarttab' 'sta' use 'shiftwidth' when inserting <Tab>
846'softtabstop' 'sts' number of spaces that <Tab> uses while editing
847'spell' enable spell checking
848'spellcapcheck' 'spc' pattern to locate end of a sentence
849'spellfile' 'spf' files where |zg| and |zw| store words
850'spelllang' 'spl' language(s) to do spell checking for
851'spellsuggest' 'sps' method(s) used to suggest spelling corrections
852'splitbelow' 'sb' new window from split is below the current one
853'splitright' 'spr' new window is put right of the current one
854'startofline' 'sol' commands move cursor to first blank in line
855'statusline' 'stl' custom format for the status line
856'suffixes' 'su' suffixes that are ignored with multiple match
857'suffixesadd' 'sua' suffixes added when searching for a file
858'swapfile' 'swf' whether to use a swapfile for a buffer
859'swapsync' 'sws' how to sync the swap file
860'switchbuf' 'swb' sets behavior when switching to another buffer
861'synmaxcol' 'smc' maximum column to find syntax items
862'syntax' 'syn' syntax to be loaded for current buffer
863'tabstop' 'ts' number of spaces that <Tab> in file uses
864'tabline' 'tal' custom format for the console tab pages line
865'tabpagemax' 'tpm' maximum number of tab pages for |-p| and "tab all"
866'tagbsearch' 'tbs' use binary searching in tags files
867'taglength' 'tl' number of significant characters for a tag
868'tagrelative' 'tr' file names in tag file are relative
869'tags' 'tag' list of file names used by the tag command
870'tagstack' 'tgst' push tags onto the tag stack
871'term' name of the terminal
872'termbidi' 'tbidi' terminal takes care of bi-directionality
873'termencoding' 'tenc' character encoding used by the terminal
874'terse' shorten some messages
875'textauto' 'ta' obsolete, use 'fileformats'
876'textmode' 'tx' obsolete, use 'fileformat'
877'textwidth' 'tw' maximum width of text that is being inserted
878'thesaurus' 'tsr' list of thesaurus files for keyword completion
879'tildeop' 'top' tilde command "~" behaves like an operator
880'timeout' 'to' time out on mappings and key codes
881'timeoutlen' 'tm' time out time in milliseconds
882'title' let Vim set the title of the window
883'titlelen' percentage of 'columns' used for window title
884'titleold' old title, restored when exiting
885'titlestring' string to use for the Vim window title
886'toolbar' 'tb' GUI: which items to show in the toolbar
887'toolbariconsize' 'tbis' size of the toolbar icons (for GTK 2 only)
888'ttimeout' time out on mappings
889'ttimeoutlen' 'ttm' time out time for key codes in milliseconds
890'ttybuiltin' 'tbi' use built-in termcap before external termcap
891'ttyfast' 'tf' indicates a fast terminal connection
892'ttymouse' 'ttym' type of mouse codes generated
893'ttyscroll' 'tsl' maximum number of lines for a scroll
894'ttytype' 'tty' alias for 'term'
895'undolevels' 'ul' maximum number of changes that can be undone
896'updatecount' 'uc' after this many characters flush swap file
897'updatetime' 'ut' after this many milliseconds flush swap file
898'verbose' 'vbs' give informative messages
899'verbosefile' 'vfile' file to write messages in
900'viewdir' 'vdir' directory where to store files with :mkview
901'viewoptions' 'vop' specifies what to save for :mkview
902'viminfo' 'vi' use .viminfo file upon startup and exiting
903'virtualedit' 've' when to use virtual editing
904'visualbell' 'vb' use visual bell instead of beeping
905'warn' warn for shell command when buffer was changed
906'weirdinvert' 'wi' for terminals that have weird inversion method
907'whichwrap' 'ww' allow specified keys to cross line boundaries
908'wildchar' 'wc' command-line character for wildcard expansion
909'wildcharm' 'wcm' like 'wildchar' but also works when mapped
910'wildignore' 'wig' files matching these patterns are not completed
911'wildmenu' 'wmnu' use menu for command line completion
912'wildmode' 'wim' mode for 'wildchar' command-line expansion
913'wildoptions' 'wop' specifies how command line completion is done.
914'winaltkeys' 'wak' when the windows system handles ALT keys
915'winheight' 'wh' minimum number of lines for the current window
916'winfixheight' 'wfh' keep window height when opening/closing windows
917'winminheight' 'wmh' minimum number of lines for any window
918'winminwidth' 'wmw' minimal number of columns for any window
919'winwidth' 'wiw' minimal number of columns for current window
920'wrap' long lines wrap and continue on the next line
921'wrapmargin' 'wm' chars from the right where wrapping starts
922'wrapscan' 'ws' searches wrap around the end of the file
923'write' writing to a file is allowed
924'writeany' 'wa' write to file with no need for "!" override
925'writebackup' 'wb' make a backup before overwriting a file
926'writedelay' 'wd' delay this many msec for each char (for debug)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000927------------------------------------------------------------------------------
928*Q_ur* Undo/Redo commands
929
930|u| N u undo last N changes
931|CTRL-R| N CTRL-R redo last N undone changes
932|U| U restore last changed line
933------------------------------------------------------------------------------
934*Q_et* External commands
935
936|:shell| :sh[ell] start a shell
937|:!| :!{command} execute {command} with a shell
938|K| K lookup keyword under the cursor with
939 'keywordprg' program (default: "man")
940------------------------------------------------------------------------------
941*Q_qf* Quickfix commands
942
943|:cc| :cc [nr] display error [nr] (default is the same again)
944|:cnext| :cn display the next error
945|:cprevious| :cp display the previous error
946|:clist| :cl list all errors
947|:cfile| :cf read errors from the file 'errorfile'
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000948|:cgetfile| :cg like :cfile but don't jump to the first error
Bram Moolenaar4770d092006-01-12 23:22:24 +0000949|:caddfile| :caddf add errors from the error file to the current
950 quickfix list
951|:caddexpr| :cad add errors from an expression to the current
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000952 quickfix list
953|:cbuffer| :cb read errors from text in a buffer
954|:cexpr| :cex read errors from an expression
Bram Moolenaar071d4272004-06-13 20:20:40 +0000955|:cquit| :cq quit without writing and return error code (to
956 the compiler)
957|:make| :make [args] start make, read errors, and jump to first
958 error
959|:grep| :gr[ep] [args] execute 'grepprg' to find matches and jump to
960 the first one.
961------------------------------------------------------------------------------
962*Q_vc* Various commands
963
964|CTRL-L| CTRL-L Clear and redraw the screen.
965|CTRL-G| CTRL-G show current file name (with path) and cursor
966 position
967|ga| ga show ascii value of character under cursor in
968 decimal, hex, and octal
Bram Moolenaar269ec652004-07-29 08:43:53 +0000969|g8| g8 for utf-8 encoding: show byte sequence for
970 character under cursor in hex.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000971|g_CTRL-G| g CTRL-G show cursor column, line, and character
972 position
973|CTRL-C| CTRL-C during searches: Interrupt the search
974|dos-CTRL-Break| CTRL-Break MS-DOS: during searches: Interrupt the search
975|<Del>| <Del> while entering a count: delete last character
976|:version| :ve[rsion] show version information
977|:mode| :mode N MS-DOS: set screen mode to N (number, C80,
978 C4350, etc.)
979|:normal| :norm[al][!] {commands}
980 Execute Normal mode commands.
981|Q| Q switch to "Ex" mode
982
983|:redir| :redir >{file} redirect messages to {file}
984|:silent| :silent[!] {command} execute {command} silently
985|:confirm| :confirm {command} quit, write, etc., asking about
986 unsaved changes or read-only files.
987|:browse| :browse {command} open/read/write file, using a
988 file selection dialog
989------------------------------------------------------------------------------
990*Q_ce* Command-line editing
991
992|c_<Esc>| <Esc> abandon command-line (if 'wildchar' is
993 <Esc>, type it twice)
994
995|c_CTRL-V| CTRL-V {char} insert {char} literally
996|c_CTRL-V| CTRL-V {number} enter decimal value of character (up to
997 three digits)
998|c_CTRL-K| CTRL-K {char1} {char2}
999 enter digraph (See |Q_di|)
1000|c_CTRL-R| CTRL-R {0-9a-z"%#:-=}
1001 insert the contents of a register
1002
1003|c_<Left>| <Left>/<Right> cursor left/right
1004|c_<S-Left>| <S-Left>/<S-Right> cursor one word left/right
1005|c_CTRL-B| CTRL-B/CTRL-E cursor to beginning/end of command-line
1006
1007|c_<BS>| <BS> delete the character in front of the cursor
1008|c_<Del>| <Del> delete the character under the cursor
1009|c_CTRL-W| CTRL-W delete the word in front of the cursor
1010|c_CTRL-U| CTRL-U remove all characters
1011
1012|c_<Up>| <Up>/<Down> recall older/newer command-line that starts
1013 with current command
1014|c_<S-Up>| <S-Up>/<S-Down> recall older/newer command-line from history
1015|:history| :his[tory] show older command-lines
1016
1017Context-sensitive completion on the command-line:
1018
1019|c_wildchar| 'wildchar' (default: <Tab>)
1020 do completion on the pattern in front of the
1021 cursor. If there are multiple matches,
1022 beep and show the first one; further
1023 'wildchar' will show the next ones.
1024|c_CTRL-D| CTRL-D list all names that match the pattern in
1025 front of the cursor
1026|c_CTRL-A| CTRL-A insert all names that match pattern in front
1027 of cursor
1028|c_CTRL-L| CTRL-L insert longest common part of names that
1029 match pattern
1030|c_CTRL-N| CTRL-N after 'wildchar' with multiple matches: go
1031 to next match
1032|c_CTRL-P| CTRL-P after 'wildchar' with multiple matches: go
1033 to previous match
1034------------------------------------------------------------------------------
1035*Q_ra* Ex ranges
1036
1037|:range| , separates two line numbers
1038|:range| ; idem, set cursor to the first line number
1039 before interpreting the second one
1040
1041|:range| {number} an absolute line number
1042|:range| . the current line
1043|:range| $ the last line in the file
1044|:range| % equal to 1,$ (the entire file)
1045|:range| * equal to '<,'> (visual area)
1046|:range| 't position of mark t
1047|:range| /{pattern}[/] the next line where {pattern} matches
1048|:range| ?{pattern}[?] the previous line where {pattern} matches
1049
1050|:range| +[num] add [num] to the preceding line number
1051 (default: 1)
1052|:range| -[num] subtract [num] from the preceding line
1053 number (default: 1)
1054------------------------------------------------------------------------------
1055*Q_ex* Special Ex characters
1056
1057|:bar| | separates two commands (not for ":global" and ":!")
1058|:quote| " begins comment
1059
1060|:_%| % current file name (only where a file name is expected)
1061|:_#| #[num] alternate file name [num] (only where a file name is
1062 expected)
1063 Note: The next four are typed literally; these are not special keys!
1064|:<cword>| <cword> word under the cursor (only where a file name is
1065 expected)
1066|:<cWORD>| <cWORD> WORD under the cursor (only where a file name is
1067 expected) (see |WORD|)
1068|:<cfile>| <cfile> file name under the cursor (only where a file name is
1069 expected)
1070|:<afile>| <afile> file name for autocommand (only where a file name is
1071 expected)
1072|:<sfile>| <sfile> file name of a ":source"d file, within that file (only
1073 where a file name is expected)
1074
1075 After "%", "#", "<cfile>", "<sfile>" or "<afile>"
1076 |::p| :p full path
1077 |::h| :h head (file name removed)
1078 |::t| :t tail (file name only)
1079 |::r| :r root (extension removed)
1080 |::e| :e extension
1081 |::s| :s/{pat}/{repl}/ substitute {pat} with {repl}
1082------------------------------------------------------------------------------
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +00001083*Q_st* Starting VIM
1084
1085|-vim| vim [options] start editing with an empty buffer
1086|-file| vim [options] {file} .. start editing one or more files
1087|--| vim [options] - read file from stdin
1088|-tag| vim [options] -t {tag} edit the file associated with {tag}
1089|-qf| vim [options] -q [fname] start editing in QuickFix mode,
1090 display the first error
1091
1092 Most useful Vim arguments (for full list see |startup-options|)
1093
1094|-gui| -g start GUI (also allows other options)
1095
1096|-+| +[num] put the cursor at line [num] (default: last line)
1097|-+c| +{command} execute {command} after loading the file
1098|-+/| +/{pat} {file} .. put the cursor at the first occurrence of {pat}
1099|-v| -v Vi mode, start ex in Normal mode
1100|-e| -e Ex mode, start vim in Ex mode
1101|-R| -R Read-only mode, implies -n
1102|-m| -m modifications not allowed (resets 'write' option)
1103|-d| -d diff mode |diff|
1104|-b| -b binary mode
1105|-l| -l lisp mode
1106|-A| -A Arabic mode ('arabic' is set)
1107|-F| -F Farsi mode ('fkmap' and 'rightleft' are set)
1108|-H| -H Hebrew mode ('hkmap' and 'rightleft' are set)
1109|-V| -V Verbose, give informative messages
1110|-C| -C Compatible, set the 'compatible' option
1111|-N| -N Nocompatible, reset the 'compatible' option
1112|-r| -r give list of swap files
1113|-r| -r {file} .. recover aborted edit session
1114|-n| -n do not create a swap file
1115|-o| -o [num] open [num] windows (default: one for each file)
1116|-f| -f GUI: foreground process, don't fork
1117 Amiga: do not restart VIM to open a window (for
1118 e.g., mail)
1119|-s| -s {scriptin} first read commands from the file {scriptin}
1120|-w| -w {scriptout} write typed chars to file {scriptout} (append)
1121|-W| -W {scriptout} write typed chars to file {scriptout} (overwrite)
1122|-T| -T {terminal} set terminal name
1123|-d| -d {device} Amiga: open {device} to be used as a console
1124|-u| -u {vimrc} read inits from {vimrc} instead of other inits
1125|-U| -U {gvimrc} idem, for when starting the GUI
1126|-i| -i {viminfo} read info from {viminfo} instead of other files
1127|---| -- end of options, other arguments are file names
1128|--help| --help show list of arguments and exit
1129|--version| --version show version info and exit
1130|--| - Read file from stdin.
1131------------------------------------------------------------------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +00001132*Q_ed* Editing a file
1133
1134 Without !: Fail if changes has been made to the current buffer.
1135 With !: Discard any changes to the current buffer.
1136|:edit_f| :e[dit][!] {file} Edit {file}.
1137|:edit| :e[dit][!] Reload the current file.
1138|:enew| :ene[w][!] Edit a new, unnamed buffer.
1139|:find| :fin[d][!] {file} Find {file} in 'path' and edit it.
1140
1141|CTRL-^| N CTRL-^ Edit alternate file N (equivalent to ":e #N").
1142|gf| gf or ]f Edit the file whose name is under the cursor
1143|:pwd| :pwd Print the current directory name.
1144|:cd| :cd [path] Change the current directory to [path].
1145|:cd-| :cd - Back to previous current directory.
1146|:file| :f[ile] Print the current file name and the cursor
1147 position.
1148|:file| :f[ile] {name} Set the current file name to {name}.
1149|:files| :files Show alternate file names.
1150------------------------------------------------------------------------------
1151*Q_fl* Using the argument list |argument-list|
1152
1153|:args| :ar[gs] Print the argument list, with the current file
1154 in "[]".
1155|:all| :all or :sall Open a window for every file in the arg list.
1156|:wn| :wn[ext][!] Write file and edit next file.
1157|:wn| :wn[ext][!] {file} Write to {file} and edit next file, unless
1158 {file} exists. With !, overwrite existing
1159 file.
1160|:wN| :wN[ext][!] [file] Write file and edit previous file.
1161
1162 in current window in new window ~
1163|:argument| :argu[ment] N :sar[gument] N Edit file N
1164|:next| :n[ext] :sn[ext] Edit next file
1165|:next_f| :n[ext] {arglist} :sn[ext] {arglist} define new arg list
1166 and edit first file
1167|:Next| :N[ext] :sN[ext] Edit previous file
1168|:first| :fir[st] :sfir[st] Edit first file
1169|:last| :la[st] :sla[st] Edit last file
1170------------------------------------------------------------------------------
1171*Q_wq* Writing and quitting
1172
1173|:w| :[range]w[rite][!] Write to the current file.
1174|:w_f| :[range]w[rite] {file} Write to {file}, unless it already
1175 exists.
1176|:w_f| :[range]w[rite]! {file} Write to {file}. Overwrite an existing
1177 file.
1178|:w_a| :[range]w[rite][!] >> Append to the current file.
1179|:w_a| :[range]w[rite][!] >> {file} Append to {file}.
1180|:w_c| :[range]w[rite] !{cmd} Execute {cmd} with [range] lines as
1181 standard input.
1182|:up| :[range]up[date][!] write to current file if modified
1183|:wall| :wa[ll][!] write all changed buffers
1184
1185|:q| :q[uit] Quit current buffer, unless changes have been
1186 made. Exit Vim when there are no other
1187 non-help buffers
1188|:q| :q[uit]! Quit current buffer always, discard any
1189 changes. Exit Vim when there are no other
1190 non-help buffers
1191|:qa| :qa[ll] Exit Vim, unless changes have been made.
1192|:qa| :qa[ll]! Exit Vim always, discard any changes.
1193|:cq| :cq Quit without writing and return error code.
1194
1195|:wq| :wq[!] Write the current file and exit.
1196|:wq| :wq[!] {file} Write to {file} and exit.
1197|:xit| :x[it][!] [file] Like ":wq" but write only when changes have
1198 been made
1199|ZZ| ZZ Same as ":x".
1200|ZQ| ZQ Same as ":q!".
1201|:xall| :xa[ll][!] or :wqall[!]
1202 Write all changed buffers and exit
1203
Bram Moolenaar402d2fe2005-04-15 21:00:38 +00001204|:stop| :st[op][!] Suspend VIM or start new shell. If 'aw' option
Bram Moolenaar071d4272004-06-13 20:20:40 +00001205 is set and [!] not given write the buffer.
1206|CTRL-Z| CTRL-Z Same as ":stop"
1207------------------------------------------------------------------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +00001208*Q_ac* Automatic Commands
1209
1210|viminfo-file| Read registers, marks, history at startup, save when exiting.
1211
1212|:rviminfo| :rv[iminfo] [file] Read info from viminfo file [file]
1213|:rviminfo| :rv[iminfo]! [file] idem, overwrite existing info
1214|:wviminfo| :wv[iminfo] [file] Add info to viminfo file [file]
1215|:wviminfo| :wv[iminfo]! [file] Write info to viminfo file [file]
1216
1217|modeline| Automatic option setting when editing a file
1218
1219|modeline| vim:{set-arg}: .. In the first and last lines of the
1220 file (see 'ml' option), {set-arg} is
1221 given as an argument to ":set"
1222
1223|autocommand| Automatic execution of commands on certain events.
1224
1225|:autocmd| :au List all autocommands
1226|:autocmd| :au {event} List all autocommands for {event}
1227|:autocmd| :au {event} {pat} List all autocommands for {event} with
1228 {pat}
1229|:autocmd| :au {event} {pat} {cmd} Enter new autocommands for {event}
1230 with {pat}
1231|:autocmd| :au! Remove all autocommands
1232|:autocmd| :au! {event} Remove all autocommands for {event}
1233|:autocmd| :au! * {pat} Remove all autocommands for {pat}
1234|:autocmd| :au! {event} {pat} Remove all autocommands for {event}
1235 with {pat}
1236|:autocmd| :au! {event} {pat} {cmd} Remove all autocommands for {event}
1237 with {pat} and enter new one
1238------------------------------------------------------------------------------
1239*Q_wi* Multi-window commands
1240
1241|CTRL-W_s| CTRL-W s or :split Split window into two parts
1242|:split_f| :split {file} Split window and edit {file} in one of
1243 them
1244|:vsplit| :vsplit {file} Same, but split vertically
1245|:vertical| :vertical {cmd} Make {cmd} split vertically
1246
1247|:sfind| :sf[ind] {file} Split window, find {file} in 'path'
1248 and edit it.
1249|CTRL-W_]| CTRL-W ] Split window and jump to tag under
1250 cursor
1251|CTRL-W_f| CTRL-W f Split window and edit file name under
1252 the cursor
1253|CTRL-W_^| CTRL-W ^ Split window and edit alternate file
1254|CTRL-W_n| CTRL-W n or :new Create new empty window
1255|CTRL-W_q| CTRL-W q or :q[uit] Quit editing and close window
1256|CTRL-W_c| CTRL-W c or :cl[ose] Make buffer hidden and close window
1257|CTRL-W_o| CTRL-W o or :on[ly] Make current window only one on the
1258 screen
1259
1260|CTRL-W_j| CTRL-W j Move cursor to window below
1261|CTRL-W_k| CTRL-W k Move cursor to window above
1262|CTRL-W_CTRL-W| CTRL-W CTRL-W Move cursor to window below (wrap)
1263|CTRL-W_W| CTRL-W W Move cursor to window above (wrap)
1264|CTRL-W_t| CTRL-W t Move cursor to top window
1265|CTRL-W_b| CTRL-W b Move cursor to bottom window
1266|CTRL-W_p| CTRL-W p Move cursor to previous active window
1267
1268|CTRL-W_r| CTRL-W r Rotate windows downwards
1269|CTRL-W_R| CTRL-W R Rotate windows upwards
1270|CTRL-W_x| CTRL-W x Exchange current window with next one
1271
1272|CTRL-W_=| CTRL-W = Make all windows equal height
1273|CTRL-W_-| CTRL-W - Decrease current window height
1274|CTRL-W_+| CTRL-W + Increase current window height
1275|CTRL-W__| CTRL-W _ Set current window height (default:
1276 very high)
1277------------------------------------------------------------------------------
1278*Q_bu* Buffer list commands
1279
1280|:buffers| :buffers or :files list all known buffer and file names
1281
1282|:ball| :ball or :sball edit all args/buffers
1283|:unhide| :unhide or :sunhide edit all loaded buffers
1284
1285|:badd| :badd {fname} add file name {fname} to the list
1286|:bunload| :bunload[!] [N] unload buffer [N] from memory
1287|:bdelete| :bdelete[!] [N] unload buffer [N] and delete it from
1288 the buffer list
1289
1290 in current window in new window ~
1291|:buffer| :[N]buffer [N] :[N]sbuffer [N] to arg/buf N
1292|:bnext| :[N]bnext [N] :[N]sbnext [N] to Nth next arg/buf
1293|:bNext| :[N]bNext [N] :[N]sbNext [N] to Nth previous arg/buf
1294|:bprevious| :[N]bprevious [N] :[N]sbprevious [N] to Nth previous arg/buf
1295|:bfirst| :bfirst :sbfirst to first arg/buf
1296|:blast| :blast :sblast to last arg/buf
1297|:bmodified| :[N]bmod [N] :[N]sbmod [N] to Nth modified buf
1298------------------------------------------------------------------------------
1299*Q_sy* Syntax Highlighting
1300
1301|:syn-on| :syntax on start using syntax highlighting
1302|:syn-off| :syntax off stop using syntax highlighting
1303
1304|:syn-keyword| :syntax keyword {group-name} {keyword} ..
1305 add a syntax keyword item
1306|:syn-match| :syntax match {group-name} {pattern} ...
1307 add syntax match item
1308|:syn-region| :syntax region {group-name} {pattern} ...
1309 add syntax region item
1310|:syn-sync| :syntax sync [ccomment | lines {N} | ...]
1311 tell syntax how to sync
1312|:syntax| :syntax [list] list current syntax items
1313|:syn-clear| :syntax clear clear all syntax info
1314
1315|:highlight| :highlight clear clear all highlight info
1316|:highlight| :highlight {group-name} {key}={arg} ..
1317 set highlighting for {group-name}
1318
1319|:filetype| :filetype on switch on file type detection, without
1320 syntax highlighting
1321|:filetype| :filetype plugin indent on
1322 switch on file type detection, with
1323 automatic indenting and settings
1324------------------------------------------------------------------------------
1325*Q_gu* GUI commands
1326
1327|:gui| :gui UNIX: start the GUI
1328|:gui| :gui {fname} .. idem, and edit {fname} ..
1329
1330|:menu| :menu list all menus
1331|:menu| :menu {mpath} list menus starting with {mpath}
1332|:menu| :menu {mpath} {rhs} add menu {mpath}, giving {lhs}
1333|:menu| :menu {pri} {mpath} {rhs}
1334 idem, with priorities {pri}
1335|:menu| :menu ToolBar.{name} {rhs}
1336 add toolbar item, giving {lhs}
1337|:tmenu| :tmenu {mpath} {text} add tooltip to menu {mpath}
1338|:unmenu| :unmenu {mpath} remove menu {mpath}
1339------------------------------------------------------------------------------
1340*Q_fo* Folding
1341
1342|'foldmethod'| set foldmethod=manual manual folding
1343 set foldmethod=indent folding by indent
1344 set foldmethod=expr folding by 'foldexpr'
1345 set foldmethod=syntax folding by syntax regions
1346 set foldmethod=marker folding by 'foldmarkers'
1347
1348|zf| zf{motion} operator: Define a fold manually
1349|:fold| :{range}fold define a fold for {range} lines
1350|zd| zd delete one fold under the cursor
1351|zD| zD delete all folds under the cursor
1352
1353|zo| zo open one fold under the cursor
1354|zO| zO open all folds under the cursor
1355|zc| zc close one fold under the cursor
1356|zC| zC close all folds under the cursor
1357
1358|zm| zm fold more: decrease 'foldlevel'
1359|zM| zM close all folds: make 'foldlevel' zero
1360|zr| zr reduce folding: increase 'foldlevel'
1361|zR| zR open all folds: make 'foldlevel' max.
1362
1363|zn| zn fold none: reset 'foldenable'
1364|zN| zN fold normal set 'foldenable'
1365|zi| zi invert 'foldenable'
1366
1367 vim:tw=78:ts=8:ft=help:norl: