blob: b55fce1ce96db1cf75d61cab7afcb0570c741953 [file] [log] [blame]
Bram Moolenaarbc2eada2017-01-02 21:27:47 +01001*quickref.txt* For Vim version 8.0. Last change: 2016 Dec 16
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 ~
Bram Moolenaar00154502013-02-13 16:15:55 +010010|Q_ct| list of help files |Q_re| Repeating commands
Bram Moolenaar071d4272004-06-13 20:20:40 +000011|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 Moolenaar9028b102010-07-11 16:58:51 +020021|Q_ss| insert: Special keys |Q_st| Starting Vim
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +000022|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
Bram Moolenaar00154502013-02-13 16:15:55 +010030 |Q_fo| Folding
Bram Moolenaar071d4272004-06-13 20:20:40 +000031
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)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010043|g0| g0 to first character in screen line (differs from "0"
Bram Moolenaar071d4272004-06-13 20:20:40 +000044 when lines wrap)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010045|g^| g^ to first non-blank character in screen line (differs
Bram Moolenaar071d4272004-06-13 20:20:40 +000046 from "^" when lines wrap)
47|g$| N g$ to last character in screen line (differs from "$"
48 when lines wrap)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010049|gm| gm to middle of the screen line
Bram Moolenaar071d4272004-06-13 20:20:40 +000050|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
Bram Moolenaar9028b102010-07-11 16:58:51 +020071|N%| N % goto line N percentage down in the file; N must be
Bram Moolenaard04b7502010-07-08 22:27:55 +020072 given, otherwise it is the |%| command
Bram Moolenaar071d4272004-06-13 20:20:40 +000073|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
Bram Moolenaardc8b25c2013-07-06 13:58:22 +0200173|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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000178|`quote| `" go to the position when last editing this file
Bram Moolenaardc8b25c2013-07-06 13:58:22 +0200179|`[| `[ 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[]'"<>.}
Bram Moolenaar071d4272004-06-13 20:20:40 +0000185 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
Bram Moolenaar00154502013-02-13 16:15:55 +0100189|:ju| :ju[mps] print the jump list
Bram Moolenaar071d4272004-06-13 20:20:40 +0000190------------------------------------------------------------------------------
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
Bram Moolenaar00154502013-02-13 16:15:55 +0100207|:ta| :ta[g][!] {tag} jump to tag {tag}
208|:ta| :[count]ta[g][!] jump to [count]'th newer tag in tag list
Bram Moolenaard04b7502010-07-08 22:27:55 +0200209|CTRL-]| CTRL-] jump to the tag under cursor, unless changes
Bram Moolenaar071d4272004-06-13 20:20:40 +0000210 have been made
Bram Moolenaar00154502013-02-13 16:15:55 +0100211|:ts| :ts[elect][!] [tag] list matching tags and select one to jump to
Bram Moolenaard04b7502010-07-08 22:27:55 +0200212|:tjump| :tj[ump][!] [tag] jump to tag [tag] or select from list when
Bram Moolenaar071d4272004-06-13 20:20:40 +0000213 there are multiple matches
Bram Moolenaar00154502013-02-13 16:15:55 +0100214|:ltag| :lt[ag][!] [tag] jump to tag [tag] and add matching tags to the
Bram Moolenaard04b7502010-07-08 22:27:55 +0200215 location list
Bram Moolenaar071d4272004-06-13 20:20:40 +0000216
Bram Moolenaar00154502013-02-13 16:15:55 +0100217|:tags| :tags print tag list
Bram Moolenaard04b7502010-07-08 22:27:55 +0200218|CTRL-T| N CTRL-T jump back from Nth older tag in tag list
Bram Moolenaar00154502013-02-13 16:15:55 +0100219|:po| :[count]po[p][!] jump back from [count]'th older tag in tag list
Bram Moolenaard04b7502010-07-08 22:27:55 +0200220|:tnext| :[count]tn[ext][!] jump to [count]'th next matching tag
221|:tp| :[count]tp[revious][!] jump to [count]'th previous matching tag
Bram Moolenaar00154502013-02-13 16:15:55 +0100222|:tr| :[count]tr[ewind][!] jump to [count]'th matching tag
223|:tl| :tl[ast][!] jump to last matching tag
Bram Moolenaar071d4272004-06-13 20:20:40 +0000224
Bram Moolenaar00154502013-02-13 16:15:55 +0100225|: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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000227|: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
Bram Moolenaar00154502013-02-13 16:15:55 +0100230|CTRL-W_z| CTRL-W z close tag preview window
Bram Moolenaar071d4272004-06-13 20:20:40 +0000231------------------------------------------------------------------------------
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:
Bram Moolenaar00154502013-02-13 16:15:55 +0100263|v_b_I| I insert the same text in front of all the selected lines
Bram Moolenaar071d4272004-06-13 20:20:40 +0000264|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
Bram Moolenaar00154502013-02-13 16:15:55 +0100337|<Del>| N <Del> delete N characters under and after the cursor
Bram Moolenaar071d4272004-06-13 20:20:40 +0000338|X| N X delete N characters before the cursor
339|d| N d{motion} delete the text that is moved over with {motion}
Bram Moolenaar00154502013-02-13 16:15:55 +0100340|v_d| {visual}d delete the highlighted text
Bram Moolenaar071d4272004-06-13 20:20:40 +0000341|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)
Bram Moolenaar00154502013-02-13 16:15:55 +0100344|v_J| {visual}J join the highlighted lines
Bram Moolenaar071d4272004-06-13 20:20:40 +0000345|gJ| N gJ like "J", but without inserting spaces
Bram Moolenaar00154502013-02-13 16:15:55 +0100346|v_gJ| {visual}gJ like "{visual}J", but without inserting spaces
Bram Moolenaar071d4272004-06-13 20:20:40 +0000347|: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
Bram Moolenaar00154502013-02-13 16:15:55 +0100372|v_b_r| {visual}r{char}
Bram Moolenaar071d4272004-06-13 20:20:40 +0000373 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
Bram Moolenaar00154502013-02-13 16:15:55 +0100450|v| v start highlighting characters } move cursor and use
451|V| V start highlighting linewise } operator to affect
Bram Moolenaar071d4272004-06-13 20:20:40 +0000452|CTRL-V| CTRL-V start highlighting blockwise } highlighted text
Bram Moolenaar00154502013-02-13 16:15:55 +0100453|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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000457|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
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000461|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|v_a>| N a> Select "a <> block"
474|v_i>| N i> Select "inner <> block"
475|v_at| N at Select "a tag block" (from <aaa> to </aaa>)
476|v_it| N it Select "inner tag block" (from <aaa> to </aaa>)
477|v_a'| N a' Select "a single quoted string"
478|v_i'| N i' Select "inner single quoted string"
479|v_aquote| N a" Select "a double quoted string"
480|v_iquote| N i" Select "inner double quoted string"
481|v_a`| N a` Select "a backward quoted string"
482|v_i`| N i` Select "inner backward quoted string"
483
Bram Moolenaar071d4272004-06-13 20:20:40 +0000484------------------------------------------------------------------------------
485*Q_re* Repeating commands
486
487|.| N . repeat last change (with count replaced with N)
488|q| q{a-z} record typed characters into register {a-z}
489|q| q{A-Z} record typed characters, appended to register {a-z}
490|q| q stop recording
491|@| N @{a-z} execute the contents of register {a-z} (N times)
492|@@| N @@ repeat previous @{a-z} (N times)
493|:@| :@{a-z} execute the contents of register {a-z} as an Ex
494 command
495|:@@| :@@ repeat previous :@{a-z}
496|:g| :[range]g[lobal]/{pattern}/[cmd]
Bram Moolenaard04b7502010-07-08 22:27:55 +0200497 execute Ex command [cmd] (default: ":p") on the lines
498 within [range] where {pattern} matches
Bram Moolenaar071d4272004-06-13 20:20:40 +0000499|:g| :[range]g[lobal]!/{pattern}/[cmd]
Bram Moolenaard04b7502010-07-08 22:27:55 +0200500 execute Ex command [cmd] (default: ":p") on the lines
501 within [range] where {pattern} does NOT match
Bram Moolenaar071d4272004-06-13 20:20:40 +0000502|:so| :so[urce] {file}
Bram Moolenaard04b7502010-07-08 22:27:55 +0200503 read Ex commands from {file}
Bram Moolenaar071d4272004-06-13 20:20:40 +0000504|:so| :so[urce]! {file}
Bram Moolenaard04b7502010-07-08 22:27:55 +0200505 read Vim commands from {file}
Bram Moolenaar071d4272004-06-13 20:20:40 +0000506|:sl| :sl[eep] [sec]
507 don't do anything for [sec] seconds
Bram Moolenaard04b7502010-07-08 22:27:55 +0200508|gs| N gs goto Sleep for N seconds
Bram Moolenaar071d4272004-06-13 20:20:40 +0000509------------------------------------------------------------------------------
510*Q_km* Key mapping
511
Bram Moolenaar00154502013-02-13 16:15:55 +0100512|:map| :ma[p] {lhs} {rhs} map {lhs} to {rhs} in Normal and Visual mode
513|:map!| :ma[p]! {lhs} {rhs} map {lhs} to {rhs} in Insert and Command-line
Bram Moolenaard04b7502010-07-08 22:27:55 +0200514 mode
Bram Moolenaar071d4272004-06-13 20:20:40 +0000515|:noremap| :no[remap][!] {lhs} {rhs}
Bram Moolenaard04b7502010-07-08 22:27:55 +0200516 same as ":map", no remapping for this {rhs}
517|:unmap| :unm[ap] {lhs} remove the mapping of {lhs} for Normal and
518 Visual mode
519|:unmap!| :unm[ap]! {lhs} remove the mapping of {lhs} for Insert and
520 Command-line mode
521|:map_l| :ma[p] [lhs] list mappings (starting with [lhs]) for
522 Normal and Visual mode
523|:map_l!| :ma[p]! [lhs] list mappings (starting with [lhs]) for
524 Insert and Command-line mode
Bram Moolenaar00154502013-02-13 16:15:55 +0100525|:cmap| :cmap/:cunmap/:cnoremap
Bram Moolenaar071d4272004-06-13 20:20:40 +0000526 like ":map!"/":unmap!"/":noremap!" but for
527 Command-line mode only
Bram Moolenaar00154502013-02-13 16:15:55 +0100528|:imap| :imap/:iunmap/:inoremap
Bram Moolenaar071d4272004-06-13 20:20:40 +0000529 like ":map!"/":unmap!"/":noremap!" but for
530 Insert mode only
Bram Moolenaar00154502013-02-13 16:15:55 +0100531|:nmap| :nmap/:nunmap/:nnoremap
Bram Moolenaar071d4272004-06-13 20:20:40 +0000532 like ":map"/":unmap"/":noremap" but for
533 Normal mode only
Bram Moolenaar00154502013-02-13 16:15:55 +0100534|:vmap| :vmap/:vunmap/:vnoremap
Bram Moolenaar071d4272004-06-13 20:20:40 +0000535 like ":map"/":unmap"/":noremap" but for
536 Visual mode only
Bram Moolenaar00154502013-02-13 16:15:55 +0100537|:omap| :omap/:ounmap/:onoremap
Bram Moolenaar071d4272004-06-13 20:20:40 +0000538 like ":map"/":unmap"/":noremap" but only for
539 when an operator is pending
540|:mapc| :mapc[lear] remove mappings for Normal and Visual mode
541|:mapc| :mapc[lear]! remove mappings for Insert and Cmdline mode
542|:imapc| :imapc[lear] remove mappings for Insert mode
543|:vmapc| :vmapc[lear] remove mappings for Visual mode
544|:omapc| :omapc[lear] remove mappings for Operator-pending mode
545|:nmapc| :nmapc[lear] remove mappings for Normal mode
546|:cmapc| :cmapc[lear] remove mappings for Cmdline mode
547|:mkexrc| :mk[exrc][!] [file] write current mappings, abbreviations, and
548 settings to [file] (default: ".exrc";
549 use ! to overwrite)
550|:mkvimrc| :mkv[imrc][!] [file]
551 same as ":mkexrc", but with default ".vimrc"
552|:mksession| :mks[ession][!] [file]
553 like ":mkvimrc", but store current files,
554 windows, etc. too, to be able to continue
Bram Moolenaard04b7502010-07-08 22:27:55 +0200555 this session later
Bram Moolenaar071d4272004-06-13 20:20:40 +0000556------------------------------------------------------------------------------
557*Q_ab* Abbreviations
558
559|:abbreviate| :ab[breviate] {lhs} {rhs} add abbreviation for {lhs} to {rhs}
560|:abbreviate| :ab[breviate] {lhs} show abbr's that start with {lhs}
561|:abbreviate| :ab[breviate] show all abbreviations
562|:unabbreviate| :una[bbreviate] {lhs} remove abbreviation for {lhs}
563|:noreabbrev| :norea[bbrev] [lhs] [rhs] like ":ab", but don't remap [rhs]
564|:iabbrev| :iab/:iunab/:inoreab like ":ab", but only for Insert mode
565|:cabbrev| :cab/:cunab/:cnoreab like ":ab", but only for
566 Command-line mode
567|:abclear| :abc[lear] remove all abbreviations
568|:cabclear| :cabc[lear] remove all abbr's for Cmdline mode
569|:iabclear| :iabc[lear] remove all abbr's for Insert mode
570------------------------------------------------------------------------------
571*Q_op* Options
572
Bram Moolenaard04b7502010-07-08 22:27:55 +0200573|:set| :se[t] show all modified options
574|:set| :se[t] all show all non-termcap options
575|:set| :se[t] termcap show all termcap options
576|:set| :se[t] {option} set boolean option (switch it on),
577 show string or number option
578|:set| :se[t] no{option} reset boolean option (switch it off)
579|:set| :se[t] inv{option} invert boolean option
580|:set| :se[t] {option}={value} set string/number option to {value}
Bram Moolenaar071d4272004-06-13 20:20:40 +0000581|:set| :se[t] {option}+={value} append {value} to string option, add
582 {value} to number option
583|:set| :se[t] {option}-={value} remove {value} to string option,
584 subtract {value} from number option
Bram Moolenaard04b7502010-07-08 22:27:55 +0200585|:set| :se[t] {option}? show value of {option}
586|:set| :se[t] {option}& reset {option} to its default value
Bram Moolenaar071d4272004-06-13 20:20:40 +0000587
588|:setlocal| :setl[ocal] like ":set" but set the local value
589 for options that have one
590|:setglobal| :setg[lobal] like ":set" but set the global value
591 of a local option
592
Bram Moolenaard04b7502010-07-08 22:27:55 +0200593|:fix| :fix[del] set value of 't_kD' according to
594 value of 't_kb'
595|:options| :opt[ions] open a new window to view and set
Bram Moolenaar071d4272004-06-13 20:20:40 +0000596 options, grouped by functionality,
597 a one line explanation and links to
Bram Moolenaard04b7502010-07-08 22:27:55 +0200598 the help
Bram Moolenaar071d4272004-06-13 20:20:40 +0000599
600Short explanation of each option: *option-list*
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000601'aleph' 'al' ASCII code of the letter Aleph (Hebrew)
602'allowrevins' 'ari' allow CTRL-_ in Insert and Command-line mode
603'altkeymap' 'akm' for default second language (Farsi/Hebrew)
604'ambiwidth' 'ambw' what to do with Unicode chars of ambiguous width
605'antialias' 'anti' Mac OS X: use smooth, antialiased fonts
606'autochdir' 'acd' change directory to the file in the current window
607'arabic' 'arab' for Arabic as a default second language
608'arabicshape' 'arshape' do shaping for Arabic characters
609'autoindent' 'ai' take indent for new line from previous line
610'autoread' 'ar' autom. read file when changed outside of Vim
611'autowrite' 'aw' automatically write file if changed
612'autowriteall' 'awa' as 'autowrite', but works with more commands
613'background' 'bg' "dark" or "light", used for highlight colors
614'backspace' 'bs' how backspace works at start of line
615'backup' 'bk' keep backup file after overwriting a file
616'backupcopy' 'bkc' make backup as a copy, don't rename the file
617'backupdir' 'bdir' list of directories for the backup file
618'backupext' 'bex' extension used for the backup file
619'backupskip' 'bsk' no backup for files that match these patterns
620'balloondelay' 'bdlay' delay in mS before a balloon may pop up
621'ballooneval' 'beval' switch on balloon evaluation
622'balloonexpr' 'bexpr' expression to show in balloon
Bram Moolenaarf9132812015-07-21 19:19:13 +0200623'belloff' 'bo' do not ring the bell for these reasons
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000624'binary' 'bin' read/write/edit file in binary mode
625'bioskey' 'biosk' MS-DOS: use bios calls for input characters
626'bomb' prepend a Byte Order Mark to the file
627'breakat' 'brk' characters that may cause a line break
Bram Moolenaar946e27a2014-06-25 18:50:27 +0200628'breakindent' 'bri' wrapped line repeats indent
629'breakindentopt' 'briopt' settings for 'breakindent'
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000630'browsedir' 'bsdir' which directory to start browsing in
631'bufhidden' 'bh' what to do when buffer is no longer in window
632'buflisted' 'bl' whether the buffer shows up in the buffer list
633'buftype' 'bt' special type of buffer
634'casemap' 'cmp' specifies how case of letters is changed
635'cdpath' 'cd' list of directories searched with ":cd"
636'cedit' key used to open the command-line window
637'charconvert' 'ccv' expression for character encoding conversion
638'cindent' 'cin' do C program indenting
639'cinkeys' 'cink' keys that trigger indent when 'cindent' is set
640'cinoptions' 'cino' how to do indenting when 'cindent' is set
641'cinwords' 'cinw' words where 'si' and 'cin' add an indent
642'clipboard' 'cb' use the clipboard as the unnamed register
643'cmdheight' 'ch' number of lines to use for the command-line
644'cmdwinheight' 'cwh' height of the command-line window
Bram Moolenaar607cc1e2010-07-18 18:47:44 +0200645'colorcolumn' 'cc' columns to highlight
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000646'columns' 'co' number of columns in the display
647'comments' 'com' patterns that can start a comment line
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000648'commentstring' 'cms' template for comments; used for fold marker
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000649'compatible' 'cp' behave Vi-compatible as much as possible
650'complete' 'cpt' specify how Insert mode completion works
651'completefunc' 'cfu' function to be used for Insert mode completion
652'completeopt' 'cot' options for Insert mode completion
Bram Moolenaarf5963f72010-07-23 22:10:27 +0200653'concealcursor' 'cocu' whether concealable text is hidden in cursor line
Bram Moolenaardc8b25c2013-07-06 13:58:22 +0200654'conceallevel' 'cole' whether concealable text is shown or hidden
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000655'confirm' 'cf' ask what to do about unsaved/read-only files
656'conskey' 'consk' get keys directly from console (MS-DOS only)
657'copyindent' 'ci' make 'autoindent' use existing indent structure
658'cpoptions' 'cpo' flags for Vi-compatible behavior
Bram Moolenaarb702c842010-05-18 22:28:22 +0200659'cryptmethod' 'cm' type of encryption to use for file writing
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000660'cscopepathcomp' 'cspc' how many components of the path to show
661'cscopeprg' 'csprg' command to execute cscope
662'cscopequickfix' 'csqf' use quickfix window for cscope results
Bram Moolenaar251e1912011-06-19 05:09:16 +0200663'cscoperelative' 'csre' Use cscope.out path basename as prefix
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000664'cscopetag' 'cst' use cscope for tag commands
665'cscopetagorder' 'csto' determines ":cstag" search order
666'cscopeverbose' 'csverb' give messages when adding a cscope database
Bram Moolenaarb2c03502010-07-02 20:20:09 +0200667'cursorbind' 'crb' move cursor in window as it moves in other windows
Bram Moolenaar60f83772006-03-12 21:52:47 +0000668'cursorcolumn' 'cuc' highlight the screen column of the cursor
669'cursorline' 'cul' highlight the screen line of the cursor
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000670'debug' set to "msg" to see all error messages
671'define' 'def' pattern to be used to find a macro definition
672'delcombine' 'deco' delete combining characters on their own
673'dictionary' 'dict' list of file names used for keyword completion
674'diff' use diff mode for the current window
675'diffexpr' 'dex' expression used to obtain a diff file
676'diffopt' 'dip' options for using diff mode
677'digraph' 'dg' enable the entering of digraphs in Insert mode
678'directory' 'dir' list of directory names for the swap file
679'display' 'dy' list of flags for how to display text
680'eadirection' 'ead' in which direction 'equalalways' works
681'edcompatible' 'ed' toggle flags of ":substitute" command
Bram Moolenaar03413f42016-04-12 21:07:15 +0200682'emoji' 'emo' emoji characters are considered full width
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000683'encoding' 'enc' encoding used internally
684'endofline' 'eol' write <EOL> for last line in file
685'equalalways' 'ea' windows are automatically made the same size
686'equalprg' 'ep' external program to use for "=" command
687'errorbells' 'eb' ring the bell for error messages
688'errorfile' 'ef' name of the errorfile for the QuickFix mode
689'errorformat' 'efm' description of the lines in the error file
690'esckeys' 'ek' recognize function keys in Insert mode
691'eventignore' 'ei' autocommand events that are ignored
692'expandtab' 'et' use spaces when <Tab> is inserted
693'exrc' 'ex' read .vimrc and .exrc in the current directory
694'fileencoding' 'fenc' file encoding for multi-byte text
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000695'fileencodings' 'fencs' automatically detected character encodings
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000696'fileformat' 'ff' file format used for file I/O
697'fileformats' 'ffs' automatically detected values for 'fileformat'
Bram Moolenaar91fc43d2013-04-05 15:41:05 +0200698'fileignorecase' 'fic' ignore case when using file names
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000699'filetype' 'ft' type of file, used for autocommands
700'fillchars' 'fcs' characters to use for displaying special items
Bram Moolenaarf9132812015-07-21 19:19:13 +0200701'fixendofline' 'fixeol' make sure last line in file has <EOL>
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000702'fkmap' 'fk' Farsi keyboard mapping
703'foldclose' 'fcl' close a fold when the cursor leaves it
704'foldcolumn' 'fdc' width of the column used to indicate folds
705'foldenable' 'fen' set to display all folds open
706'foldexpr' 'fde' expression used when 'foldmethod' is "expr"
707'foldignore' 'fdi' ignore lines when 'foldmethod' is "indent"
708'foldlevel' 'fdl' close folds with a level higher than this
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000709'foldlevelstart' 'fdls' 'foldlevel' when starting to edit a file
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000710'foldmarker' 'fmr' markers used when 'foldmethod' is "marker"
711'foldmethod' 'fdm' folding type
712'foldminlines' 'fml' minimum number of lines for a fold to be closed
713'foldnestmax' 'fdn' maximum fold depth
714'foldopen' 'fdo' for which commands a fold will be opened
715'foldtext' 'fdt' expression used to display for a closed fold
Bram Moolenaarf9132812015-07-21 19:19:13 +0200716'formatexpr' 'fex' expression used with "gq" command
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000717'formatlistpat' 'flp' pattern used to recognize a list header
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000718'formatoptions' 'fo' how automatic formatting is to be done
719'formatprg' 'fp' name of external program used with "gq" command
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000720'fsync' 'fs' whether to invoke fsync() after file write
721'gdefault' 'gd' the ":substitute" flag 'g' is default on
722'grepformat' 'gfm' format of 'grepprg' output
723'grepprg' 'gp' program to use for ":grep"
724'guicursor' 'gcr' GUI: settings for cursor shape and blinking
725'guifont' 'gfn' GUI: Name(s) of font(s) to be used
726'guifontset' 'gfs' GUI: Names of multi-byte fonts to be used
727'guifontwide' 'gfw' list of font names for double-wide characters
728'guiheadroom' 'ghr' GUI: pixels room for window decorations
729'guioptions' 'go' GUI: Which components and options are used
730'guipty' GUI: try to use a pseudo-tty for ":!" commands
731'guitablabel' 'gtl' GUI: custom label for a tab page
Bram Moolenaar57657d82006-04-21 22:12:41 +0000732'guitabtooltip' 'gtt' GUI: custom tooltip for a tab page
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000733'helpfile' 'hf' full path name of the main help file
734'helpheight' 'hh' minimum height of a new help window
735'helplang' 'hlg' preferred help languages
736'hidden' 'hid' don't unload buffer when it is |abandon|ed
737'highlight' 'hl' sets highlighting mode for various occasions
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000738'history' 'hi' number of command-lines that are remembered
739'hkmap' 'hk' Hebrew keyboard mapping
740'hkmapp' 'hkp' phonetic Hebrew keyboard mapping
Bram Moolenaarf9132812015-07-21 19:19:13 +0200741'hlsearch' 'hls' highlight matches with last search pattern
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000742'icon' let Vim set the text of the window icon
743'iconstring' string to use for the Vim icon text
744'ignorecase' 'ic' ignore case in search patterns
Bram Moolenaar14b69452013-06-29 23:05:20 +0200745'imactivatefunc' 'imaf' function to enable/disable the X input method
Bram Moolenaarf9132812015-07-21 19:19:13 +0200746'imactivatekey' 'imak' key that activates the X input method
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000747'imcmdline' 'imc' use IM when starting to edit a command line
748'imdisable' 'imd' do not use the IM in any mode
749'iminsert' 'imi' use :lmap or IM in Insert mode
750'imsearch' 'ims' use :lmap or IM when typing a search pattern
Bram Moolenaar14b69452013-06-29 23:05:20 +0200751'imstatusfunc' 'imsf' function to obtain X input method status
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000752'include' 'inc' pattern to be used to find an include file
753'includeexpr' 'inex' expression used to process an include line
754'incsearch' 'is' highlight match while typing search pattern
755'indentexpr' 'inde' expression used to obtain the indent of a line
756'indentkeys' 'indk' keys that trigger indenting with 'indentexpr'
757'infercase' 'inf' adjust case of match for keyword completion
758'insertmode' 'im' start the edit of a file in Insert mode
759'isfname' 'isf' characters included in file names and pathnames
760'isident' 'isi' characters included in identifiers
761'iskeyword' 'isk' characters included in keywords
762'isprint' 'isp' printable characters
763'joinspaces' 'js' two spaces after a period with a join command
764'key' encryption key
765'keymap' 'kmp' name of a keyboard mapping
766'keymodel' 'km' enable starting/stopping selection with keys
767'keywordprg' 'kp' program to use for the "K" command
768'langmap' 'lmap' alphabetic characters for other language mode
769'langmenu' 'lm' language to be used for the menus
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200770'langremap' 'lrm' do apply 'langmap' to mapped characters
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000771'laststatus' 'ls' tells when last window has status lines
772'lazyredraw' 'lz' don't redraw while executing macros
773'linebreak' 'lbr' wrap long lines at a blank
774'lines' number of lines in the display
775'linespace' 'lsp' number of pixel lines to use between characters
776'lisp' automatic indenting for Lisp
777'lispwords' 'lw' words that change how lisp indenting works
778'list' show <Tab> and <EOL>
779'listchars' 'lcs' characters for displaying in list mode
780'loadplugins' 'lpl' load plugin scripts when starting up
Bram Moolenaarb4ff5182015-11-10 21:15:48 +0100781'luadll' name of the Lua dynamic library
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000782'macatsui' Mac GUI: use ATSUI text drawing
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000783'magic' changes special characters in search patterns
784'makeef' 'mef' name of the errorfile for ":make"
785'makeprg' 'mp' program to use for the ":make" command
786'matchpairs' 'mps' pairs of characters that "%" can match
787'matchtime' 'mat' tenths of a second to show matching paren
788'maxcombine' 'mco' maximum nr of combining characters displayed
789'maxfuncdepth' 'mfd' maximum recursive depth for user functions
790'maxmapdepth' 'mmd' maximum recursive depth for mapping
791'maxmem' 'mm' maximum memory (in Kbyte) used for one buffer
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000792'maxmempattern' 'mmp' maximum memory (in Kbyte) used for pattern search
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000793'maxmemtot' 'mmt' maximum memory (in Kbyte) used for all buffers
794'menuitems' 'mis' maximum number of items in a menu
795'mkspellmem' 'msm' memory used before |:mkspell| compresses the tree
796'modeline' 'ml' recognize modelines at start or end of file
797'modelines' 'mls' number of lines checked for modelines
798'modifiable' 'ma' changes to the text are not possible
799'modified' 'mod' buffer has been modified
800'more' pause listings when the whole screen is filled
801'mouse' enable the use of mouse clicks
802'mousefocus' 'mousef' keyboard focus follows the mouse
803'mousehide' 'mh' hide mouse pointer while typing
804'mousemodel' 'mousem' changes meaning of mouse buttons
805'mouseshape' 'mouses' shape of the mouse pointer in different modes
806'mousetime' 'mouset' max time between mouse double-click
807'mzquantum' 'mzq' the interval between polls for MzScheme threads
808'nrformats' 'nf' number formats recognized for CTRL-A command
809'number' 'nu' print the line number in front of each line
810'numberwidth' 'nuw' number of columns used for the line number
811'omnifunc' 'ofu' function for filetype-specific completion
Bram Moolenaar9964e462007-05-05 17:54:07 +0000812'opendevice' 'odev' allow reading/writing devices on MS-Windows
813'operatorfunc' 'opfunc' function to be called for |g@| operator
Bram Moolenaarf3913272016-02-25 00:00:01 +0100814'osfiletype' 'oft' no longer supported
815'packpath' 'pp' list of directories used for packages
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000816'paragraphs' 'para' nroff macros that separate paragraphs
817'paste' allow pasting text
818'pastetoggle' 'pt' key code that causes 'paste' to toggle
819'patchexpr' 'pex' expression used to patch a file
820'patchmode' 'pm' keep the oldest version of a file
821'path' 'pa' list of directories searched with "gf" et.al.
Bram Moolenaarb4ff5182015-11-10 21:15:48 +0100822'perldll' name of the Perl dynamic library
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000823'preserveindent' 'pi' preserve the indent structure when reindenting
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000824'previewheight' 'pvh' height of the preview window
825'previewwindow' 'pvw' identifies the preview window
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000826'printdevice' 'pdev' name of the printer to be used for :hardcopy
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000827'printencoding' 'penc' encoding to be used for printing
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000828'printexpr' 'pexpr' expression used to print PostScript for :hardcopy
829'printfont' 'pfn' name of the font to be used for :hardcopy
830'printheader' 'pheader' format of the header used for :hardcopy
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000831'printmbcharset' 'pmbcs' CJK character set to be used for :hardcopy
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000832'printmbfont' 'pmbfn' font names to be used for CJK output of :hardcopy
833'printoptions' 'popt' controls the format of :hardcopy output
Bram Moolenaara02a5512016-06-17 12:48:11 +0200834'prompt' 'prompt' enable prompt in Ex mode
Bram Moolenaar833dc522007-05-12 13:26:40 +0000835'pumheight' 'ph' maximum height of the popup menu
Bram Moolenaarb4ff5182015-11-10 21:15:48 +0100836'pythondll' name of the Python 2 dynamic library
837'pythonthreedll' name of the Python 3 dynamic library
Bram Moolenaarf42dd3c2017-01-28 16:06:38 +0100838'pyxversion' 'pyx' Python version used for pyx* commands
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000839'quoteescape' 'qe' escape characters used in a string
840'readonly' 'ro' disallow writing the buffer
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000841'redrawtime' 'rdt' timeout for 'hlsearch' and |:match| highlighting
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200842'regexpengine' 're' default regexp engine to use
Bram Moolenaar64486672010-05-16 15:46:46 +0200843'relativenumber' 'rnu' show relative line number in front of each line
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000844'remap' allow mappings to work recursively
Bram Moolenaarfb539272014-08-22 19:21:47 +0200845'renderoptions' 'rop' options for text rendering on Windows
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000846'report' threshold for reporting nr. of lines changed
847'restorescreen' 'rs' Win32: restore screen when exiting
848'revins' 'ri' inserting characters will work backwards
849'rightleft' 'rl' window is right-to-left oriented
850'rightleftcmd' 'rlc' commands for which editing works right-to-left
Bram Moolenaarb4ff5182015-11-10 21:15:48 +0100851'rubydll' name of the Ruby dynamic library
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000852'ruler' 'ru' show cursor line and column in the status line
853'rulerformat' 'ruf' custom format for the ruler
854'runtimepath' 'rtp' list of directories used for runtime files
855'scroll' 'scr' lines to scroll with CTRL-U and CTRL-D
856'scrollbind' 'scb' scroll in window as other windows scroll
857'scrolljump' 'sj' minimum number of lines to scroll
858'scrolloff' 'so' minimum nr. of lines above and below cursor
859'scrollopt' 'sbo' how 'scrollbind' should behave
860'sections' 'sect' nroff macros that separate sections
861'secure' secure mode for reading .vimrc in current dir
862'selection' 'sel' what type of selection to use
863'selectmode' 'slm' when to use Select mode instead of Visual mode
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000864'sessionoptions' 'ssop' options for |:mksession|
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000865'shell' 'sh' name of shell to use for external commands
866'shellcmdflag' 'shcf' flag to shell to execute one command
867'shellpipe' 'sp' string to put output of ":make" in error file
868'shellquote' 'shq' quote character(s) for around shell command
869'shellredir' 'srr' string to put output of filter in a temp file
870'shellslash' 'ssl' use forward slash for shell file names
871'shelltemp' 'stmp' whether to use a temp file for shell commands
872'shelltype' 'st' Amiga: influences how to use a shell
Bram Moolenaardb7207e2012-02-22 17:30:19 +0100873'shellxescape' 'sxe' characters to escape when 'shellxquote' is (
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000874'shellxquote' 'sxq' like 'shellquote', but include redirection
875'shiftround' 'sr' round indent to multiple of shiftwidth
876'shiftwidth' 'sw' number of spaces to use for (auto)indent step
877'shortmess' 'shm' list of flags, reduce length of messages
878'shortname' 'sn' non-MS-DOS: Filenames assumed to be 8.3 chars
879'showbreak' 'sbr' string to use at the start of wrapped lines
880'showcmd' 'sc' show (partial) command in status line
881'showfulltag' 'sft' show full tag pattern when completing tag
882'showmatch' 'sm' briefly jump to matching bracket if insert one
883'showmode' 'smd' message on status line to show current mode
884'showtabline' 'stal' tells when the tab pages line is displayed
885'sidescroll' 'ss' minimum number of columns to scroll horizontal
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000886'sidescrolloff' 'siso' min. nr. of columns to left and right of cursor
Bram Moolenaar09521312016-08-12 22:54:35 +0200887'signcolumn' 'scl' when to display the sign column
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000888'smartcase' 'scs' no ignore case when pattern has uppercase
889'smartindent' 'si' smart autoindenting for C programs
890'smarttab' 'sta' use 'shiftwidth' when inserting <Tab>
891'softtabstop' 'sts' number of spaces that <Tab> uses while editing
892'spell' enable spell checking
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000893'spellcapcheck' 'spc' pattern to locate end of a sentence
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000894'spellfile' 'spf' files where |zg| and |zw| store words
895'spelllang' 'spl' language(s) to do spell checking for
896'spellsuggest' 'sps' method(s) used to suggest spelling corrections
897'splitbelow' 'sb' new window from split is below the current one
898'splitright' 'spr' new window is put right of the current one
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000899'startofline' 'sol' commands move cursor to first non-blank in line
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000900'statusline' 'stl' custom format for the status line
901'suffixes' 'su' suffixes that are ignored with multiple match
902'suffixesadd' 'sua' suffixes added when searching for a file
903'swapfile' 'swf' whether to use a swapfile for a buffer
904'swapsync' 'sws' how to sync the swap file
905'switchbuf' 'swb' sets behavior when switching to another buffer
906'synmaxcol' 'smc' maximum column to find syntax items
907'syntax' 'syn' syntax to be loaded for current buffer
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000908'tabline' 'tal' custom format for the console tab pages line
909'tabpagemax' 'tpm' maximum number of tab pages for |-p| and "tab all"
Bram Moolenaarf9132812015-07-21 19:19:13 +0200910'tabstop' 'ts' number of spaces that <Tab> in file uses
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000911'tagbsearch' 'tbs' use binary searching in tags files
Bram Moolenaar0f6562e2015-11-24 18:48:14 +0100912'tagcase' 'tc' how to handle case when searching in tags files
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000913'taglength' 'tl' number of significant characters for a tag
914'tagrelative' 'tr' file names in tag file are relative
915'tags' 'tag' list of file names used by the tag command
916'tagstack' 'tgst' push tags onto the tag stack
Bram Moolenaar8a5115c2016-01-09 19:41:11 +0100917'tcldll' name of the Tcl dynamic library
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000918'term' name of the terminal
919'termbidi' 'tbidi' terminal takes care of bi-directionality
920'termencoding' 'tenc' character encoding used by the terminal
Bram Moolenaar06481422016-04-30 15:13:38 +0200921'termguicolors' 'tgc' use GUI colors for the terminal
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000922'terse' shorten some messages
923'textauto' 'ta' obsolete, use 'fileformats'
924'textmode' 'tx' obsolete, use 'fileformat'
925'textwidth' 'tw' maximum width of text that is being inserted
926'thesaurus' 'tsr' list of thesaurus files for keyword completion
927'tildeop' 'top' tilde command "~" behaves like an operator
928'timeout' 'to' time out on mappings and key codes
929'timeoutlen' 'tm' time out time in milliseconds
930'title' let Vim set the title of the window
931'titlelen' percentage of 'columns' used for window title
932'titleold' old title, restored when exiting
933'titlestring' string to use for the Vim window title
934'toolbar' 'tb' GUI: which items to show in the toolbar
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000935'toolbariconsize' 'tbis' size of the toolbar icons (for GTK 2 only)
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000936'ttimeout' time out on mappings
937'ttimeoutlen' 'ttm' time out time for key codes in milliseconds
938'ttybuiltin' 'tbi' use built-in termcap before external termcap
939'ttyfast' 'tf' indicates a fast terminal connection
940'ttymouse' 'ttym' type of mouse codes generated
941'ttyscroll' 'tsl' maximum number of lines for a scroll
942'ttytype' 'tty' alias for 'term'
Bram Moolenaar1d689522010-05-28 20:54:39 +0200943'undodir' 'udir' where to store undo files
944'undofile' 'udf' save undo information in a file
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000945'undolevels' 'ul' maximum number of changes that can be undone
Bram Moolenaar365bdf72010-07-24 20:57:44 +0200946'undoreload' 'ur' max nr of lines to save for undo on a buffer reload
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000947'updatecount' 'uc' after this many characters flush swap file
948'updatetime' 'ut' after this many milliseconds flush swap file
949'verbose' 'vbs' give informative messages
950'verbosefile' 'vfile' file to write messages in
951'viewdir' 'vdir' directory where to store files with :mkview
952'viewoptions' 'vop' specifies what to save for :mkview
953'viminfo' 'vi' use .viminfo file upon startup and exiting
954'virtualedit' 've' when to use virtual editing
955'visualbell' 'vb' use visual bell instead of beeping
956'warn' warn for shell command when buffer was changed
Bram Moolenaar996343d2010-07-04 22:20:21 +0200957'weirdinvert' 'wiv' for terminals that have weird inversion method
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000958'whichwrap' 'ww' allow specified keys to cross line boundaries
959'wildchar' 'wc' command-line character for wildcard expansion
960'wildcharm' 'wcm' like 'wildchar' but also works when mapped
961'wildignore' 'wig' files matching these patterns are not completed
Bram Moolenaar81af9252010-12-10 20:35:50 +0100962'wildignorecase' 'wic' ignore case when completing file names
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000963'wildmenu' 'wmnu' use menu for command line completion
964'wildmode' 'wim' mode for 'wildchar' command-line expansion
Bram Moolenaard04b7502010-07-08 22:27:55 +0200965'wildoptions' 'wop' specifies how command line completion is done
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000966'winaltkeys' 'wak' when the windows system handles ALT keys
Bram Moolenaar365bdf72010-07-24 20:57:44 +0200967'window' 'wi' nr of lines to scroll for CTRL-F and CTRL-B
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000968'winheight' 'wh' minimum number of lines for the current window
969'winfixheight' 'wfh' keep window height when opening/closing windows
970'winfixwidth' 'wfw' keep window width when opening/closing windows
971'winminheight' 'wmh' minimum number of lines for any window
972'winminwidth' 'wmw' minimal number of columns for any window
973'winwidth' 'wiw' minimal number of columns for current window
974'wrap' long lines wrap and continue on the next line
975'wrapmargin' 'wm' chars from the right where wrapping starts
976'wrapscan' 'ws' searches wrap around the end of the file
977'write' writing to a file is allowed
978'writeany' 'wa' write to file with no need for "!" override
979'writebackup' 'wb' make a backup before overwriting a file
980'writedelay' 'wd' delay this many msec for each char (for debug)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000981------------------------------------------------------------------------------
982*Q_ur* Undo/Redo commands
983
Bram Moolenaar00154502013-02-13 16:15:55 +0100984|u| N u undo last N changes
Bram Moolenaar071d4272004-06-13 20:20:40 +0000985|CTRL-R| N CTRL-R redo last N undone changes
Bram Moolenaar00154502013-02-13 16:15:55 +0100986|U| U restore last changed line
Bram Moolenaar071d4272004-06-13 20:20:40 +0000987------------------------------------------------------------------------------
988*Q_et* External commands
989
990|:shell| :sh[ell] start a shell
991|:!| :!{command} execute {command} with a shell
992|K| K lookup keyword under the cursor with
993 'keywordprg' program (default: "man")
994------------------------------------------------------------------------------
995*Q_qf* Quickfix commands
996
997|:cc| :cc [nr] display error [nr] (default is the same again)
998|:cnext| :cn display the next error
999|:cprevious| :cp display the previous error
1000|:clist| :cl list all errors
1001|:cfile| :cf read errors from the file 'errorfile'
Bram Moolenaar7b5f8322006-03-23 22:47:08 +00001002|:cgetbuffer| :cgetb like :cbuffer but don't jump to the first error
Bram Moolenaar87e25fd2005-07-27 21:13:01 +00001003|:cgetfile| :cg like :cfile but don't jump to the first error
Bram Moolenaar7b5f8322006-03-23 22:47:08 +00001004|:cgetexpr| :cgete like :cexpr but don't jump to the first error
Bram Moolenaar4770d092006-01-12 23:22:24 +00001005|:caddfile| :caddf add errors from the error file to the current
1006 quickfix list
1007|:caddexpr| :cad add errors from an expression to the current
Bram Moolenaar87e25fd2005-07-27 21:13:01 +00001008 quickfix list
1009|:cbuffer| :cb read errors from text in a buffer
1010|:cexpr| :cex read errors from an expression
Bram Moolenaar071d4272004-06-13 20:20:40 +00001011|:cquit| :cq quit without writing and return error code (to
1012 the compiler)
1013|:make| :make [args] start make, read errors, and jump to first
1014 error
1015|:grep| :gr[ep] [args] execute 'grepprg' to find matches and jump to
Bram Moolenaard04b7502010-07-08 22:27:55 +02001016 the first one
Bram Moolenaar071d4272004-06-13 20:20:40 +00001017------------------------------------------------------------------------------
1018*Q_vc* Various commands
1019
Bram Moolenaard04b7502010-07-08 22:27:55 +02001020|CTRL-L| CTRL-L clear and redraw the screen
Bram Moolenaar071d4272004-06-13 20:20:40 +00001021|CTRL-G| CTRL-G show current file name (with path) and cursor
1022 position
1023|ga| ga show ascii value of character under cursor in
1024 decimal, hex, and octal
Bram Moolenaar269ec652004-07-29 08:43:53 +00001025|g8| g8 for utf-8 encoding: show byte sequence for
Bram Moolenaard04b7502010-07-08 22:27:55 +02001026 character under cursor in hex
Bram Moolenaar071d4272004-06-13 20:20:40 +00001027|g_CTRL-G| g CTRL-G show cursor column, line, and character
1028 position
1029|CTRL-C| CTRL-C during searches: Interrupt the search
1030|dos-CTRL-Break| CTRL-Break MS-DOS: during searches: Interrupt the search
1031|<Del>| <Del> while entering a count: delete last character
1032|:version| :ve[rsion] show version information
1033|:mode| :mode N MS-DOS: set screen mode to N (number, C80,
1034 C4350, etc.)
1035|:normal| :norm[al][!] {commands}
Bram Moolenaard04b7502010-07-08 22:27:55 +02001036 execute Normal mode commands
Bram Moolenaar00154502013-02-13 16:15:55 +01001037|Q| Q switch to "Ex" mode
Bram Moolenaar071d4272004-06-13 20:20:40 +00001038
1039|:redir| :redir >{file} redirect messages to {file}
1040|:silent| :silent[!] {command} execute {command} silently
1041|:confirm| :confirm {command} quit, write, etc., asking about
Bram Moolenaard04b7502010-07-08 22:27:55 +02001042 unsaved changes or read-only files
Bram Moolenaar071d4272004-06-13 20:20:40 +00001043|:browse| :browse {command} open/read/write file, using a
1044 file selection dialog
1045------------------------------------------------------------------------------
1046*Q_ce* Command-line editing
1047
1048|c_<Esc>| <Esc> abandon command-line (if 'wildchar' is
1049 <Esc>, type it twice)
1050
1051|c_CTRL-V| CTRL-V {char} insert {char} literally
1052|c_CTRL-V| CTRL-V {number} enter decimal value of character (up to
1053 three digits)
1054|c_CTRL-K| CTRL-K {char1} {char2}
1055 enter digraph (See |Q_di|)
1056|c_CTRL-R| CTRL-R {0-9a-z"%#:-=}
1057 insert the contents of a register
1058
1059|c_<Left>| <Left>/<Right> cursor left/right
1060|c_<S-Left>| <S-Left>/<S-Right> cursor one word left/right
1061|c_CTRL-B| CTRL-B/CTRL-E cursor to beginning/end of command-line
1062
1063|c_<BS>| <BS> delete the character in front of the cursor
1064|c_<Del>| <Del> delete the character under the cursor
1065|c_CTRL-W| CTRL-W delete the word in front of the cursor
1066|c_CTRL-U| CTRL-U remove all characters
1067
1068|c_<Up>| <Up>/<Down> recall older/newer command-line that starts
1069 with current command
1070|c_<S-Up>| <S-Up>/<S-Down> recall older/newer command-line from history
Bram Moolenaarbc2eada2017-01-02 21:27:47 +01001071|c_CTRL-G| CTRL-G next match when 'incsearch' is active
1072|c_CTRL-T| CTRL-T previous match when 'incsearch' is active
Bram Moolenaar071d4272004-06-13 20:20:40 +00001073|:history| :his[tory] show older command-lines
1074
1075Context-sensitive completion on the command-line:
1076
1077|c_wildchar| 'wildchar' (default: <Tab>)
1078 do completion on the pattern in front of the
Bram Moolenaard04b7502010-07-08 22:27:55 +02001079 cursor; if there are multiple matches,
Bram Moolenaar071d4272004-06-13 20:20:40 +00001080 beep and show the first one; further
Bram Moolenaard04b7502010-07-08 22:27:55 +02001081 'wildchar' will show the next ones
Bram Moolenaar071d4272004-06-13 20:20:40 +00001082|c_CTRL-D| CTRL-D list all names that match the pattern in
1083 front of the cursor
1084|c_CTRL-A| CTRL-A insert all names that match pattern in front
1085 of cursor
1086|c_CTRL-L| CTRL-L insert longest common part of names that
1087 match pattern
1088|c_CTRL-N| CTRL-N after 'wildchar' with multiple matches: go
1089 to next match
1090|c_CTRL-P| CTRL-P after 'wildchar' with multiple matches: go
1091 to previous match
1092------------------------------------------------------------------------------
1093*Q_ra* Ex ranges
1094
1095|:range| , separates two line numbers
1096|:range| ; idem, set cursor to the first line number
1097 before interpreting the second one
1098
1099|:range| {number} an absolute line number
1100|:range| . the current line
1101|:range| $ the last line in the file
1102|:range| % equal to 1,$ (the entire file)
1103|:range| * equal to '<,'> (visual area)
1104|:range| 't position of mark t
1105|:range| /{pattern}[/] the next line where {pattern} matches
1106|:range| ?{pattern}[?] the previous line where {pattern} matches
1107
1108|:range| +[num] add [num] to the preceding line number
1109 (default: 1)
1110|:range| -[num] subtract [num] from the preceding line
1111 number (default: 1)
1112------------------------------------------------------------------------------
1113*Q_ex* Special Ex characters
1114
Bram Moolenaar00154502013-02-13 16:15:55 +01001115|:bar| | separates two commands (not for ":global" and ":!")
Bram Moolenaar071d4272004-06-13 20:20:40 +00001116|:quote| " begins comment
1117
Bram Moolenaar00154502013-02-13 16:15:55 +01001118|:_%| % current file name (only where a file name is expected)
1119|:_#| #[num] alternate file name [num] (only where a file name is
Bram Moolenaar071d4272004-06-13 20:20:40 +00001120 expected)
Bram Moolenaar9028b102010-07-11 16:58:51 +02001121 Note: The next seven are typed literally; these are not special keys!
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +02001122|:<abuf>| <abuf> buffer number, for use in an autocommand (only where a
Bram Moolenaare667c952010-07-05 22:57:59 +02001123 file name is expected)
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +02001124|:<afile>| <afile> file name, for use in an autocommand (only where a
Bram Moolenaare667c952010-07-05 22:57:59 +02001125 file name is expected)
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +02001126|:<amatch>| <amatch> what matched with the pattern, for use in an
Bram Moolenaare667c952010-07-05 22:57:59 +02001127 autocommand (only where a file name is expected)
Bram Moolenaar071d4272004-06-13 20:20:40 +00001128|:<cword>| <cword> word under the cursor (only where a file name is
1129 expected)
1130|:<cWORD>| <cWORD> WORD under the cursor (only where a file name is
1131 expected) (see |WORD|)
1132|:<cfile>| <cfile> file name under the cursor (only where a file name is
1133 expected)
Bram Moolenaar071d4272004-06-13 20:20:40 +00001134|:<sfile>| <sfile> file name of a ":source"d file, within that file (only
1135 where a file name is expected)
1136
1137 After "%", "#", "<cfile>", "<sfile>" or "<afile>"
1138 |::p| :p full path
1139 |::h| :h head (file name removed)
1140 |::t| :t tail (file name only)
1141 |::r| :r root (extension removed)
1142 |::e| :e extension
1143 |::s| :s/{pat}/{repl}/ substitute {pat} with {repl}
1144------------------------------------------------------------------------------
Bram Moolenaar9028b102010-07-11 16:58:51 +02001145*Q_st* Starting Vim
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +00001146
1147|-vim| vim [options] start editing with an empty buffer
1148|-file| vim [options] {file} .. start editing one or more files
1149|--| vim [options] - read file from stdin
1150|-tag| vim [options] -t {tag} edit the file associated with {tag}
1151|-qf| vim [options] -q [fname] start editing in QuickFix mode,
1152 display the first error
1153
1154 Most useful Vim arguments (for full list see |startup-options|)
1155
1156|-gui| -g start GUI (also allows other options)
1157
1158|-+| +[num] put the cursor at line [num] (default: last line)
1159|-+c| +{command} execute {command} after loading the file
1160|-+/| +/{pat} {file} .. put the cursor at the first occurrence of {pat}
1161|-v| -v Vi mode, start ex in Normal mode
1162|-e| -e Ex mode, start vim in Ex mode
1163|-R| -R Read-only mode, implies -n
1164|-m| -m modifications not allowed (resets 'write' option)
1165|-d| -d diff mode |diff|
1166|-b| -b binary mode
1167|-l| -l lisp mode
1168|-A| -A Arabic mode ('arabic' is set)
1169|-F| -F Farsi mode ('fkmap' and 'rightleft' are set)
1170|-H| -H Hebrew mode ('hkmap' and 'rightleft' are set)
1171|-V| -V Verbose, give informative messages
1172|-C| -C Compatible, set the 'compatible' option
1173|-N| -N Nocompatible, reset the 'compatible' option
1174|-r| -r give list of swap files
1175|-r| -r {file} .. recover aborted edit session
1176|-n| -n do not create a swap file
1177|-o| -o [num] open [num] windows (default: one for each file)
1178|-f| -f GUI: foreground process, don't fork
Bram Moolenaar9028b102010-07-11 16:58:51 +02001179 Amiga: do not restart Vim to open a window (for
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +00001180 e.g., mail)
1181|-s| -s {scriptin} first read commands from the file {scriptin}
1182|-w| -w {scriptout} write typed chars to file {scriptout} (append)
1183|-W| -W {scriptout} write typed chars to file {scriptout} (overwrite)
1184|-T| -T {terminal} set terminal name
1185|-d| -d {device} Amiga: open {device} to be used as a console
1186|-u| -u {vimrc} read inits from {vimrc} instead of other inits
1187|-U| -U {gvimrc} idem, for when starting the GUI
1188|-i| -i {viminfo} read info from {viminfo} instead of other files
1189|---| -- end of options, other arguments are file names
1190|--help| --help show list of arguments and exit
1191|--version| --version show version info and exit
Bram Moolenaard04b7502010-07-08 22:27:55 +02001192|--| - read file from stdin
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +00001193------------------------------------------------------------------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +00001194*Q_ed* Editing a file
1195
Bram Moolenaar9028b102010-07-11 16:58:51 +02001196 Without !: Fail if changes have been made to the current buffer.
Bram Moolenaar071d4272004-06-13 20:20:40 +00001197 With !: Discard any changes to the current buffer.
Bram Moolenaard04b7502010-07-08 22:27:55 +02001198|:edit_f| :e[dit][!] {file} edit {file}
Bram Moolenaar00154502013-02-13 16:15:55 +01001199|:edit| :e[dit][!] reload the current file
1200|:enew| :ene[w][!] edit a new, unnamed buffer
Bram Moolenaard04b7502010-07-08 22:27:55 +02001201|:find| :fin[d][!] {file} find {file} in 'path' and edit it
Bram Moolenaar071d4272004-06-13 20:20:40 +00001202
Bram Moolenaar00154502013-02-13 16:15:55 +01001203|CTRL-^| N CTRL-^ edit alternate file N (equivalent to ":e #N")
1204|gf| gf or ]f edit the file whose name is under the cursor
1205|:pwd| :pwd print the current directory name
1206|:cd| :cd [path] change the current directory to [path]
1207|:cd-| :cd - back to previous current directory
1208|:file| :f[ile] print the current file name and the cursor
Bram Moolenaard04b7502010-07-08 22:27:55 +02001209 position
Bram Moolenaar00154502013-02-13 16:15:55 +01001210|:file| :f[ile] {name} set the current file name to {name}
Bram Moolenaard04b7502010-07-08 22:27:55 +02001211|:files| :files show alternate file names
Bram Moolenaar071d4272004-06-13 20:20:40 +00001212------------------------------------------------------------------------------
1213*Q_fl* Using the argument list |argument-list|
1214
Bram Moolenaard04b7502010-07-08 22:27:55 +02001215|:args| :ar[gs] print the argument list, with the current file
1216 in "[]"
1217|:all| :all or :sall open a window for every file in the arg list
1218|:wn| :wn[ext][!] write file and edit next file
1219|:wn| :wn[ext][!] {file} write to {file} and edit next file, unless
1220 {file} exists; With !, overwrite existing
1221 file
1222|:wN| :wN[ext][!] [file] write file and edit previous file
Bram Moolenaar071d4272004-06-13 20:20:40 +00001223
1224 in current window in new window ~
Bram Moolenaar9028b102010-07-11 16:58:51 +02001225|:argument| :argu[ment] N :sar[gument] N edit file N
Bram Moolenaar00154502013-02-13 16:15:55 +01001226|:next| :n[ext] :sn[ext] edit next file
Bram Moolenaar071d4272004-06-13 20:20:40 +00001227|:next_f| :n[ext] {arglist} :sn[ext] {arglist} define new arg list
1228 and edit first file
Bram Moolenaar00154502013-02-13 16:15:55 +01001229|:Next| :N[ext] :sN[ext] edit previous file
Bram Moolenaar9028b102010-07-11 16:58:51 +02001230|:first| :fir[st] :sfir[st] edit first file
Bram Moolenaar00154502013-02-13 16:15:55 +01001231|:last| :la[st] :sla[st] edit last file
Bram Moolenaar071d4272004-06-13 20:20:40 +00001232------------------------------------------------------------------------------
1233*Q_wq* Writing and quitting
1234
Bram Moolenaard04b7502010-07-08 22:27:55 +02001235|:w| :[range]w[rite][!] write to the current file
1236|:w_f| :[range]w[rite] {file} write to {file}, unless it already
1237 exists
1238|:w_f| :[range]w[rite]! {file} write to {file}. Overwrite an existing
1239 file
1240|:w_a| :[range]w[rite][!] >> append to the current file
1241|:w_a| :[range]w[rite][!] >> {file} append to {file}
1242|:w_c| :[range]w[rite] !{cmd} execute {cmd} with [range] lines as
1243 standard input
Bram Moolenaar071d4272004-06-13 20:20:40 +00001244|:up| :[range]up[date][!] write to current file if modified
1245|:wall| :wa[ll][!] write all changed buffers
1246
Bram Moolenaard04b7502010-07-08 22:27:55 +02001247|:q| :q[uit] quit current buffer, unless changes have been
1248 made; Exit Vim when there are no other
Bram Moolenaar071d4272004-06-13 20:20:40 +00001249 non-help buffers
Bram Moolenaard04b7502010-07-08 22:27:55 +02001250|:q| :q[uit]! quit current buffer always, discard any
Bram Moolenaar071d4272004-06-13 20:20:40 +00001251 changes. Exit Vim when there are no other
1252 non-help buffers
Bram Moolenaard04b7502010-07-08 22:27:55 +02001253|:qa| :qa[ll] exit Vim, unless changes have been made
1254|:qa| :qa[ll]! exit Vim always, discard any changes
1255|:cq| :cq quit without writing and return error code
Bram Moolenaar071d4272004-06-13 20:20:40 +00001256
Bram Moolenaard04b7502010-07-08 22:27:55 +02001257|:wq| :wq[!] write the current file and exit
1258|:wq| :wq[!] {file} write to {file} and exit
1259|:xit| :x[it][!] [file] like ":wq" but write only when changes have
Bram Moolenaar071d4272004-06-13 20:20:40 +00001260 been made
Bram Moolenaard04b7502010-07-08 22:27:55 +02001261|ZZ| ZZ same as ":x"
1262|ZQ| ZQ same as ":q!"
Bram Moolenaar071d4272004-06-13 20:20:40 +00001263|:xall| :xa[ll][!] or :wqall[!]
Bram Moolenaard04b7502010-07-08 22:27:55 +02001264 write all changed buffers and exit
Bram Moolenaar071d4272004-06-13 20:20:40 +00001265
Bram Moolenaar9028b102010-07-11 16:58:51 +02001266|:stop| :st[op][!] suspend Vim or start new shell; if 'aw' option
Bram Moolenaard04b7502010-07-08 22:27:55 +02001267 is set and [!] not given write the buffer
1268|CTRL-Z| CTRL-Z same as ":stop"
Bram Moolenaar071d4272004-06-13 20:20:40 +00001269------------------------------------------------------------------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +00001270*Q_ac* Automatic Commands
1271
Bram Moolenaar9028b102010-07-11 16:58:51 +02001272|viminfo-file| read registers, marks, history at startup, save when exiting.
Bram Moolenaar071d4272004-06-13 20:20:40 +00001273
Bram Moolenaar9028b102010-07-11 16:58:51 +02001274|:rviminfo| :rv[iminfo] [file] read info from viminfo file [file]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001275|:rviminfo| :rv[iminfo]! [file] idem, overwrite existing info
Bram Moolenaar9028b102010-07-11 16:58:51 +02001276|:wviminfo| :wv[iminfo] [file] add info to viminfo file [file]
1277|:wviminfo| :wv[iminfo]! [file] write info to viminfo file [file]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001278
1279|modeline| Automatic option setting when editing a file
1280
1281|modeline| vim:{set-arg}: .. In the first and last lines of the
1282 file (see 'ml' option), {set-arg} is
1283 given as an argument to ":set"
1284
1285|autocommand| Automatic execution of commands on certain events.
1286
Bram Moolenaar9028b102010-07-11 16:58:51 +02001287|:autocmd| :au list all autocommands
1288|:autocmd| :au {event} list all autocommands for {event}
1289|:autocmd| :au {event} {pat} list all autocommands for {event}
1290 with {pat}
1291|:autocmd| :au {event} {pat} {cmd} enter new autocommands for {event}
1292 with {pat}
1293|:autocmd| :au! remove all autocommands
1294|:autocmd| :au! {event} remove all autocommands for {event}
1295|:autocmd| :au! * {pat} remove all autocommands for {pat}
1296|:autocmd| :au! {event} {pat} remove all autocommands for {event}
1297 with {pat}
1298|:autocmd| :au! {event} {pat} {cmd} remove all autocommands for {event}
1299 with {pat} and enter new one
Bram Moolenaar071d4272004-06-13 20:20:40 +00001300------------------------------------------------------------------------------
1301*Q_wi* Multi-window commands
1302
Bram Moolenaard04b7502010-07-08 22:27:55 +02001303|CTRL-W_s| CTRL-W s or :split split window into two parts
1304|:split_f| :split {file} split window and edit {file} in one of
Bram Moolenaar071d4272004-06-13 20:20:40 +00001305 them
Bram Moolenaard04b7502010-07-08 22:27:55 +02001306|:vsplit| :vsplit {file} same, but split vertically
1307|:vertical| :vertical {cmd} make {cmd} split vertically
Bram Moolenaar071d4272004-06-13 20:20:40 +00001308
Bram Moolenaard04b7502010-07-08 22:27:55 +02001309|:sfind| :sf[ind] {file} split window, find {file} in 'path'
1310 and edit it
1311|CTRL-W_]| CTRL-W ] split window and jump to tag under
Bram Moolenaar071d4272004-06-13 20:20:40 +00001312 cursor
Bram Moolenaard04b7502010-07-08 22:27:55 +02001313|CTRL-W_f| CTRL-W f split window and edit file name under
Bram Moolenaar071d4272004-06-13 20:20:40 +00001314 the cursor
Bram Moolenaard04b7502010-07-08 22:27:55 +02001315|CTRL-W_^| CTRL-W ^ split window and edit alternate file
1316|CTRL-W_n| CTRL-W n or :new create new empty window
1317|CTRL-W_q| CTRL-W q or :q[uit] quit editing and close window
1318|CTRL-W_c| CTRL-W c or :cl[ose] make buffer hidden and close window
1319|CTRL-W_o| CTRL-W o or :on[ly] make current window only one on the
Bram Moolenaar071d4272004-06-13 20:20:40 +00001320 screen
1321
Bram Moolenaard04b7502010-07-08 22:27:55 +02001322|CTRL-W_j| CTRL-W j move cursor to window below
1323|CTRL-W_k| CTRL-W k move cursor to window above
1324|CTRL-W_CTRL-W| CTRL-W CTRL-W move cursor to window below (wrap)
1325|CTRL-W_W| CTRL-W W move cursor to window above (wrap)
1326|CTRL-W_t| CTRL-W t move cursor to top window
1327|CTRL-W_b| CTRL-W b move cursor to bottom window
1328|CTRL-W_p| CTRL-W p move cursor to previous active window
Bram Moolenaar071d4272004-06-13 20:20:40 +00001329
Bram Moolenaard04b7502010-07-08 22:27:55 +02001330|CTRL-W_r| CTRL-W r rotate windows downwards
1331|CTRL-W_R| CTRL-W R rotate windows upwards
1332|CTRL-W_x| CTRL-W x exchange current window with next one
Bram Moolenaar071d4272004-06-13 20:20:40 +00001333
Bram Moolenaar32efaf62014-11-05 17:02:17 +01001334|CTRL-W_=| CTRL-W = make all windows equal height & width
Bram Moolenaard04b7502010-07-08 22:27:55 +02001335|CTRL-W_-| CTRL-W - decrease current window height
1336|CTRL-W_+| CTRL-W + increase current window height
1337|CTRL-W__| CTRL-W _ set current window height (default:
Bram Moolenaar071d4272004-06-13 20:20:40 +00001338 very high)
Bram Moolenaar32efaf62014-11-05 17:02:17 +01001339
1340|CTRL-W_<| CTRL-W < decrease current window width
1341|CTRL-W_>| CTRL-W > increase current window width
1342|CTRL-W_bar| CTRL-W | set current window width (default:
1343 widest possible)
Bram Moolenaar071d4272004-06-13 20:20:40 +00001344------------------------------------------------------------------------------
1345*Q_bu* Buffer list commands
1346
1347|:buffers| :buffers or :files list all known buffer and file names
1348
1349|:ball| :ball or :sball edit all args/buffers
1350|:unhide| :unhide or :sunhide edit all loaded buffers
1351
1352|:badd| :badd {fname} add file name {fname} to the list
1353|:bunload| :bunload[!] [N] unload buffer [N] from memory
1354|:bdelete| :bdelete[!] [N] unload buffer [N] and delete it from
1355 the buffer list
1356
Bram Moolenaardc8b25c2013-07-06 13:58:22 +02001357 in current window in new window ~
1358|:buffer| :[N]buffer [N] :[N]sbuffer [N] to arg/buf N
1359|:bnext| :[N]bnext [N] :[N]sbnext [N] to Nth next arg/buf
1360|:bNext| :[N]bNext [N] :[N]sbNext [N] to Nth previous arg/buf
1361|:bprevious| :[N]bprevious [N] :[N]sbprevious [N] to Nth previous arg/buf
1362|:bfirst| :bfirst :sbfirst to first arg/buf
1363|:blast| :blast :sblast to last arg/buf
1364|:bmodified| :[N]bmod [N] :[N]sbmod [N] to Nth modified buf
Bram Moolenaar071d4272004-06-13 20:20:40 +00001365------------------------------------------------------------------------------
1366*Q_sy* Syntax Highlighting
1367
1368|:syn-on| :syntax on start using syntax highlighting
1369|:syn-off| :syntax off stop using syntax highlighting
1370
1371|:syn-keyword| :syntax keyword {group-name} {keyword} ..
1372 add a syntax keyword item
1373|:syn-match| :syntax match {group-name} {pattern} ...
1374 add syntax match item
1375|:syn-region| :syntax region {group-name} {pattern} ...
1376 add syntax region item
1377|:syn-sync| :syntax sync [ccomment | lines {N} | ...]
1378 tell syntax how to sync
1379|:syntax| :syntax [list] list current syntax items
1380|:syn-clear| :syntax clear clear all syntax info
1381
1382|:highlight| :highlight clear clear all highlight info
1383|:highlight| :highlight {group-name} {key}={arg} ..
1384 set highlighting for {group-name}
1385
1386|:filetype| :filetype on switch on file type detection, without
1387 syntax highlighting
1388|:filetype| :filetype plugin indent on
1389 switch on file type detection, with
1390 automatic indenting and settings
1391------------------------------------------------------------------------------
1392*Q_gu* GUI commands
1393
1394|:gui| :gui UNIX: start the GUI
1395|:gui| :gui {fname} .. idem, and edit {fname} ..
1396
1397|:menu| :menu list all menus
1398|:menu| :menu {mpath} list menus starting with {mpath}
Bram Moolenaard04b7502010-07-08 22:27:55 +02001399|:menu| :menu {mpath} {rhs} add menu {mpath}, giving {rhs}
Bram Moolenaar071d4272004-06-13 20:20:40 +00001400|:menu| :menu {pri} {mpath} {rhs}
1401 idem, with priorities {pri}
1402|:menu| :menu ToolBar.{name} {rhs}
Bram Moolenaard04b7502010-07-08 22:27:55 +02001403 add toolbar item, giving {rhs}
Bram Moolenaar071d4272004-06-13 20:20:40 +00001404|:tmenu| :tmenu {mpath} {text} add tooltip to menu {mpath}
1405|:unmenu| :unmenu {mpath} remove menu {mpath}
1406------------------------------------------------------------------------------
1407*Q_fo* Folding
1408
1409|'foldmethod'| set foldmethod=manual manual folding
1410 set foldmethod=indent folding by indent
1411 set foldmethod=expr folding by 'foldexpr'
1412 set foldmethod=syntax folding by syntax regions
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +02001413 set foldmethod=marker folding by 'foldmarker'
Bram Moolenaar071d4272004-06-13 20:20:40 +00001414
1415|zf| zf{motion} operator: Define a fold manually
1416|:fold| :{range}fold define a fold for {range} lines
1417|zd| zd delete one fold under the cursor
1418|zD| zD delete all folds under the cursor
1419
1420|zo| zo open one fold under the cursor
1421|zO| zO open all folds under the cursor
1422|zc| zc close one fold under the cursor
1423|zC| zC close all folds under the cursor
1424
1425|zm| zm fold more: decrease 'foldlevel'
1426|zM| zM close all folds: make 'foldlevel' zero
1427|zr| zr reduce folding: increase 'foldlevel'
1428|zR| zR open all folds: make 'foldlevel' max.
1429
1430|zn| zn fold none: reset 'foldenable'
1431|zN| zN fold normal set 'foldenable'
1432|zi| zi invert 'foldenable'
1433
1434 vim:tw=78:ts=8:ft=help:norl: