xref: /vim-8.2.3635/runtime/doc/options.txt (revision 2bf24176)
1*options.txt*	For Vim version 7.4.  Last change: 2015 Nov 23
2
3
4		  VIM REFERENCE MANUAL	  by Bram Moolenaar
5
6
7Options							*options*
8
91. Setting options			|set-option|
102. Automatically setting options	|auto-setting|
113. Options summary			|option-summary|
12
13For an overview of options see help.txt |option-list|.
14
15Vim has a number of internal variables and switches which can be set to
16achieve special effects.  These options come in three forms:
17	boolean		can only be on or off		*boolean* *toggle*
18	number		has a numeric value
19	string		has a string value
20
21==============================================================================
221. Setting options					*set-option* *E764*
23
24							*:se* *:set*
25:se[t]			Show all options that differ from their default value.
26
27:se[t] all		Show all but terminal options.
28
29:se[t] termcap		Show all terminal options.  Note that in the GUI the
30			key codes are not shown, because they are generated
31			internally and can't be changed.  Changing the terminal
32			codes in the GUI is not useful either...
33
34								*E518* *E519*
35:se[t] {option}?	Show value of {option}.
36
37:se[t] {option}		Toggle option: set, switch it on.
38			Number option: show value.
39			String option: show value.
40
41:se[t] no{option}	Toggle option: Reset, switch it off.
42
43							   *:set-!* *:set-inv*
44:se[t] {option}!   or
45:se[t] inv{option}	Toggle option: Invert value. {not in Vi}
46
47				*:set-default* *:set-&* *:set-&vi* *:set-&vim*
48:se[t] {option}&	Reset option to its default value.  May depend on the
49			current value of 'compatible'. {not in Vi}
50:se[t] {option}&vi	Reset option to its Vi default value. {not in Vi}
51:se[t] {option}&vim	Reset option to its Vim default value. {not in Vi}
52
53:se[t] all&		Set all options to their default value.  The values of
54			these options are not changed:
55			  all terminal options, starting with t_
56			  'columns'
57			  'cryptmethod'
58			  'encoding'
59			  'key'
60			  'lines'
61			  'term'
62			  'ttymouse'
63			  'ttytype'
64			Warning: This may have a lot of side effects.
65			{not in Vi}
66
67						*:set-args* *E487* *E521*
68:se[t] {option}={value}		or
69:se[t] {option}:{value}
70			Set string or number option to {value}.
71			For numeric options the value can be given in decimal,
72 			hex (preceded with 0x) or octal (preceded with '0').
73			The old value can be inserted by typing 'wildchar' (by
74			default this is a <Tab> or CTRL-E if 'compatible' is
75			set).  See |cmdline-completion|.
76			White space between {option} and '=' is allowed and
77			will be ignored.  White space between '=' and {value}
78			is not allowed.
79			See |option-backslash| for using white space and
80			backslashes in {value}.
81
82:se[t] {option}+={value}				*:set+=*
83			Add the {value} to a number option, or append the
84			{value} to a string option.  When the option is a
85			comma separated list, a comma is added, unless the
86			value was empty.
87			If the option is a list of flags, superfluous flags
88			are removed.  When adding a flag that was already
89			present the option value doesn't change.
90			Also see |:set-args| above.
91			{not in Vi}
92
93:se[t] {option}^={value}				*:set^=*
94			Multiply the {value} to a number option, or prepend
95			the {value} to a string option.  When the option is a
96			comma separated list, a comma is added, unless the
97			value was empty.
98			Also see |:set-args| above.
99			{not in Vi}
100
101:se[t] {option}-={value}				*:set-=*
102			Subtract the {value} from a number option, or remove
103			the {value} from a string option, if it is there.
104			If the {value} is not found in a string option, there
105			is no error or warning.  When the option is a comma
106			separated list, a comma is deleted, unless the option
107			becomes empty.
108			When the option is a list of flags, {value} must be
109			exactly as they appear in the option.  Remove flags
110			one by one to avoid problems.
111			Also see |:set-args| above.
112			{not in Vi}
113
114The {option} arguments to ":set" may be repeated.  For example: >
115	:set ai nosi sw=3 ts=3
116If you make an error in one of the arguments, an error message will be given
117and the following arguments will be ignored.
118
119							*:set-verbose*
120When 'verbose' is non-zero, displaying an option value will also tell where it
121was last set.  Example: >
122	:verbose set shiftwidth cindent?
123<	  shiftwidth=4 ~
124		  Last set from modeline ~
125	  cindent ~
126		  Last set from /usr/local/share/vim/vim60/ftplugin/c.vim ~
127This is only done when specific option values are requested, not for ":verbose
128set all" or ":verbose set" without an argument.
129When the option was set by hand there is no "Last set" message.
130When the option was set while executing a function, user command or
131autocommand, the script in which it was defined is reported.
132Note that an option may also have been set as a side effect of setting
133'compatible'.
134A few special texts:
135	Last set from modeline ~
136		Option was set in a |modeline|.
137	Last set from --cmd argument ~
138		Option was set with command line argument |--cmd| or +.
139	Last set from -c argument ~
140		Option was set with command line argument |-c|, +, |-S| or
141		|-q|.
142	Last set from environment variable ~
143		Option was set from an environment variable, $VIMINIT,
144		$GVIMINIT or $EXINIT.
145	Last set from error handler ~
146		Option was cleared when evaluating it resulted in an error.
147
148{not available when compiled without the |+eval| feature}
149
150							*:set-termcap* *E522*
151For {option} the form "t_xx" may be used to set a terminal option.  This will
152override the value from the termcap.  You can then use it in a mapping.  If
153the "xx" part contains special characters, use the <t_xx> form: >
154	:set <t_#4>=^[Ot
155This can also be used to translate a special code for a normal key.  For
156example, if Alt-b produces <Esc>b, use this: >
157	:set <M-b>=^[b
158(the ^[ is a real <Esc> here, use CTRL-V <Esc> to enter it)
159The advantage over a mapping is that it works in all situations.
160
161You can define any key codes, e.g.: >
162	:set t_xy=^[foo;
163There is no warning for using a name that isn't recognized.  You can map these
164codes as you like: >
165	:map <t_xy> something
166<								*E846*
167When a key code is not set, it's like it does not exist.  Trying to get its
168value will result in an error: >
169	:set t_kb=
170	:set t_kb
171	E846: Key code not set: t_kb
172
173The t_xx options cannot be set from a |modeline| or in the |sandbox|, for
174security reasons.
175
176The listing from ":set" looks different from Vi.  Long string options are put
177at the end of the list.  The number of options is quite large.  The output of
178"set all" probably does not fit on the screen, causing Vim to give the
179|more-prompt|.
180
181							*option-backslash*
182To include white space in a string option value it has to be preceded with a
183backslash.  To include a backslash you have to use two.  Effectively this
184means that the number of backslashes in an option value is halved (rounded
185down).
186A few examples: >
187   :set tags=tags\ /usr/tags	    results in "tags /usr/tags"
188   :set tags=tags\\,file	    results in "tags\,file"
189   :set tags=tags\\\ file	    results in "tags\ file"
190
191The "|" character separates a ":set" command from a following command.  To
192include the "|" in the option value, use "\|" instead.  This example sets the
193'titlestring' option to "hi|there": >
194   :set titlestring=hi\|there
195This sets the 'titlestring' option to "hi" and 'iconstring' to "there": >
196   :set titlestring=hi|set iconstring=there
197
198Similarly, the double quote character starts a comment.  To include the '"' in
199the option value, use '\"' instead.  This example sets the 'titlestring'
200option to 'hi "there"': >
201   :set titlestring=hi\ \"there\"
202
203For MS-DOS and WIN32 backslashes in file names are mostly not removed.  More
204precise: For options that expect a file name (those where environment
205variables are expanded) a backslash before a normal file name character is not
206removed.  But a backslash before a special character (space, backslash, comma,
207etc.) is used like explained above.
208There is one special situation, when the value starts with "\\": >
209   :set dir=\\machine\path	    results in "\\machine\path"
210   :set dir=\\\\machine\\path	    results in "\\machine\path"
211   :set dir=\\path\\file	    results in "\\path\file" (wrong!)
212For the first one the start is kept, but for the second one the backslashes
213are halved.  This makes sure it works both when you expect backslashes to be
214halved and when you expect the backslashes to be kept.  The third gives a
215result which is probably not what you want.  Avoid it.
216
217				*add-option-flags* *remove-option-flags*
218				*E539* *E550* *E551* *E552*
219Some options are a list of flags.  When you want to add a flag to such an
220option, without changing the existing ones, you can do it like this: >
221   :set guioptions+=a
222Remove a flag from an option like this: >
223   :set guioptions-=a
224This removes the 'a' flag from 'guioptions'.
225Note that you should add or remove one flag at a time.  If 'guioptions' has
226the value "ab", using "set guioptions-=ba" won't work, because the string "ba"
227doesn't appear.
228
229			   *:set_env* *expand-env* *expand-environment-var*
230Environment variables in specific string options will be expanded.  If the
231environment variable exists the '$' and the following environment variable
232name is replaced with its value.  If it does not exist the '$' and the name
233are not modified.  Any non-id character (not a letter, digit or '_') may
234follow the environment variable name.  That character and what follows is
235appended to the value of the environment variable.  Examples: >
236   :set term=$TERM.new
237   :set path=/usr/$INCLUDE,$HOME/include,.
238When adding or removing a string from an option with ":set opt-=val" or ":set
239opt+=val" the expansion is done before the adding or removing.
240
241
242Handling of local options			*local-options*
243
244Some of the options only apply to a window or buffer.  Each window or buffer
245has its own copy of this option, thus can each have their own value.  This
246allows you to set 'list' in one window but not in another.  And set
247'shiftwidth' to 3 in one buffer and 4 in another.
248
249The following explains what happens to these local options in specific
250situations.  You don't really need to know all of this, since Vim mostly uses
251the option values you would expect.  Unfortunately, doing what the user
252expects is a bit complicated...
253
254When splitting a window, the local options are copied to the new window.  Thus
255right after the split the contents of the two windows look the same.
256
257When editing a new buffer, its local option values must be initialized.  Since
258the local options of the current buffer might be specifically for that buffer,
259these are not used.  Instead, for each buffer-local option there also is a
260global value, which is used for new buffers.  With ":set" both the local and
261global value is changed.  With "setlocal" only the local value is changed,
262thus this value is not used when editing a new buffer.
263
264When editing a buffer that has been edited before, the last used window
265options are used again.  If this buffer has been edited in this window, the
266values from back then are used.  Otherwise the values from the window where
267the buffer was edited last are used.
268
269It's possible to set a local window option specifically for a type of buffer.
270When you edit another buffer in the same window, you don't want to keep
271using these local window options.  Therefore Vim keeps a global value of the
272local window options, which is used when editing another buffer.  Each window
273has its own copy of these values.  Thus these are local to the window, but
274global to all buffers in the window.  With this you can do: >
275	:e one
276	:set list
277	:e two
278Now the 'list' option will also be set in "two", since with the ":set list"
279command you have also set the global value. >
280	:set nolist
281	:e one
282	:setlocal list
283	:e two
284Now the 'list' option is not set, because ":set nolist" resets the global
285value, ":setlocal list" only changes the local value and ":e two" gets the
286global value.  Note that if you do this next: >
287	:e one
288You will get back the 'list' value as it was the last time you edited "one".
289The options local to a window are remembered for each buffer.  This also
290happens when the buffer is not loaded, but they are lost when the buffer is
291wiped out |:bwipe|.
292
293							*:setl* *:setlocal*
294:setl[ocal] ...		Like ":set" but set only the value local to the
295			current buffer or window.  Not all options have a
296			local value.  If the option does not have a local
297			value the global value is set.
298			With the "all" argument: display local values for all
299			local options.
300			Without argument: Display local values for all local
301			options which are different from the default.
302			When displaying a specific local option, show the
303			local value.  For a global/local boolean option, when
304			the global value is being used, "--" is displayed
305			before the option name.
306			For a global option the global value is
307			shown (but that might change in the future).
308			{not in Vi}
309
310:setl[ocal] {option}<	Set the local value of {option} to its global value by
311			copying the value.
312			{not in Vi}
313
314:se[t] {option}<	For |global-local| options: Remove the local value of
315			{option}, so that the global value will be used.
316			{not in Vi}
317
318							*:setg* *:setglobal*
319:setg[lobal] ...	Like ":set" but set only the global value for a local
320			option without changing the local value.
321			When displaying an option, the global value is shown.
322			With the "all" argument: display global values for all
323			local options.
324			Without argument: display global values for all local
325			options which are different from the default.
326			{not in Vi}
327
328For buffer-local and window-local options:
329	Command		 global value	    local value ~
330      :set option=value	     set		set
331 :setlocal option=value	      -			set
332:setglobal option=value	     set		 -
333      :set option?	      -		       display
334 :setlocal option?	      -		       display
335:setglobal option?	    display		 -
336
337
338Global options with a local value			*global-local*
339
340Options are global when you mostly use one value for all buffers and windows.
341For some global options it's useful to sometimes have a different local value.
342You can set the local value with ":setlocal".  That buffer or window will then
343use the local value, while other buffers and windows continue using the global
344value.
345
346For example, you have two windows, both on C source code.  They use the global
347'makeprg' option.  If you do this in one of the two windows: >
348	:set makeprg=gmake
349then the other window will switch to the same value.  There is no need to set
350the 'makeprg' option in the other C source window too.
351However, if you start editing a Perl file in a new window, you want to use
352another 'makeprg' for it, without changing the value used for the C source
353files.  You use this command: >
354	:setlocal makeprg=perlmake
355You can switch back to using the global value by making the local value empty: >
356	:setlocal makeprg=
357This only works for a string option.  For a boolean option you need to use the
358"<" flag, like this: >
359	:setlocal autoread<
360Note that for non-boolean options using "<" copies the global value to the
361local value, it doesn't switch back to using the global value (that matters
362when the global value changes later).  You can also use: >
363	:set path<
364This will make the local value of 'path' empty, so that the global value is
365used.  Thus it does the same as: >
366	:setlocal path=
367Note: In the future more global options can be made global-local.  Using
368":setlocal" on a global option might work differently then.
369
370
371Setting the filetype
372
373:setf[iletype] {filetype}			*:setf* *:setfiletype*
374			Set the 'filetype' option to {filetype}, but only if
375			not done yet in a sequence of (nested) autocommands.
376			This is short for: >
377				:if !did_filetype()
378				:  setlocal filetype={filetype}
379				:endif
380<			This command is used in a filetype.vim file to avoid
381			setting the 'filetype' option twice, causing different
382			settings and syntax files to be loaded.
383			{not in Vi}
384
385				*option-window* *optwin*
386:bro[wse] se[t]			*:set-browse* *:browse-set* *:opt* *:options*
387:opt[ions]		Open a window for viewing and setting all options.
388			Options are grouped by function.
389			Offers short help for each option.  Hit <CR> on the
390			short help to open a help window with more help for
391			the option.
392			Modify the value of the option and hit <CR> on the
393			"set" line to set the new value.  For window and
394			buffer specific options, the last accessed window is
395			used to set the option value in, unless this is a help
396			window, in which case the window below help window is
397			used (skipping the option-window).
398			{not available when compiled without the |+eval| or
399			|+autocmd| features}
400
401								*$HOME*
402Using "~" is like using "$HOME", but it is only recognized at the start of an
403option and after a space or comma.
404
405On Unix systems "~user" can be used too.  It is replaced by the home directory
406of user "user".  Example: >
407    :set path=~mool/include,/usr/include,.
408
409On Unix systems the form "${HOME}" can be used too.  The name between {} can
410contain non-id characters then.  Note that if you want to use this for the
411"gf" command, you need to add the '{' and '}' characters to 'isfname'.
412
413On MS-Windows, if $HOME is not defined as an environment variable, then
414at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
415
416NOTE: expanding environment variables and "~/" is only done with the ":set"
417command, not when assigning a value to an option with ":let".
418
419
420Note the maximum length of an expanded option is limited.  How much depends on
421the system, mostly it is something like 256 or 1024 characters.
422
423							*:fix* *:fixdel*
424:fix[del]		Set the value of 't_kD':
425				't_kb' is     't_kD' becomes	~
426				  CTRL-?	CTRL-H
427				not CTRL-?	CTRL-?
428
429			(CTRL-? is 0177 octal, 0x7f hex) {not in Vi}
430
431			If your delete key terminal code is wrong, but the
432			code for backspace is alright, you can put this in
433			your .vimrc: >
434				:fixdel
435<			This works no matter what the actual code for
436			backspace is.
437
438			If the backspace key terminal code is wrong you can
439			use this: >
440				:if &term == "termname"
441				:  set t_kb=^V<BS>
442				:  fixdel
443				:endif
444<			Where "^V" is CTRL-V and "<BS>" is the backspace key
445			(don't type four characters!).  Replace "termname"
446			with your terminal name.
447
448			If your <Delete> key sends a strange key sequence (not
449			CTRL-? or CTRL-H) you cannot use ":fixdel".  Then use: >
450				:if &term == "termname"
451				:  set t_kD=^V<Delete>
452				:endif
453<			Where "^V" is CTRL-V and "<Delete>" is the delete key
454			(don't type eight characters!).  Replace "termname"
455			with your terminal name.
456
457							*Linux-backspace*
458			Note about Linux: By default the backspace key
459			produces CTRL-?, which is wrong.  You can fix it by
460			putting this line in your rc.local: >
461				echo "keycode 14 = BackSpace" | loadkeys
462<
463							*NetBSD-backspace*
464			Note about NetBSD: If your backspace doesn't produce
465			the right code, try this: >
466				xmodmap -e "keycode 22 = BackSpace"
467<			If this works, add this in your .Xmodmap file: >
468				keysym 22 = BackSpace
469<			You need to restart for this to take effect.
470
471==============================================================================
4722. Automatically setting options			*auto-setting*
473
474Besides changing options with the ":set" command, there are three alternatives
475to set options automatically for one or more files:
476
4771. When starting Vim initializations are read from various places.  See
478   |initialization|.  Most of them are performed for all editing sessions,
479   and some of them depend on the directory where Vim is started.
480   You can create an initialization file with |:mkvimrc|, |:mkview| and
481   |:mksession|.
4822. If you start editing a new file, the automatic commands are executed.
483   This can be used to set options for files matching a particular pattern and
484   many other things.  See |autocommand|.
4853. If you start editing a new file, and the 'modeline' option is on, a
486   number of lines at the beginning and end of the file are checked for
487   modelines.  This is explained here.
488
489					*modeline* *vim:* *vi:* *ex:* *E520*
490There are two forms of modelines.  The first form:
491	[text]{white}{vi:|vim:|ex:}[white]{options}
492
493[text]			any text or empty
494{white}			at least one blank character (<Space> or <Tab>)
495{vi:|vim:|ex:}		the string "vi:", "vim:" or "ex:"
496[white]			optional white space
497{options}		a list of option settings, separated with white space
498			or ':', where each part between ':' is the argument
499			for a ":set" command (can be empty)
500
501Examples:
502   vi:noai:sw=3 ts=6 ~
503   vim: tw=77 ~
504
505The second form (this is compatible with some versions of Vi):
506
507	[text]{white}{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text]
508
509[text]			any text or empty
510{white}			at least one blank character (<Space> or <Tab>)
511{vi:|vim:|Vim:|ex:}	the string "vi:", "vim:", "Vim:" or "ex:"
512[white]			optional white space
513se[t]			the string "set " or "se " (note the space); When
514			"Vim" is used it must be "set".
515{options}		a list of options, separated with white space, which
516			is the argument for a ":set" command
517:			a colon
518[text]			any text or empty
519
520Examples:
521   /* vim: set ai tw=75: */ ~
522   /* Vim: set ai tw=75: */ ~
523
524The white space before {vi:|vim:|Vim:|ex:} is required.  This minimizes the
525chance that a normal word like "lex:" is caught.  There is one exception:
526"vi:" and "vim:" can also be at the start of the line (for compatibility with
527version 3.0).  Using "ex:" at the start of the line will be ignored (this
528could be short for "example:").
529
530							*modeline-local*
531The options are set like with ":setlocal": The new value only applies to the
532buffer and window that contain the file.  Although it's possible to set global
533options from a modeline, this is unusual.  If you have two windows open and
534the files in it set the same global option to a different value, the result
535depends on which one was opened last.
536
537When editing a file that was already loaded, only the window-local options
538from the modeline are used.  Thus if you manually changed a buffer-local
539option after opening the file, it won't be changed if you edit the same buffer
540in another window.  But window-local options will be set.
541
542							*modeline-version*
543If the modeline is only to be used for some versions of Vim, the version
544number can be specified where "vim:" or "Vim:" is used:
545	vim{vers}:	version {vers} or later
546	vim<{vers}:	version before {vers}
547	vim={vers}:	version {vers}
548	vim>{vers}:	version after {vers}
549{vers} is 700 for Vim 7.0 (hundred times the major version plus minor).
550For example, to use a modeline only for Vim 7.0:
551	/* vim700: set foldmethod=marker */ ~
552To use a modeline for Vim after version 7.2:
553	/* vim>702: set cole=2: */ ~
554There can be no blanks between "vim" and the ":".
555
556
557The number of lines that are checked can be set with the 'modelines' option.
558If 'modeline' is off or 'modelines' is 0 no lines are checked.
559
560Note that for the first form all of the rest of the line is used, thus a line
561like:
562   /* vi:ts=4: */ ~
563will give an error message for the trailing "*/".  This line is OK:
564   /* vi:set ts=4: */ ~
565
566If an error is detected the rest of the line is skipped.
567
568If you want to include a ':' in a set command precede it with a '\'.  The
569backslash in front of the ':' will be removed.  Example:
570   /* vi:set dir=c\:\tmp: */ ~
571This sets the 'dir' option to "c:\tmp".  Only a single backslash before the
572':' is removed.  Thus to include "\:" you have to specify "\\:".
573
574No other commands than "set" are supported, for security reasons (somebody
575might create a Trojan horse text file with modelines).  And not all options
576can be set.  For some options a flag is set, so that when it's used the
577|sandbox| is effective.  Still, there is always a small risk that a modeline
578causes trouble.  E.g., when some joker sets 'textwidth' to 5 all your lines
579are wrapped unexpectedly.  So disable modelines before editing untrusted text.
580The mail ftplugin does this, for example.
581
582Hint: If you would like to do something else than setting an option, you could
583define an autocommand that checks the file for a specific string.  For
584example: >
585	au BufReadPost * if getline(1) =~ "VAR" | call SetVar() | endif
586And define a function SetVar() that does something with the line containing
587"VAR".
588
589==============================================================================
5903. Options summary					*option-summary*
591
592In the list below all the options are mentioned with their full name and with
593an abbreviation if there is one.  Both forms may be used.
594
595In this document when a boolean option is "set" that means that ":set option"
596is entered.  When an option is "reset", ":set nooption" is used.
597
598For some options there are two default values: The "Vim default", which is
599used when 'compatible' is not set, and the "Vi default", which is used when
600'compatible' is set.
601
602Most options are the same in all windows and buffers.  There are a few that
603are specific to how the text is presented in a window.  These can be set to a
604different value in each window.  For example the 'list' option can be set in
605one window and reset in another for the same text, giving both types of view
606at the same time.  There are a few options that are specific to a certain
607file.  These can have a different value for each file or buffer.  For example
608the 'textwidth' option can be 78 for a normal text file and 0 for a C
609program.
610
611	global			one option for all buffers and windows
612	local to window		each window has its own copy of this option
613	local to buffer		each buffer has its own copy of this option
614
615When creating a new window the option values from the currently active window
616are used as a default value for the window-specific options.  For the
617buffer-specific options this depends on the 's' and 'S' flags in the
618'cpoptions' option.  If 's' is included (which is the default) the values for
619buffer options are copied from the currently active buffer when a buffer is
620first entered.  If 'S' is present the options are copied each time the buffer
621is entered, this is almost like having global options.  If 's' and 'S' are not
622present, the options are copied from the currently active buffer when the
623buffer is created.
624
625Hidden options						*hidden-options*
626
627Not all options are supported in all versions.  This depends on the supported
628features and sometimes on the system.  A remark about this is in curly braces
629below.  When an option is not supported it may still be set without getting an
630error, this is called a hidden option.  You can't get the value of a hidden
631option though, it is not stored.
632
633To test if option "foo" can be used with ":set" use something like this: >
634	if exists('&foo')
635This also returns true for a hidden option.  To test if option "foo" is really
636supported use something like this: >
637	if exists('+foo')
638<
639							*E355*
640A jump table for the options with a short description can be found at |Q_op|.
641
642					*'aleph'* *'al'* *aleph* *Aleph*
643'aleph' 'al'		number	(default 128 for MS-DOS, 224 otherwise)
644			global
645			{not in Vi}
646			{only available when compiled with the |+rightleft|
647			feature}
648	The ASCII code for the first letter of the Hebrew alphabet.  The
649	routine that maps the keyboard in Hebrew mode, both in Insert mode
650	(when hkmap is set) and on the command-line (when hitting CTRL-_)
651	outputs the Hebrew characters in the range [aleph..aleph+26].
652	aleph=128 applies to PC code, and aleph=224 applies to ISO 8859-8.
653	See |rileft.txt|.
654
655			*'allowrevins'* *'ari'* *'noallowrevins'* *'noari'*
656'allowrevins' 'ari'	boolean	(default off)
657			global
658			{not in Vi}
659			{only available when compiled with the |+rightleft|
660			feature}
661	Allow CTRL-_ in Insert and Command-line mode.  This is default off, to
662	avoid that users that accidentally type CTRL-_ instead of SHIFT-_ get
663	into reverse Insert mode, and don't know how to get out.  See
664	'revins'.
665	NOTE: This option is reset when 'compatible' is set.
666
667			 *'altkeymap'* *'akm'* *'noaltkeymap'* *'noakm'*
668'altkeymap' 'akm'	boolean (default off)
669			global
670			{not in Vi}
671			{only available when compiled with the |+farsi|
672			feature}
673	When on, the second language is Farsi.  In editing mode CTRL-_ toggles
674	the keyboard map between Farsi and English, when 'allowrevins' set.
675
676	When off, the keyboard map toggles between Hebrew and English.  This
677	is useful to start the Vim in native mode i.e. English (left-to-right
678	mode) and have default second language Farsi or Hebrew (right-to-left
679	mode).  See |farsi.txt|.
680
681						*'ambiwidth'* *'ambw'*
682'ambiwidth' 'ambw'	string (default: "single")
683			global
684			{not in Vi}
685			{only available when compiled with the |+multi_byte|
686			feature}
687	Only effective when 'encoding' is "utf-8" or another Unicode encoding.
688	Tells Vim what to do with characters with East Asian Width Class
689	Ambiguous (such as Euro, Registered Sign, Copyright Sign, Greek
690	letters, Cyrillic letters).
691
692	There are currently two possible values:
693	"single":	Use the same width as characters in US-ASCII.  This is
694			expected by most users.
695	"double":	Use twice the width of ASCII characters.
696							*E834* *E835*
697	The value "double" cannot be used if 'listchars' or 'fillchars'
698	contains a character that would be double width.
699
700	There are a number of CJK fonts for which the width of glyphs for
701	those characters are solely based on how many octets they take in
702	legacy/traditional CJK encodings.  In those encodings, Euro,
703	Registered sign, Greek/Cyrillic letters are represented by two octets,
704	therefore those fonts have "wide" glyphs for them.  This is also
705	true of some line drawing characters used to make tables in text
706	file.  Therefore, when a CJK font is used for GUI Vim or
707	Vim is running inside a terminal (emulators) that uses a CJK font
708	(or Vim is run inside an xterm invoked with "-cjkwidth" option.),
709	this option should be set to "double" to match the width perceived
710	by Vim with the width of glyphs in the font.  Perhaps it also has
711	to be set to "double" under CJK Windows 9x/ME or Windows 2k/XP
712	when the system locale is set to one of CJK locales.  See Unicode
713	Standard Annex #11 (http://www.unicode.org/reports/tr11).
714
715	Vim may set this option automatically at startup time when Vim is
716	compiled with the |+termresponse| feature and if |t_u7| is set to the
717	escape sequence to request cursor position report.
718
719			*'antialias'* *'anti'* *'noantialias'* *'noanti'*
720'antialias' 'anti'	boolean (default: off)
721			global
722			{not in Vi}
723			{only available when compiled with GUI enabled
724			on Mac OS X}
725	This option only has an effect in the GUI version of Vim on Mac OS X
726	v10.2 or later.  When on, Vim will use smooth ("antialiased") fonts,
727	which can be easier to read at certain sizes on certain displays.
728	Setting this option can sometimes cause problems if 'guifont' is set
729	to its default (empty string).
730
731			*'autochdir'* *'acd'* *'noautochdir'* *'noacd'*
732'autochdir' 'acd'	boolean (default off)
733			global
734			{not in Vi}
735			{only available when compiled with it, use
736			exists("+autochdir") to check}
737	When on, Vim will change the current working directory whenever you
738	open a file, switch buffers, delete a buffer or open/close a window.
739	It will change to the directory containing the file which was opened
740	or selected.
741	Note: When this option is on some plugins may not work.
742
743				*'arabic'* *'arab'* *'noarabic'* *'noarab'*
744'arabic' 'arab'		boolean (default off)
745			local to window
746			{not in Vi}
747			{only available when compiled with the |+arabic|
748			feature}
749	This option can be set to start editing Arabic text.
750	Setting this option will:
751	- Set the 'rightleft' option, unless 'termbidi' is set.
752	- Set the 'arabicshape' option, unless 'termbidi' is set.
753	- Set the 'keymap' option to "arabic"; in Insert mode CTRL-^ toggles
754	  between typing English and Arabic key mapping.
755	- Set the 'delcombine' option
756	Note that 'encoding' must be "utf-8" for working with Arabic text.
757
758	Resetting this option will:
759	- Reset the 'rightleft' option.
760	- Disable the use of 'keymap' (without changing its value).
761	Note that 'arabicshape' and 'delcombine' are not reset (it is a global
762	option).
763	Also see |arabic.txt|.
764
765					*'arabicshape'* *'arshape'*
766					*'noarabicshape'* *'noarshape'*
767'arabicshape' 'arshape'	boolean (default on)
768			global
769			{not in Vi}
770			{only available when compiled with the |+arabic|
771			feature}
772	When on and 'termbidi' is off, the required visual character
773	corrections that need to take place for displaying the Arabic language
774	take effect.  Shaping, in essence, gets enabled; the term is a broad
775	one which encompasses:
776	  a) the changing/morphing of characters based on their location
777	     within a word (initial, medial, final and stand-alone).
778	  b) the enabling of the ability to compose characters
779	  c) the enabling of the required combining of some characters
780	When disabled the display shows each character's true stand-alone
781	form.
782	Arabic is a complex language which requires other settings, for
783	further details see |arabic.txt|.
784
785			*'autoindent'* *'ai'* *'noautoindent'* *'noai'*
786'autoindent' 'ai'	boolean	(default off)
787			local to buffer
788	Copy indent from current line when starting a new line (typing <CR>
789	in Insert mode or when using the "o" or "O" command).  If you do not
790	type anything on the new line except <BS> or CTRL-D and then type
791	<Esc>, CTRL-O or <CR>, the indent is deleted again.  Moving the cursor
792	to another line has the same effect, unless the 'I' flag is included
793	in 'cpoptions'.
794	When autoindent is on, formatting (with the "gq" command or when you
795	reach 'textwidth' in Insert mode) uses the indentation of the first
796	line.
797	When 'smartindent' or 'cindent' is on the indent is changed in
798	a different way.
799	The 'autoindent' option is reset when the 'paste' option is set and
800	restored when 'paste' is reset.
801	{small difference from Vi: After the indent is deleted when typing
802	<Esc> or <CR>, the cursor position when moving up or down is after the
803	deleted indent; Vi puts the cursor somewhere in the deleted indent}.
804
805				 *'autoread'* *'ar'* *'noautoread'* *'noar'*
806'autoread' 'ar'		boolean	(default off)
807			global or local to buffer |global-local|
808			{not in Vi}
809	When a file has been detected to have been changed outside of Vim and
810	it has not been changed inside of Vim, automatically read it again.
811	When the file has been deleted this is not done.  |timestamp|
812	If this option has a local value, use this command to switch back to
813	using the global value: >
814		:set autoread<
815<
816				 *'autowrite'* *'aw'* *'noautowrite'* *'noaw'*
817'autowrite' 'aw'	boolean	(default off)
818			global
819	Write the contents of the file, if it has been modified, on each
820	:next, :rewind, :last, :first, :previous, :stop, :suspend, :tag, :!,
821	:make, CTRL-] and CTRL-^ command; and when a :buffer, CTRL-O, CTRL-I,
822	'{A-Z0-9}, or `{A-Z0-9} command takes one to another file.
823	Note that for some commands the 'autowrite' option is not used, see
824	'autowriteall' for that.
825
826			 *'autowriteall'* *'awa'* *'noautowriteall'* *'noawa'*
827'autowriteall' 'awa'	boolean	(default off)
828			global
829			{not in Vi}
830	Like 'autowrite', but also used for commands ":edit", ":enew", ":quit",
831	":qall", ":exit", ":xit", ":recover" and closing the Vim window.
832	Setting this option also implies that Vim behaves like 'autowrite' has
833	been set.
834
835							*'background'* *'bg'*
836'background' 'bg'	string	(default "dark" or "light", see below)
837			global
838			{not in Vi}
839	When set to "dark", Vim will try to use colors that look good on a
840	dark background.  When set to "light", Vim will try to use colors that
841	look good on a light background.  Any other value is illegal.
842	Vim tries to set the default value according to the terminal used.
843	This will not always be correct.
844	Setting this option does not change the background color, it tells Vim
845	what the background color looks like.  For changing the background
846	color, see |:hi-normal|.
847
848	When 'background' is set Vim will adjust the default color groups for
849	the new value.  But the colors used for syntax highlighting will not
850	change.					*g:colors_name*
851	When a color scheme is loaded (the "g:colors_name" variable is set)
852	setting 'background' will cause the color scheme to be reloaded.  If
853	the color scheme adjusts to the value of 'background' this will work.
854	However, if the color scheme sets 'background' itself the effect may
855	be undone.  First delete the "g:colors_name" variable when needed.
856
857	When setting 'background' to the default value with: >
858		:set background&
859<	Vim will guess the value.  In the GUI this should work correctly,
860	in other cases Vim might not be able to guess the right value.
861
862	When starting the GUI, the default value for 'background' will be
863	"light".  When the value is not set in the .gvimrc, and Vim detects
864	that the background is actually quite dark, 'background' is set to
865	"dark".  But this happens only AFTER the .gvimrc file has been read
866	(because the window needs to be opened to find the actual background
867	color).  To get around this, force the GUI window to be opened by
868	putting a ":gui" command in the .gvimrc file, before where the value
869	of 'background' is used (e.g., before ":syntax on").
870
871	For MS-DOS, Windows and OS/2 the default is "dark".
872	For other systems "dark" is used when 'term' is "linux",
873	"screen.linux", "cygwin" or "putty", or $COLORFGBG suggests a dark
874	background.  Otherwise the default is "light".
875
876	Normally this option would be set in the .vimrc file.  Possibly
877	depending on the terminal name.  Example: >
878		:if &term == "pcterm"
879		:  set background=dark
880		:endif
881<	When this option is set, the default settings for the highlight groups
882	will change.  To use other settings, place ":highlight" commands AFTER
883	the setting of the 'background' option.
884	This option is also used in the "$VIMRUNTIME/syntax/syntax.vim" file
885	to select the colors for syntax highlighting.  After changing this
886	option, you must load syntax.vim again to see the result.  This can be
887	done with ":syntax on".
888
889							*'backspace'* *'bs'*
890'backspace' 'bs'	string	(default "")
891			global
892			{not in Vi}
893	Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert
894	mode.  This is a list of items, separated by commas.  Each item allows
895	a way to backspace over something:
896	value	effect	~
897	indent	allow backspacing over autoindent
898	eol	allow backspacing over line breaks (join lines)
899	start	allow backspacing over the start of insert; CTRL-W and CTRL-U
900		stop once at the start of insert.
901
902	When the value is empty, Vi compatible backspacing is used.
903
904	For backwards compatibility with version 5.4 and earlier:
905	value	effect	~
906	  0	same as ":set backspace=" (Vi compatible)
907	  1	same as ":set backspace=indent,eol"
908	  2	same as ":set backspace=indent,eol,start"
909
910	See |:fixdel| if your <BS> or <Del> key does not do what you want.
911	NOTE: This option is set to "" when 'compatible' is set.
912
913				*'backup'* *'bk'* *'nobackup'* *'nobk'*
914'backup' 'bk'		boolean	(default off)
915			global
916			{not in Vi}
917	Make a backup before overwriting a file.  Leave it around after the
918	file has been successfully written.  If you do not want to keep the
919	backup file, but you do want a backup while the file is being
920	written, reset this option and set the 'writebackup' option (this is
921	the default).  If you do not want a backup file at all reset both
922	options (use this if your file system is almost full).  See the
923	|backup-table| for more explanations.
924	When the 'backupskip' pattern matches, a backup is not made anyway.
925	When 'patchmode' is set, the backup may be renamed to become the
926	oldest version of a file.
927	NOTE: This option is reset when 'compatible' is set.
928
929						*'backupcopy'* *'bkc'*
930'backupcopy' 'bkc'	string	(Vi default for Unix: "yes", otherwise: "auto")
931			global or local to buffer |global-local|
932			{not in Vi}
933	When writing a file and a backup is made, this option tells how it's
934	done.  This is a comma separated list of words.
935
936	The main values are:
937	"yes"	make a copy of the file and overwrite the original one
938	"no"	rename the file and write a new one
939	"auto"	one of the previous, what works best
940
941	Extra values that can be combined with the ones above are:
942	"breaksymlink"	always break symlinks when writing
943	"breakhardlink"	always break hardlinks when writing
944
945	Making a copy and overwriting the original file:
946	- Takes extra time to copy the file.
947	+ When the file has special attributes, is a (hard/symbolic) link or
948	  has a resource fork, all this is preserved.
949	- When the file is a link the backup will have the name of the link,
950	  not of the real file.
951
952	Renaming the file and writing a new one:
953	+ It's fast.
954	- Sometimes not all attributes of the file can be copied to the new
955	  file.
956	- When the file is a link the new file will not be a link.
957
958	The "auto" value is the middle way: When Vim sees that renaming file
959	is possible without side effects (the attributes can be passed on and
960	the file is not a link) that is used.  When problems are expected, a
961	copy will be made.
962
963	The "breaksymlink" and "breakhardlink" values can be used in
964	combination with any of "yes", "no" and "auto".  When included, they
965	force Vim to always break either symbolic or hard links by doing
966	exactly what the "no" option does, renaming the original file to
967	become the backup and writing a new file in its place.  This can be
968	useful for example in source trees where all the files are symbolic or
969	hard links and any changes should stay in the local source tree, not
970	be propagated back to the original source.
971							*crontab*
972	One situation where "no" and "auto" will cause problems: A program
973	that opens a file, invokes Vim to edit that file, and then tests if
974	the open file was changed (through the file descriptor) will check the
975	backup file instead of the newly created file.  "crontab -e" is an
976	example.
977
978	When a copy is made, the original file is truncated and then filled
979	with the new text.  This means that protection bits, owner and
980	symbolic links of the original file are unmodified.  The backup file
981	however, is a new file, owned by the user who edited the file.  The
982	group of the backup is set to the group of the original file.  If this
983	fails, the protection bits for the group are made the same as for
984	others.
985
986	When the file is renamed this is the other way around: The backup has
987	the same attributes of the original file, and the newly written file
988	is owned by the current user.  When the file was a (hard/symbolic)
989	link, the new file will not!  That's why the "auto" value doesn't
990	rename when the file is a link.  The owner and group of the newly
991	written file will be set to the same ones as the original file, but
992	the system may refuse to do this.  In that case the "auto" value will
993	again not rename the file.
994
995						*'backupdir'* *'bdir'*
996'backupdir' 'bdir'	string	(default for Amiga: ".,t:",
997				 for MS-DOS and Win32: ".,$TEMP,c:/tmp,c:/temp"
998				 for Unix: ".,~/tmp,~/")
999			global
1000			{not in Vi}
1001	List of directories for the backup file, separated with commas.
1002	- The backup file will be created in the first directory in the list
1003	  where this is possible.  The directory must exist, Vim will not
1004	  create it for you.
1005	- Empty means that no backup file will be created ( 'patchmode' is
1006	  impossible!).  Writing may fail because of this.
1007	- A directory "." means to put the backup file in the same directory
1008	  as the edited file.
1009	- A directory starting with "./" (or ".\" for MS-DOS et al.) means to
1010	  put the backup file relative to where the edited file is.  The
1011	  leading "." is replaced with the path name of the edited file.
1012	  ("." inside a directory name has no special meaning).
1013	- Spaces after the comma are ignored, other spaces are considered part
1014	  of the directory name.  To have a space at the start of a directory
1015	  name, precede it with a backslash.
1016	- To include a comma in a directory name precede it with a backslash.
1017	- A directory name may end in an '/'.
1018	- Environment variables are expanded |:set_env|.
1019	- Careful with '\' characters, type one before a space, type two to
1020	  get one in the option (see |option-backslash|), for example: >
1021	    :set bdir=c:\\tmp,\ dir\\,with\\,commas,\\\ dir\ with\ spaces
1022<	- For backwards compatibility with Vim version 3.0 a '>' at the start
1023	  of the option is removed.
1024	See also 'backup' and 'writebackup' options.
1025	If you want to hide your backup files on Unix, consider this value: >
1026		:set backupdir=./.backup,~/.backup,.,/tmp
1027<	You must create a ".backup" directory in each directory and in your
1028	home directory for this to work properly.
1029	The use of |:set+=| and |:set-=| is preferred when adding or removing
1030	directories from the list.  This avoids problems when a future version
1031	uses another default.
1032	This option cannot be set from a |modeline| or in the |sandbox|, for
1033	security reasons.
1034
1035						*'backupext'* *'bex'* *E589*
1036'backupext' 'bex'	string	(default "~", for VMS: "_")
1037			global
1038			{not in Vi}
1039	String which is appended to a file name to make the name of the
1040	backup file.  The default is quite unusual, because this avoids
1041	accidentally overwriting existing files with a backup file.  You might
1042	prefer using ".bak", but make sure that you don't have files with
1043	".bak" that you want to keep.
1044	Only normal file name characters can be used, "/\*?[|<>" are illegal.
1045
1046	If you like to keep a lot of backups, you could use a BufWritePre
1047	autocommand to change 'backupext' just before writing the file to
1048	include a timestamp. >
1049		:au BufWritePre * let &bex = '-' . strftime("%Y%b%d%X") . '~'
1050<	Use 'backupdir' to put the backup in a different directory.
1051
1052						*'backupskip'* *'bsk'*
1053'backupskip' 'bsk'	string	(default: "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*")
1054			global
1055			{not in Vi}
1056			{not available when compiled without the |+wildignore|
1057			feature}
1058	A list of file patterns.  When one of the patterns matches with the
1059	name of the file which is written, no backup file is created.  Both
1060	the specified file name and the full path name of the file are used.
1061	The pattern is used like with |:autocmd|, see |autocmd-patterns|.
1062	Watch out for special characters, see |option-backslash|.
1063	When $TMPDIR, $TMP or $TEMP is not defined, it is not used for the
1064	default value.  "/tmp/*" is only used for Unix.
1065
1066	WARNING: Not having a backup file means that when Vim fails to write
1067	your buffer correctly and then, for whatever reason, Vim exits, you
1068	lose both the original file and what you were writing.  Only disable
1069	backups if you don't care about losing the file.
1070
1071	Note that environment variables are not expanded.  If you want to use
1072	$HOME you must expand it explicitly, e.g.: >
1073		:let backupskip = escape(expand('$HOME'), '\') . '/tmp/*'
1074
1075<	Note that the default also makes sure that "crontab -e" works (when a
1076	backup would be made by renaming the original file crontab won't see
1077	the newly created file).  Also see 'backupcopy' and |crontab|.
1078
1079						*'balloondelay'* *'bdlay'*
1080'balloondelay' 'bdlay'	number	(default: 600)
1081			global
1082			{not in Vi}
1083			{only available when compiled with the |+balloon_eval|
1084			feature}
1085	Delay in milliseconds before a balloon may pop up.  See |balloon-eval|.
1086
1087		       *'ballooneval'* *'beval'* *'noballooneval'* *'nobeval'*
1088'ballooneval' 'beval'	boolean	(default off)
1089			global
1090			{not in Vi}
1091			{only available when compiled with the |+balloon_eval|
1092			feature}
1093	Switch on the |balloon-eval| functionality.
1094
1095						     *'balloonexpr'* *'bexpr'*
1096'balloonexpr' 'bexpr'	string	(default "")
1097			global or local to buffer |global-local|
1098			{not in Vi}
1099			{only available when compiled with the |+balloon_eval|
1100			feature}
1101	Expression for text to show in evaluation balloon.  It is only used
1102	when 'ballooneval' is on.  These variables can be used:
1103
1104	v:beval_bufnr	number of the buffer in which balloon is going to show
1105	v:beval_winnr	number of the window
1106	v:beval_lnum	line number
1107	v:beval_col	column number (byte index)
1108	v:beval_text	word under or after the mouse pointer
1109
1110	The evaluation of the expression must not have side effects!
1111	Example: >
1112    function! MyBalloonExpr()
1113	return 'Cursor is at line ' . v:beval_lnum .
1114		\', column ' . v:beval_col .
1115		\ ' of file ' .  bufname(v:beval_bufnr) .
1116		\ ' on word "' . v:beval_text . '"'
1117    endfunction
1118    set bexpr=MyBalloonExpr()
1119    set ballooneval
1120<
1121	NOTE: The balloon is displayed only if the cursor is on a text
1122	character.  If the result of evaluating 'balloonexpr' is not empty,
1123	Vim does not try to send a message to an external debugger (Netbeans
1124	or Sun Workshop).
1125
1126	The expression will be evaluated in the |sandbox| when set from a
1127	modeline, see |sandbox-option|.
1128
1129	It is not allowed to change text or jump to another window while
1130	evaluating 'balloonexpr' |textlock|.
1131
1132	To check whether line breaks in the balloon text work use this check: >
1133		if has("balloon_multiline")
1134<	When they are supported "\n" characters will start a new line.  If the
1135	expression evaluates to a |List| this is equal to using each List item
1136	as a string and putting "\n" in between them.
1137
1138						*'belloff'* *'bo'*
1139'belloff' 'bo'		string	(default "")
1140			global
1141			{not in Vi}
1142	Specifies for which events the bell will not be rung. It is a comma
1143	separated list of items. For each item that is present, the bell
1144	will be silenced. This is most useful to specify specific events in
1145	insert mode to be silenced.
1146
1147	item	    meaning when present	~
1148	all	    All events.
1149	backspace   When hitting <BS> or <Del> and deleting results in an
1150		    error.
1151	cursor	    Fail to move around using the cursor keys or
1152		    <PageUp>/<PageDown> in |Insert-mode|.
1153	complete    Error occurred when using |i_CTRL-X_CTRL-K| or
1154		    |i_CTRL-X_CTRL-T|.
1155	copy	    Cannot copy char from insert mode using |i_CTRL-Y| or
1156		    |i_CTRL-E|.
1157	ctrlg	    Unknown Char after <C-G> in Insert mode.
1158	error	    Other Error occurred (e.g. try to join last line)
1159		    (mostly used in |Normal-mode| or |Cmdline-mode|).
1160	esc	    hitting <Esc> in |Normal-mode|.
1161	ex	    In |Visual-mode|, hitting |Q| results in an error.
1162	hangul	    Error occurred when using hangul input.
1163	insertmode  Pressing <Esc> in 'insertmode'.
1164	lang	    Calling the beep module for Lua/Mzscheme/TCL.
1165	mess	    No output available for |g<|.
1166	showmatch   Error occurred for 'showmatch' function.
1167	operator    Empty region error |cpo-E|.
1168	register    Unknown register after <C-R> in |Insert-mode|.
1169	shell	    Bell from shell output |:!|.
1170	spell	    Error happened on spell suggest.
1171	wildmode    More matches in |cmdline-completion| available
1172		    (depends on the 'wildmode' setting).
1173
1174	This is most useful, to fine tune when in insert mode the bell should
1175	be rung. For normal mode and ex commands, the bell is often rung to
1176	indicate that an error occurred. It can be silenced by adding the
1177	"error" keyword.
1178
1179				     *'binary'* *'bin'* *'nobinary'* *'nobin'*
1180'binary' 'bin'		boolean	(default off)
1181			local to buffer
1182			{not in Vi}
1183	This option should be set before editing a binary file.  You can also
1184	use the |-b| Vim argument.  When this option is switched on a few
1185	options will be changed (also when it already was on):
1186		'textwidth'  will be set to 0
1187		'wrapmargin' will be set to 0
1188		'modeline'   will be off
1189		'expandtab'  will be off
1190	Also, 'fileformat' and 'fileformats' options will not be used, the
1191	file is read and written like 'fileformat' was "unix" (a single <NL>
1192	separates lines).
1193	The 'fileencoding' and 'fileencodings' options will not be used, the
1194	file is read without conversion.
1195	NOTE: When you start editing a(nother) file while the 'bin' option is
1196	on, settings from autocommands may change the settings again (e.g.,
1197	'textwidth'), causing trouble when editing.  You might want to set
1198	'bin' again when the file has been loaded.
1199	The previous values of these options are remembered and restored when
1200	'bin' is switched from on to off.  Each buffer has its own set of
1201	saved option values.
1202	To edit a file with 'binary' set you can use the |++bin| argument.
1203	This avoids you have to do ":set bin", which would have effect for all
1204	files you edit.
1205	When writing a file the <EOL> for the last line is only written if
1206	there was one in the original file (normally Vim appends an <EOL> to
1207	the last line if there is none; this would make the file longer).  See
1208	the 'endofline' option.
1209
1210			*'bioskey'* *'biosk'* *'nobioskey'* *'nobiosk'*
1211'bioskey' 'biosk'	boolean	(default on)
1212			global
1213			{not in Vi}  {only for MS-DOS}
1214	When on the BIOS is called to obtain a keyboard character.  This works
1215	better to detect CTRL-C, but only works for the console.  When using a
1216	terminal over a serial port reset this option.
1217	Also see |'conskey'|.
1218
1219							*'bomb'* *'nobomb'*
1220'bomb'			boolean	(default off)
1221			local to buffer
1222			{not in Vi}
1223			{only available when compiled with the |+multi_byte|
1224			feature}
1225	When writing a file and the following conditions are met, a BOM (Byte
1226	Order Mark) is prepended to the file:
1227	- this option is on
1228	- the 'binary' option is off
1229	- 'fileencoding' is "utf-8", "ucs-2", "ucs-4" or one of the little/big
1230	  endian variants.
1231	Some applications use the BOM to recognize the encoding of the file.
1232	Often used for UCS-2 files on MS-Windows.  For other applications it
1233	causes trouble, for example: "cat file1 file2" makes the BOM of file2
1234	appear halfway the resulting file.  Gcc doesn't accept a BOM.
1235	When Vim reads a file and 'fileencodings' starts with "ucs-bom", a
1236	check for the presence of the BOM is done and 'bomb' set accordingly.
1237	Unless 'binary' is set, it is removed from the first line, so that you
1238	don't see it when editing.  When you don't change the options, the BOM
1239	will be restored when writing the file.
1240
1241						*'breakat'* *'brk'*
1242'breakat' 'brk'		string	(default " ^I!@*-+;:,./?")
1243			global
1244			{not in Vi}
1245			{not available when compiled without the |+linebreak|
1246			feature}
1247	This option lets you choose which characters might cause a line
1248	break if 'linebreak' is on.  Only works for ASCII and also for 8-bit
1249	characters when 'encoding' is an 8-bit encoding.
1250
1251				*'breakindent'* *'bri'* *'nobreakindent'* *'nobri'*
1252'breakindent' 'bri'	boolean (default off)
1253			local to window
1254			{not in Vi}
1255			{not available when compiled without the |+linebreak|
1256			feature}
1257	Every wrapped line will continue visually indented (same amount of
1258	space as the beginning of that line), thus preserving horizontal blocks
1259	of text.
1260
1261						*'breakindentopt'* *'briopt'*
1262'breakindentopt' 'briopt' string (default empty)
1263			local to window
1264			{not in Vi}
1265			{not available when compiled without the |+linebreak|
1266			feature}
1267	Settings for 'breakindent'. It can consist of the following optional
1268	items and must be separated by a comma:
1269		min:{n}	    Minimum text width that will be kept after
1270			    applying 'breakindent', even if the resulting
1271			    text should normally be narrower. This prevents
1272			    text indented almost to the right window border
1273			    occupying lot of vertical space when broken.
1274		shift:{n}   After applying 'breakindent', the wrapped line's
1275			    beginning will be shifted by the given number of
1276			    characters.  It permits dynamic French paragraph
1277			    indentation (negative) or emphasizing the line
1278			    continuation (positive).
1279		sbr	    Display the 'showbreak' value before applying the
1280			    additional indent.
1281	The default value for min is 20 and shift is 0.
1282
1283						*'browsedir'* *'bsdir'*
1284'browsedir' 'bsdir'	string	(default: "last")
1285			global
1286			{not in Vi} {only for Motif, Athena, GTK, Mac and
1287			Win32 GUI}
1288	Which directory to use for the file browser:
1289	   last		Use same directory as with last file browser, where a
1290			file was opened or saved.
1291	   buffer	Use the directory of the related buffer.
1292	   current	Use the current directory.
1293	   {path}	Use the specified directory
1294
1295						*'bufhidden'* *'bh'*
1296'bufhidden' 'bh'	string (default: "")
1297			local to buffer
1298			{not in Vi}
1299			{not available when compiled without the |+quickfix|
1300			feature}
1301	This option specifies what happens when a buffer is no longer
1302	displayed in a window:
1303	  <empty>	follow the global 'hidden' option
1304	  hide		hide the buffer (don't unload it), also when 'hidden'
1305			is not set
1306	  unload	unload the buffer, also when 'hidden' is set or using
1307			|:hide|
1308	  delete	delete the buffer from the buffer list, also when
1309			'hidden' is set or using |:hide|, like using
1310			|:bdelete|
1311	  wipe		wipe out the buffer from the buffer list, also when
1312			'hidden' is set or using |:hide|, like using
1313			|:bwipeout|
1314
1315	CAREFUL: when "unload", "delete" or "wipe" is used changes in a buffer
1316	are lost without a warning.  Also, these values may break autocommands
1317	that switch between buffers temporarily.
1318	This option is used together with 'buftype' and 'swapfile' to specify
1319	special kinds of buffers.   See |special-buffers|.
1320
1321			*'buflisted'* *'bl'* *'nobuflisted'* *'nobl'* *E85*
1322'buflisted' 'bl'	boolean (default: on)
1323			local to buffer
1324			{not in Vi}
1325	When this option is set, the buffer shows up in the buffer list.  If
1326	it is reset it is not used for ":bnext", "ls", the Buffers menu, etc.
1327	This option is reset by Vim for buffers that are only used to remember
1328	a file name or marks.  Vim sets it when starting to edit a buffer.
1329	But not when moving to a buffer with ":buffer".
1330
1331						*'buftype'* *'bt'* *E382*
1332'buftype' 'bt'		string (default: "")
1333			local to buffer
1334			{not in Vi}
1335			{not available when compiled without the |+quickfix|
1336			feature}
1337	The value of this option specifies the type of a buffer:
1338	  <empty>	normal buffer
1339	  nofile	buffer which is not related to a file and will not be
1340			written
1341	  nowrite	buffer which will not be written
1342	  acwrite	buffer which will always be written with BufWriteCmd
1343			autocommands. {not available when compiled without the
1344			|+autocmd| feature}
1345	  quickfix	quickfix buffer, contains list of errors |:cwindow|
1346			or list of locations |:lwindow|
1347	  help		help buffer (you are not supposed to set this
1348			manually)
1349
1350	This option is used together with 'bufhidden' and 'swapfile' to
1351	specify special kinds of buffers.   See |special-buffers|.
1352
1353	Be careful with changing this option, it can have many side effects!
1354
1355	A "quickfix" buffer is only used for the error list and the location
1356	list.  This value is set by the |:cwindow| and |:lwindow| commands and
1357	you are not supposed to change it.
1358
1359	"nofile" and "nowrite" buffers are similar:
1360	both:		The buffer is not to be written to disk, ":w" doesn't
1361			work (":w filename" does work though).
1362	both:		The buffer is never considered to be |'modified'|.
1363			There is no warning when the changes will be lost, for
1364			example when you quit Vim.
1365	both:		A swap file is only created when using too much memory
1366			(when 'swapfile' has been reset there is never a swap
1367			file).
1368	nofile only:	The buffer name is fixed, it is not handled like a
1369			file name.  It is not modified in response to a |:cd|
1370			command.
1371	both:		When using ":e bufname" and already editing "bufname"
1372			the buffer is made empty and autocommands are
1373			triggered as usual for |:edit|.
1374							*E676*
1375	"acwrite" implies that the buffer name is not related to a file, like
1376	"nofile", but it will be written.  Thus, in contrast to "nofile" and
1377	"nowrite", ":w" does work and a modified buffer can't be abandoned
1378	without saving.  For writing there must be matching |BufWriteCmd|,
1379	|FileWriteCmd| or |FileAppendCmd| autocommands.
1380
1381						*'casemap'* *'cmp'*
1382'casemap' 'cmp'		string	(default: "internal,keepascii")
1383			global
1384			{not in Vi}
1385			{only available when compiled with the |+multi_byte|
1386			feature}
1387	Specifies details about changing the case of letters.  It may contain
1388	these words, separated by a comma:
1389	internal	Use internal case mapping functions, the current
1390			locale does not change the case mapping.  This only
1391			matters when 'encoding' is a Unicode encoding,
1392			"latin1" or "iso-8859-15".  When "internal" is
1393			omitted, the towupper() and towlower() system library
1394			functions are used when available.
1395	keepascii	For the ASCII characters (0x00 to 0x7f) use the US
1396			case mapping, the current locale is not effective.
1397			This probably only matters for Turkish.
1398
1399						*'cdpath'* *'cd'* *E344* *E346*
1400'cdpath' 'cd'		string	(default: equivalent to $CDPATH or ",,")
1401			global
1402			{not in Vi}
1403			{not available when compiled without the
1404			|+file_in_path| feature}
1405	This is a list of directories which will be searched when using the
1406	|:cd| and |:lcd| commands, provided that the directory being searched
1407	for has a relative path, not an absolute part starting with "/", "./"
1408	or "../", the 'cdpath' option is not used then.
1409	The 'cdpath' option's value has the same form and semantics as
1410	|'path'|.  Also see |file-searching|.
1411	The default value is taken from $CDPATH, with a "," prepended to look
1412	in the current directory first.
1413	If the default value taken from $CDPATH is not what you want, include
1414	a modified version of the following command in your vimrc file to
1415	override it: >
1416	  :let &cdpath = ',' . substitute(substitute($CDPATH, '[, ]', '\\\0', 'g'), ':', ',', 'g')
1417<	This option cannot be set from a |modeline| or in the |sandbox|, for
1418	security reasons.
1419	(parts of 'cdpath' can be passed to the shell to expand file names).
1420
1421						*'cedit'*
1422'cedit'			string	(Vi default: "", Vim default: CTRL-F)
1423			global
1424			{not in Vi}
1425			{not available when compiled without the |+vertsplit|
1426			feature}
1427	The key used in Command-line Mode to open the command-line window.
1428	The default is CTRL-F when 'compatible' is off.
1429	Only non-printable keys are allowed.
1430	The key can be specified as a single character, but it is difficult to
1431	type.  The preferred way is to use the <> notation.  Examples: >
1432		:set cedit=<C-Y>
1433		:set cedit=<Esc>
1434<	|Nvi| also has this option, but it only uses the first character.
1435	See |cmdwin|.
1436
1437				*'charconvert'* *'ccv'* *E202* *E214* *E513*
1438'charconvert' 'ccv'	string (default "")
1439			global
1440			{only available when compiled with the |+multi_byte|
1441			and |+eval| features}
1442			{not in Vi}
1443	An expression that is used for character encoding conversion.  It is
1444	evaluated when a file that is to be read or has been written has a
1445	different encoding from what is desired.
1446	'charconvert' is not used when the internal iconv() function is
1447	supported and is able to do the conversion.  Using iconv() is
1448	preferred, because it is much faster.
1449	'charconvert' is not used when reading stdin |--|, because there is no
1450	file to convert from.  You will have to save the text in a file first.
1451	The expression must return zero or an empty string for success,
1452	non-zero for failure.
1453	The possible encoding names encountered are in 'encoding'.
1454	Additionally, names given in 'fileencodings' and 'fileencoding' are
1455	used.
1456	Conversion between "latin1", "unicode", "ucs-2", "ucs-4" and "utf-8"
1457	is done internally by Vim, 'charconvert' is not used for this.
1458	'charconvert' is also used to convert the viminfo file, if the 'c'
1459	flag is present in 'viminfo'.  Also used for Unicode conversion.
1460	Example: >
1461		set charconvert=CharConvert()
1462		fun CharConvert()
1463		  system("recode "
1464			\ . v:charconvert_from . ".." . v:charconvert_to
1465			\ . " <" . v:fname_in . " >" v:fname_out)
1466		  return v:shell_error
1467		endfun
1468<	The related Vim variables are:
1469		v:charconvert_from	name of the current encoding
1470		v:charconvert_to	name of the desired encoding
1471		v:fname_in		name of the input file
1472		v:fname_out		name of the output file
1473	Note that v:fname_in and v:fname_out will never be the same.
1474	Note that v:charconvert_from and v:charconvert_to may be different
1475	from 'encoding'.  Vim internally uses UTF-8 instead of UCS-2 or UCS-4.
1476	Encryption is not done by Vim when using 'charconvert'.  If you want
1477	to encrypt the file after conversion, 'charconvert' should take care
1478	of this.
1479	This option cannot be set from a |modeline| or in the |sandbox|, for
1480	security reasons.
1481
1482				   *'cindent'* *'cin'* *'nocindent'* *'nocin'*
1483'cindent' 'cin'		boolean	(default off)
1484			local to buffer
1485			{not in Vi}
1486			{not available when compiled without the |+cindent|
1487			feature}
1488	Enables automatic C program indenting.  See 'cinkeys' to set the keys
1489	that trigger reindenting in insert mode and 'cinoptions' to set your
1490	preferred indent style.
1491	If 'indentexpr' is not empty, it overrules 'cindent'.
1492	If 'lisp' is not on and both 'indentexpr' and 'equalprg' are empty,
1493	the "=" operator indents using this algorithm rather than calling an
1494	external program.
1495	See |C-indenting|.
1496	When you don't like the way 'cindent' works, try the 'smartindent'
1497	option or 'indentexpr'.
1498	This option is not used when 'paste' is set.
1499	NOTE: This option is reset when 'compatible' is set.
1500
1501							*'cinkeys'* *'cink'*
1502'cinkeys' 'cink'	string	(default "0{,0},0),:,0#,!^F,o,O,e")
1503			local to buffer
1504			{not in Vi}
1505			{not available when compiled without the |+cindent|
1506			feature}
1507	A list of keys that, when typed in Insert mode, cause reindenting of
1508	the current line.  Only used if 'cindent' is on and 'indentexpr' is
1509	empty.
1510	For the format of this option see |cinkeys-format|.
1511	See |C-indenting|.
1512
1513						*'cinoptions'* *'cino'*
1514'cinoptions' 'cino'	string	(default "")
1515			local to buffer
1516			{not in Vi}
1517			{not available when compiled without the |+cindent|
1518			feature}
1519	The 'cinoptions' affect the way 'cindent' reindents lines in a C
1520	program.  See |cinoptions-values| for the values of this option, and
1521	|C-indenting| for info on C indenting in general.
1522
1523
1524						*'cinwords'* *'cinw'*
1525'cinwords' 'cinw'	string	(default "if,else,while,do,for,switch")
1526			local to buffer
1527			{not in Vi}
1528			{not available when compiled without both the
1529			|+cindent| and the |+smartindent| features}
1530	These keywords start an extra indent in the next line when
1531	'smartindent' or 'cindent' is set.  For 'cindent' this is only done at
1532	an appropriate place (inside {}).
1533	Note that 'ignorecase' isn't used for 'cinwords'.  If case doesn't
1534	matter, include the keyword both the uppercase and lowercase:
1535	"if,If,IF".
1536
1537						*'clipboard'* *'cb'*
1538'clipboard' 'cb'	string	(default "autoselect,exclude:cons\|linux"
1539						  for X-windows, "" otherwise)
1540			global
1541			{not in Vi}
1542			{only in GUI versions or when the |+xterm_clipboard|
1543			feature is included}
1544	This option is a list of comma separated names.
1545	These names are recognized:
1546
1547						*clipboard-unnamed*
1548	unnamed		When included, Vim will use the clipboard register '*'
1549			for all yank, delete, change and put operations which
1550			would normally go to the unnamed register.  When a
1551			register is explicitly specified, it will always be
1552			used regardless of whether "unnamed" is in 'clipboard'
1553			or not.  The clipboard register can always be
1554			explicitly accessed using the "* notation.  Also see
1555			|gui-clipboard|.
1556
1557						*clipboard-unnamedplus*
1558	unnamedplus	A variant of the "unnamed" flag which uses the
1559			clipboard register '+' (|quoteplus|) instead of
1560			register '*' for all yank, delete, change and put
1561			operations which would normally go to the unnamed
1562			register.  When "unnamed" is also included to the
1563			option, yank operations (but not delete, change or
1564			put) will additionally copy the text into register
1565			'*'.
1566			Only available with the |+X11| feature.
1567			Availability can be checked with: >
1568				if has('unnamedplus')
1569<
1570						*clipboard-autoselect*
1571	autoselect	Works like the 'a' flag in 'guioptions': If present,
1572			then whenever Visual mode is started, or the Visual
1573			area extended, Vim tries to become the owner of the
1574			windowing system's global selection or put the
1575			selected text on the clipboard used by the selection
1576			register "*.  See |guioptions_a| and |quotestar| for
1577			details.  When the GUI is active, the 'a' flag in
1578			'guioptions' is used, when the GUI is not active, this
1579			"autoselect" flag is used.
1580			Also applies to the modeless selection.
1581
1582						*clipboard-autoselectplus*
1583	autoselectplus  Like "autoselect" but using the + register instead of
1584			the * register.  Compare to the 'P' flag in
1585			'guioptions'.
1586
1587						*clipboard-autoselectml*
1588	autoselectml	Like "autoselect", but for the modeless selection
1589			only.  Compare to the 'A' flag in 'guioptions'.
1590
1591						*clipboard-html*
1592	html		When the clipboard contains HTML, use this when
1593			pasting.  When putting text on the clipboard, mark it
1594			as HTML.  This works to copy rendered HTML from
1595			Firefox, paste it as raw HTML in Vim, select the HTML
1596			in Vim and paste it in a rich edit box in Firefox.
1597			You probably want to add this only temporarily,
1598			possibly use BufEnter autocommands.
1599			Only supported for GTK version 2 and later.
1600			Only available with the |+multi_byte| feature.
1601
1602						*clipboard-exclude*
1603	exclude:{pattern}
1604			Defines a pattern that is matched against the name of
1605			the terminal 'term'.  If there is a match, no
1606			connection will be made to the X server.  This is
1607			useful in this situation:
1608			- Running Vim in a console.
1609			- $DISPLAY is set to start applications on another
1610			  display.
1611			- You do not want to connect to the X server in the
1612			  console, but do want this in a terminal emulator.
1613			To never connect to the X server use: >
1614				exclude:.*
1615<			This has the same effect as using the |-X| argument.
1616			Note that when there is no connection to the X server
1617			the window title won't be restored and the clipboard
1618			cannot be accessed.
1619			The value of 'magic' is ignored, {pattern} is
1620			interpreted as if 'magic' was on.
1621			The rest of the option value will be used for
1622			{pattern}, this must be the last entry.
1623
1624						*'cmdheight'* *'ch'*
1625'cmdheight' 'ch'	number	(default 1)
1626			global
1627			{not in Vi}
1628	Number of screen lines to use for the command-line.  Helps avoiding
1629	|hit-enter| prompts.
1630	The value of this option is stored with the tab page, so that each tab
1631	page can have a different value.
1632
1633						*'cmdwinheight'* *'cwh'*
1634'cmdwinheight' 'cwh'	number	(default 7)
1635			global
1636			{not in Vi}
1637			{not available when compiled without the |+vertsplit|
1638			feature}
1639	Number of screen lines to use for the command-line window. |cmdwin|
1640
1641						*'colorcolumn'* *'cc'*
1642'colorcolumn' 'cc'	string	(default "")
1643			local to window
1644			{not in Vi}
1645			{not available when compiled without the |+syntax|
1646			feature}
1647	'colorcolumn' is a comma separated list of screen columns that are
1648	highlighted with ColorColumn |hl-ColorColumn|.  Useful to align
1649	text.  Will make screen redrawing slower.
1650	The screen column can be an absolute number, or a number preceded with
1651	'+' or '-', which is added to or subtracted from 'textwidth'. >
1652
1653		:set cc=+1  " highlight column after 'textwidth'
1654		:set cc=+1,+2,+3  " highlight three columns after 'textwidth'
1655		:hi ColorColumn ctermbg=lightgrey guibg=lightgrey
1656<
1657	When 'textwidth' is zero then the items with '-' and '+' are not used.
1658	A maximum of 256 columns are highlighted.
1659
1660						*'columns'* *'co'* *E594*
1661'columns' 'co'		number	(default 80 or terminal width)
1662			global
1663			{not in Vi}
1664	Number of columns of the screen.  Normally this is set by the terminal
1665	initialization and does not have to be set by hand.  Also see
1666	|posix-screen-size|.
1667	When Vim is running in the GUI or in a resizable window, setting this
1668	option will cause the window size to be changed.  When you only want
1669	to use the size for the GUI, put the command in your |gvimrc| file.
1670	When you set this option and Vim is unable to change the physical
1671	number of columns of the display, the display may be messed up.  For
1672	the GUI it is always possible and Vim limits the number of columns to
1673	what fits on the screen.  You can use this command to get the widest
1674	window possible: >
1675		:set columns=9999
1676<	Minimum value is 12, maximum value is 10000.
1677
1678					*'comments'* *'com'* *E524* *E525*
1679'comments' 'com'	string	(default
1680				"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-")
1681			local to buffer
1682			{not in Vi}
1683			{not available when compiled without the |+comments|
1684			feature}
1685	A comma separated list of strings that can start a comment line.  See
1686	|format-comments|.  See |option-backslash| about using backslashes to
1687	insert a space.
1688
1689					*'commentstring'* *'cms'* *E537*
1690'commentstring' 'cms'	string	(default "/*%s*/")
1691			local to buffer
1692			{not in Vi}
1693			{not available when compiled without the |+folding|
1694			feature}
1695	A template for a comment.  The "%s" in the value is replaced with the
1696	comment text.  Currently only used to add markers for folding, see
1697	|fold-marker|.
1698
1699			*'compatible'* *'cp'* *'nocompatible'* *'nocp'*
1700'compatible' 'cp'	boolean	(default on, off when a |vimrc| or |gvimrc|
1701								file is found)
1702			global
1703			{not in Vi}
1704	This option has the effect of making Vim either more Vi-compatible, or
1705	make Vim behave in a more useful way.
1706	This is a special kind of option, because when it's set or reset,
1707	other options are also changed as a side effect.  CAREFUL: Setting or
1708	resetting this option can have a lot of unexpected effects: Mappings
1709	are interpreted in another way, undo behaves differently, etc.  If you
1710	set this option in your vimrc file, you should probably put it at the
1711	very start.
1712	By default this option is on and the Vi defaults are used for the
1713	options.  This default was chosen for those people who want to use Vim
1714	just like Vi, and don't even (want to) know about the 'compatible'
1715	option.
1716	When a |vimrc| or |gvimrc| file is found while Vim is starting up,
1717	this option is switched off, and all options that have not been
1718	modified will be set to the Vim defaults.  Effectively, this means
1719	that when a |vimrc| or |gvimrc| file exists, Vim will use the Vim
1720	defaults, otherwise it will use the Vi defaults.  (Note: This doesn't
1721	happen for the system-wide vimrc or gvimrc file, nor for a file given
1722	with the |-u| argument).  Also see |compatible-default| and
1723	|posix-compliance|.
1724	You can also set this option with the "-C" argument, and reset it with
1725	"-N".  See |-C| and |-N|.
1726	Switching this option off makes the Vim defaults be used for options
1727	that have a different Vi and Vim default value.  See the options
1728	marked with a '+' below.  Other options are not modified.
1729	At the moment this option is set, several other options will be set
1730	or reset to make Vim as Vi-compatible as possible.  See the table
1731	below.  This can be used if you want to revert to Vi compatible
1732	editing.
1733	See also 'cpoptions'.
1734
1735	option		+ set value	effect	~
1736
1737	'allowrevins'	  off		no CTRL-_ command
1738	'backupcopy'	  Unix: "yes"	  backup file is a copy
1739			  others: "auto"  copy or rename backup file
1740	'backspace'	  ""		normal backspace
1741	'backup'	  off		no backup file
1742	'cindent'	  off		no C code indentation
1743	'cedit'		+ ""		no key to open the |cmdwin|
1744	'cpoptions'	+ (all flags)	Vi-compatible flags
1745	'cscopetag'	  off		don't use cscope for ":tag"
1746	'cscopetagorder'  0		see |cscopetagorder|
1747	'cscopeverbose'	  off		see |cscopeverbose|
1748	'digraph'	  off		no digraphs
1749	'esckeys'	+ off		no <Esc>-keys in Insert mode
1750	'expandtab'	  off		tabs not expanded to spaces
1751	'fileformats'	+ ""		no automatic file format detection,
1752			  "dos,unix"	except for DOS, Windows and OS/2
1753	'formatoptions'	+ "vt"		Vi compatible formatting
1754	'gdefault'	  off		no default 'g' flag for ":s"
1755	'history'	+ 0		no commandline history
1756	'hkmap'		  off		no Hebrew keyboard mapping
1757	'hkmapp'	  off		no phonetic Hebrew keyboard mapping
1758	'hlsearch'	  off		no highlighting of search matches
1759	'incsearch'	  off		no incremental searching
1760	'indentexpr'	  ""		no indenting by expression
1761	'insertmode'	  off		do not start in Insert mode
1762	'iskeyword'	+ "@,48-57,_"	keywords contain alphanumeric
1763						characters and '_'
1764	'joinspaces'	  on		insert 2 spaces after period
1765	'modeline'	+ off		no modelines
1766	'more'		+ off		no pauses in listings
1767	'revins'	  off		no reverse insert
1768	'ruler'		  off		no ruler
1769	'scrolljump'	  1		no jump scroll
1770	'scrolloff'	  0		no scroll offset
1771	'shiftround'	  off		indent not rounded to shiftwidth
1772	'shortmess'	+ ""		no shortening of messages
1773	'showcmd'	+ off		command characters not shown
1774	'showmode'	+ off		current mode not shown
1775	'smartcase'	  off		no automatic ignore case switch
1776	'smartindent'	  off		no smart indentation
1777	'smarttab'	  off		no smart tab size
1778	'softtabstop'	  0		tabs are always 'tabstop' positions
1779	'startofline'	  on		goto startofline with some commands
1780	'tagrelative'	+ off		tag file names are not relative
1781	'textauto'	+ off		no automatic textmode detection
1782	'textwidth'	  0		no automatic line wrap
1783	'tildeop'	  off		tilde is not an operator
1784	'ttimeout'	  off		no terminal timeout
1785	'whichwrap'	+ ""		left-right movements don't wrap
1786	'wildchar'	+ CTRL-E	only when the current value is <Tab>
1787					use CTRL-E for cmdline completion
1788	'writebackup'	  on or off	depends on the |+writebackup| feature
1789
1790						*'complete'* *'cpt'* *E535*
1791'complete' 'cpt'	string	(default: ".,w,b,u,t,i")
1792			local to buffer
1793			{not in Vi}
1794	This option specifies how keyword completion |ins-completion| works
1795	when CTRL-P or CTRL-N are used.  It is also used for whole-line
1796	completion |i_CTRL-X_CTRL-L|.  It indicates the type of completion
1797	and the places to scan.  It is a comma separated list of flags:
1798	.	scan the current buffer ( 'wrapscan' is ignored)
1799	w	scan buffers from other windows
1800	b	scan other loaded buffers that are in the buffer list
1801	u	scan the unloaded buffers that are in the buffer list
1802	U	scan the buffers that are not in the buffer list
1803	k	scan the files given with the 'dictionary' option
1804	kspell  use the currently active spell checking |spell|
1805	k{dict}	scan the file {dict}.  Several "k" flags can be given,
1806		patterns are valid too.  For example: >
1807			:set cpt=k/usr/dict/*,k~/spanish
1808<	s	scan the files given with the 'thesaurus' option
1809	s{tsr}	scan the file {tsr}.  Several "s" flags can be given, patterns
1810		are valid too.
1811	i	scan current and included files
1812	d	scan current and included files for defined name or macro
1813		|i_CTRL-X_CTRL-D|
1814	]	tag completion
1815	t	same as "]"
1816
1817	Unloaded buffers are not loaded, thus their autocmds |:autocmd| are
1818	not executed, this may lead to unexpected completions from some files
1819	(gzipped files for example).  Unloaded buffers are not scanned for
1820	whole-line completion.
1821
1822	The default is ".,w,b,u,t,i", which means to scan:
1823	   1. the current buffer
1824	   2. buffers in other windows
1825	   3. other loaded buffers
1826	   4. unloaded buffers
1827	   5. tags
1828	   6. included files
1829
1830	As you can see, CTRL-N and CTRL-P can be used to do any 'iskeyword'-
1831	based expansion (e.g., dictionary |i_CTRL-X_CTRL-K|, included patterns
1832	|i_CTRL-X_CTRL-I|, tags |i_CTRL-X_CTRL-]| and normal expansions).
1833
1834						*'completefunc'* *'cfu'*
1835'completefunc' 'cfu'	string	(default: empty)
1836			local to buffer
1837			{not in Vi}
1838			{not available when compiled without the |+eval|
1839			or |+insert_expand| features}
1840	This option specifies a function to be used for Insert mode completion
1841	with CTRL-X CTRL-U. |i_CTRL-X_CTRL-U|
1842	See |complete-functions| for an explanation of how the function is
1843	invoked and what it should return.
1844	This option cannot be set from a |modeline| or in the |sandbox|, for
1845	security reasons.
1846
1847						*'completeopt'* *'cot'*
1848'completeopt' 'cot'	string	(default: "menu,preview")
1849			global
1850			{not available when compiled without the
1851			|+insert_expand| feature}
1852			{not in Vi}
1853	A comma separated list of options for Insert mode completion
1854	|ins-completion|.  The supported values are:
1855
1856	   menu	    Use a popup menu to show the possible completions.  The
1857		    menu is only shown when there is more than one match and
1858		    sufficient colors are available.  |ins-completion-menu|
1859
1860	   menuone  Use the popup menu also when there is only one match.
1861		    Useful when there is additional information about the
1862		    match, e.g., what file it comes from.
1863
1864	   longest  Only insert the longest common text of the matches.  If
1865		    the menu is displayed you can use CTRL-L to add more
1866		    characters.  Whether case is ignored depends on the kind
1867		    of completion.  For buffer text the 'ignorecase' option is
1868		    used.
1869
1870	   preview  Show extra information about the currently selected
1871		    completion in the preview window.  Only works in
1872		    combination with "menu" or "menuone".
1873
1874	   noinsert Do not insert any text for a match until the user selects
1875		    a match from the menu. Only works in combination with
1876		    "menu" or "menuone". No effect if "longest" is present.
1877
1878	   noselect Do not select a match in the menu, force the user to
1879		    select one from the menu. Only works in combination with
1880		    "menu" or "menuone".
1881
1882
1883						*'concealcursor'* *'cocu'*
1884'concealcursor' 'cocu'	string (default: "")
1885			local to window
1886			{not in Vi}
1887			{not available when compiled without the |+conceal|
1888			feature}
1889	Sets the modes in which text in the cursor line can also be concealed.
1890	When the current mode is listed then concealing happens just like in
1891	other lines.
1892	  n		Normal mode
1893	  v		Visual mode
1894	  i		Insert mode
1895	  c		Command line editing, for 'incsearch'
1896
1897	'v' applies to all lines in the Visual area, not only the cursor.
1898	A useful value is "nc".  This is used in help files.  So long as you
1899	are moving around text is concealed, but when starting to insert text
1900	or selecting a Visual area the concealed text is displayed, so that
1901	you can see what you are doing.
1902	Keep in mind that the cursor position is not always where it's
1903	displayed.  E.g., when moving vertically it may change column.
1904
1905
1906'conceallevel' 'cole'		*'conceallevel'* *'cole'*
1907			number (default 0)
1908			local to window
1909			{not in Vi}
1910			{not available when compiled without the |+conceal|
1911			feature}
1912	Determine how text with the "conceal" syntax attribute |:syn-conceal|
1913	is shown:
1914
1915	Value		Effect ~
1916	0		Text is shown normally
1917	1		Each block of concealed text is replaced with one
1918			character.  If the syntax item does not have a custom
1919			replacement character defined (see |:syn-cchar|) the
1920			character defined in 'listchars' is used (default is a
1921			space).
1922			It is highlighted with the "Conceal" highlight group.
1923	2		Concealed text is completely hidden unless it has a
1924			custom replacement character defined (see
1925			|:syn-cchar|).
1926	3		Concealed text is completely hidden.
1927
1928	Note: in the cursor line concealed text is not hidden, so that you can
1929	edit and copy the text.  This can be changed with the 'concealcursor'
1930	option.
1931
1932				*'confirm'* *'cf'* *'noconfirm'* *'nocf'*
1933'confirm' 'cf'		boolean (default off)
1934			global
1935			{not in Vi}
1936	When 'confirm' is on, certain operations that would normally
1937	fail because of unsaved changes to a buffer, e.g. ":q" and ":e",
1938	instead raise a |dialog| asking if you wish to save the current
1939	file(s).  You can still use a ! to unconditionally |abandon| a buffer.
1940	If 'confirm' is off you can still activate confirmation for one
1941	command only (this is most useful in mappings) with the |:confirm|
1942	command.
1943	Also see the |confirm()| function and the 'v' flag in 'guioptions'.
1944
1945			*'conskey'* *'consk'* *'noconskey'* *'noconsk'*
1946'conskey' 'consk'	boolean	(default off)
1947			global
1948			{not in Vi}  {only for MS-DOS}
1949	When on direct console I/O is used to obtain a keyboard character.
1950	This should work in most cases.  Also see |'bioskey'|.  Together,
1951	three methods of console input are available:
1952	'conskey'   'bioskey'	    action ~
1953	   on	     on or off	    direct console input
1954	   off		on	    BIOS
1955	   off		off	    STDIN
1956
1957			*'copyindent'* *'ci'* *'nocopyindent'* *'noci'*
1958'copyindent' 'ci'	boolean	(default off)
1959			local to buffer
1960			{not in Vi}
1961	Copy the structure of the existing lines indent when autoindenting a
1962	new line.  Normally the new indent is reconstructed by a series of
1963	tabs followed by spaces as required (unless |'expandtab'| is enabled,
1964	in which case only spaces are used).  Enabling this option makes the
1965	new line copy whatever characters were used for indenting on the
1966	existing line.  'expandtab' has no effect on these characters, a Tab
1967	remains a Tab.  If the new indent is greater than on the existing
1968	line, the remaining space is filled in the normal manner.
1969	NOTE: 'copyindent' is reset when 'compatible' is set.
1970	Also see 'preserveindent'.
1971
1972						*'cpoptions'* *'cpo'*
1973'cpoptions' 'cpo'	string	(Vim default: "aABceFs",
1974				 Vi default:  all flags)
1975			global
1976			{not in Vi}
1977	A sequence of single character flags.  When a character is present
1978	this indicates Vi-compatible behavior.  This is used for things where
1979	not being Vi-compatible is mostly or sometimes preferred.
1980	'cpoptions' stands for "compatible-options".
1981	Commas can be added for readability.
1982	To avoid problems with flags that are added in the future, use the
1983	"+=" and "-=" feature of ":set" |add-option-flags|.
1984	NOTE: This option is set to the Vi default value when 'compatible' is
1985	set and to the Vim default value when 'compatible' is reset.
1986	NOTE: This option is set to the POSIX default value at startup when
1987	the Vi default value would be used and the $VIM_POSIX environment
1988	variable exists |posix|.  This means Vim tries to behave like the
1989	POSIX specification.
1990
1991	    contains	behavior	~
1992								*cpo-a*
1993		a	When included, a ":read" command with a file name
1994			argument will set the alternate file name for the
1995			current window.
1996								*cpo-A*
1997		A	When included, a ":write" command with a file name
1998			argument will set the alternate file name for the
1999			current window.
2000								*cpo-b*
2001		b	"\|" in a ":map" command is recognized as the end of
2002			the map command.  The '\' is included in the mapping,
2003			the text after the '|' is interpreted as the next
2004			command.  Use a CTRL-V instead of a backslash to
2005			include the '|' in the mapping.  Applies to all
2006			mapping, abbreviation, menu and autocmd commands.
2007			See also |map_bar|.
2008								*cpo-B*
2009		B	A backslash has no special meaning in mappings,
2010			abbreviations and the "to" part of the menu commands.
2011			Remove this flag to be able to use a backslash like a
2012			CTRL-V.  For example, the command ":map X \<Esc>"
2013			results in X being mapped to:
2014				'B' included:	"\^["	 (^[ is a real <Esc>)
2015				'B' excluded:	"<Esc>"  (5 characters)
2016				('<' excluded in both cases)
2017								*cpo-c*
2018		c	Searching continues at the end of any match at the
2019			cursor position, but not further than the start of the
2020			next line.  When not present searching continues
2021			one character from the cursor position.  With 'c'
2022			"abababababab" only gets three matches when repeating
2023			"/abab", without 'c' there are five matches.
2024								*cpo-C*
2025		C	Do not concatenate sourced lines that start with a
2026			backslash.  See |line-continuation|.
2027								*cpo-d*
2028		d	Using "./" in the 'tags' option doesn't mean to use
2029			the tags file relative to the current file, but the
2030			tags file in the current directory.
2031								*cpo-D*
2032		D	Can't use CTRL-K to enter a digraph after Normal mode
2033			commands with a character argument, like |r|, |f| and
2034			|t|.
2035								*cpo-e*
2036		e	When executing a register with ":@r", always add a
2037			<CR> to the last line, also when the register is not
2038			linewise.  If this flag is not present, the register
2039			is not linewise and the last line does not end in a
2040			<CR>, then the last line is put on the command-line
2041			and can be edited before hitting <CR>.
2042								*cpo-E*
2043		E	It is an error when using "y", "d", "c", "g~", "gu" or
2044			"gU" on an Empty region.  The operators only work when
2045			at least one character is to be operate on.  Example:
2046			This makes "y0" fail in the first column.
2047								*cpo-f*
2048		f	When included, a ":read" command with a file name
2049			argument will set the file name for the current buffer,
2050			if the current buffer doesn't have a file name yet.
2051								*cpo-F*
2052		F	When included, a ":write" command with a file name
2053			argument will set the file name for the current
2054			buffer, if the current buffer doesn't have a file name
2055			yet.  Also see |cpo-P|.
2056								*cpo-g*
2057		g	Goto line 1 when using ":edit" without argument.
2058								*cpo-H*
2059		H	When using "I" on a line with only blanks, insert
2060			before the last blank.  Without this flag insert after
2061			the last blank.
2062								*cpo-i*
2063		i	When included, interrupting the reading of a file will
2064			leave it modified.
2065								*cpo-I*
2066		I	When moving the cursor up or down just after inserting
2067			indent for 'autoindent', do not delete the indent.
2068								*cpo-j*
2069		j	When joining lines, only add two spaces after a '.',
2070			not after '!' or '?'.  Also see 'joinspaces'.
2071								*cpo-J*
2072		J	A |sentence| has to be followed by two spaces after
2073			the '.', '!' or '?'.  A <Tab> is not recognized as
2074			white space.
2075								*cpo-k*
2076		k	Disable the recognition of raw key codes in
2077			mappings, abbreviations, and the "to" part of menu
2078			commands.  For example, if <Key> sends ^[OA (where ^[
2079			is <Esc>), the command ":map X ^[OA" results in X
2080			being mapped to:
2081				'k' included:	"^[OA"	 (3 characters)
2082				'k' excluded:	"<Key>"  (one key code)
2083			Also see the '<' flag below.
2084								*cpo-K*
2085		K	Don't wait for a key code to complete when it is
2086			halfway a mapping.  This breaks mapping <F1><F1> when
2087			only part of the second <F1> has been read.  It
2088			enables cancelling the mapping by typing <F1><Esc>.
2089								*cpo-l*
2090		l	Backslash in a [] range in a search pattern is taken
2091			literally, only "\]", "\^", "\-" and "\\" are special.
2092			See |/[]|
2093			   'l' included: "/[ \t]"  finds <Space>, '\' and 't'
2094			   'l' excluded: "/[ \t]"  finds <Space> and <Tab>
2095			Also see |cpo-\|.
2096								*cpo-L*
2097		L	When the 'list' option is set, 'wrapmargin',
2098			'textwidth', 'softtabstop' and Virtual Replace mode
2099			(see |gR|) count a <Tab> as two characters, instead of
2100			the normal behavior of a <Tab>.
2101								*cpo-m*
2102		m	When included, a showmatch will always wait half a
2103			second.  When not included, a showmatch will wait half
2104			a second or until a character is typed.  |'showmatch'|
2105								*cpo-M*
2106		M	When excluded, "%" matching will take backslashes into
2107			account.  Thus in "( \( )" and "\( ( \)" the outer
2108			parenthesis match.  When included "%" ignores
2109			backslashes, which is Vi compatible.
2110								*cpo-n*
2111		n	When included, the column used for 'number' and
2112			'relativenumber' will also be used for text of wrapped
2113			lines.
2114								*cpo-o*
2115		o	Line offset to search command is not remembered for
2116			next search.
2117								*cpo-O*
2118		O	Don't complain if a file is being overwritten, even
2119			when it didn't exist when editing it.  This is a
2120			protection against a file unexpectedly created by
2121			someone else.  Vi didn't complain about this.
2122								*cpo-p*
2123		p	Vi compatible Lisp indenting.  When not present, a
2124			slightly better algorithm is used.
2125								*cpo-P*
2126		P	When included, a ":write" command that appends to a
2127			file will set the file name for the current buffer, if
2128			the current buffer doesn't have a file name yet and
2129			the 'F' flag is also included |cpo-F|.
2130								*cpo-q*
2131		q	When joining multiple lines leave the cursor at the
2132			position where it would be when joining two lines.
2133								*cpo-r*
2134		r	Redo ("." command) uses "/" to repeat a search
2135			command, instead of the actually used search string.
2136								*cpo-R*
2137		R	Remove marks from filtered lines.  Without this flag
2138			marks are kept like |:keepmarks| was used.
2139								*cpo-s*
2140		s	Set buffer options when entering the buffer for the
2141			first time.  This is like it is in Vim version 3.0.
2142			And it is the default.  If not present the options are
2143			set when the buffer is created.
2144								*cpo-S*
2145		S	Set buffer options always when entering a buffer
2146			(except 'readonly', 'fileformat', 'filetype' and
2147			'syntax').  This is the (most) Vi compatible setting.
2148			The options are set to the values in the current
2149			buffer.  When you change an option and go to another
2150			buffer, the value is copied.  Effectively makes the
2151			buffer options global to all buffers.
2152
2153			's'    'S'     copy buffer options
2154			no     no      when buffer created
2155			yes    no      when buffer first entered (default)
2156			 X     yes     each time when buffer entered (vi comp.)
2157								*cpo-t*
2158		t	Search pattern for the tag command is remembered for
2159			"n" command.  Otherwise Vim only puts the pattern in
2160			the history for search pattern, but doesn't change the
2161			last used search pattern.
2162								*cpo-u*
2163		u	Undo is Vi compatible.  See |undo-two-ways|.
2164								*cpo-v*
2165		v	Backspaced characters remain visible on the screen in
2166			Insert mode.  Without this flag the characters are
2167			erased from the screen right away.  With this flag the
2168			screen newly typed text overwrites backspaced
2169			characters.
2170								*cpo-w*
2171		w	When using "cw" on a blank character, only change one
2172			character and not all blanks until the start of the
2173			next word.
2174								*cpo-W*
2175		W	Don't overwrite a readonly file.  When omitted, ":w!"
2176			overwrites a readonly file, if possible.
2177								*cpo-x*
2178		x	<Esc> on the command-line executes the command-line.
2179			The default in Vim is to abandon the command-line,
2180			because <Esc> normally aborts a command.  |c_<Esc>|
2181								*cpo-X*
2182		X	When using a count with "R" the replaced text is
2183			deleted only once.  Also when repeating "R" with "."
2184			and a count.
2185								*cpo-y*
2186		y	A yank command can be redone with ".".
2187								*cpo-Z*
2188		Z	When using "w!" while the 'readonly' option is set,
2189			don't reset 'readonly'.
2190								*cpo-!*
2191		!	When redoing a filter command, use the last used
2192			external command, whatever it was.  Otherwise the last
2193			used -filter- command is used.
2194								*cpo-$*
2195		$	When making a change to one line, don't redisplay the
2196			line, but put a '$' at the end of the changed text.
2197			The changed text will be overwritten when you type the
2198			new text.  The line is redisplayed if you type any
2199			command that moves the cursor from the insertion
2200			point.
2201								*cpo-%*
2202		%	Vi-compatible matching is done for the "%" command.
2203			Does not recognize "#if", "#endif", etc.
2204			Does not recognize "/*" and "*/".
2205			Parens inside single and double quotes are also
2206			counted, causing a string that contains a paren to
2207			disturb the matching.  For example, in a line like
2208			"if (strcmp("foo(", s))" the first paren does not
2209			match the last one.  When this flag is not included,
2210			parens inside single and double quotes are treated
2211			specially.  When matching a paren outside of quotes,
2212			everything inside quotes is ignored.  When matching a
2213			paren inside quotes, it will find the matching one (if
2214			there is one).  This works very well for C programs.
2215			This flag is also used for other features, such as
2216			C-indenting.
2217								*cpo--*
2218		-	When included, a vertical movement command fails when
2219			it would go above the first line or below the last
2220			line.  Without it the cursor moves to the first or
2221			last line, unless it already was in that line.
2222			Applies to the commands "-", "k", CTRL-P, "+", "j",
2223			CTRL-N, CTRL-J and ":1234".
2224								*cpo-+*
2225		+	When included, a ":write file" command will reset the
2226			'modified' flag of the buffer, even though the buffer
2227			itself may still be different from its file.
2228								*cpo-star*
2229		*	Use ":*" in the same way as ":@".  When not included,
2230			":*" is an alias for ":'<,'>", select the Visual area.
2231								*cpo-<*
2232		<	Disable the recognition of special key codes in |<>|
2233			form in mappings, abbreviations, and the "to" part of
2234			menu commands.  For example, the command
2235			":map X <Tab>" results in X being mapped to:
2236				'<' included:	"<Tab>"  (5 characters)
2237				'<' excluded:	"^I"	 (^I is a real <Tab>)
2238			Also see the 'k' flag above.
2239								*cpo->*
2240		>	When appending to a register, put a line break before
2241			the appended text.
2242								*cpo-;*
2243		;	When using |,| or |;| to repeat the last |t| search
2244			and the cursor is right in front of the searched
2245			character, the cursor won't move. When not included,
2246			the cursor would skip over it and jump to the
2247			following occurrence.
2248
2249	POSIX flags.  These are not included in the Vi default value, except
2250	when $VIM_POSIX was set on startup. |posix|
2251
2252	    contains	behavior	~
2253								*cpo-#*
2254		#	A count before "D", "o" and "O" has no effect.
2255								*cpo-&*
2256		&	When ":preserve" was used keep the swap file when
2257			exiting normally while this buffer is still loaded.
2258			This flag is tested when exiting.
2259								*cpo-\*
2260		\	Backslash in a [] range in a search pattern is taken
2261			literally, only "\]" is special  See |/[]|
2262			   '\' included: "/[ \-]"  finds <Space>, '\' and '-'
2263			   '\' excluded: "/[ \-]"  finds <Space> and '-'
2264			Also see |cpo-l|.
2265								*cpo-/*
2266		/	When "%" is used as the replacement string in a |:s|
2267			command, use the previous replacement string. |:s%|
2268								*cpo-{*
2269		{	The |{| and |}| commands also stop at a "{" character
2270			at the start of a line.
2271								*cpo-.*
2272		.	The ":chdir" and ":cd" commands fail if the current
2273			buffer is modified, unless ! is used.  Vim doesn't
2274			need this, since it remembers the full path of an
2275			opened file.
2276								*cpo-bar*
2277		|	The value of the $LINES and $COLUMNS environment
2278			variables overrule the terminal size values obtained
2279			with system specific functions.
2280
2281
2282						*'cryptmethod'* *'cm'*
2283'cryptmethod' 'cm'	string	(default "zip")
2284			global or local to buffer |global-local|
2285			{not in Vi}
2286	Method used for encryption when the buffer is written to a file:
2287							*pkzip*
2288	   zip		PkZip compatible method.  A weak kind of encryption.
2289			Backwards compatible with Vim 7.2 and older.
2290							*blowfish*
2291	   blowfish	Blowfish method.  Medium strong encryption but it has
2292			an implementation flaw.  Requires Vim 7.3 or later,
2293			files can NOT be read by Vim 7.2 and older.  This adds
2294			a "seed" to the file, every time you write the file
2295			the encrypted bytes will be different.
2296							*blowfish2*
2297	   blowfish2	Blowfish method.  Medium strong encryption.  Requires
2298			Vim 7.4.399 or later, files can NOT be read by Vim 7.3
2299			and older.  This adds a "seed" to the file, every time
2300			you write the file the encrypted bytes will be
2301			different.  The whole undo file is encrypted, not just
2302			the pieces of text.
2303
2304	When reading an encrypted file 'cryptmethod' will be set automatically
2305	to the detected method of the file being read.  Thus if you write it
2306	without changing 'cryptmethod' the same method will be used.
2307	Changing 'cryptmethod' does not mark the file as modified, you have to
2308	explicitly write it, you don't get a warning unless there are other
2309	modifications.  Also see |:X|.
2310
2311	When setting the global value to an empty string, it will end up with
2312	the value "zip".  When setting the local value to an empty string the
2313	buffer will use the global value.
2314
2315	When a new encryption method is added in a later version of Vim, and
2316	the current version does not recognize it, you will get	*E821* .
2317	You need to edit this file with the later version of Vim.
2318
2319
2320						*'cscopepathcomp'* *'cspc'*
2321'cscopepathcomp' 'cspc'	number	(default 0)
2322			global
2323			{not available when compiled without the |+cscope|
2324			feature}
2325			{not in Vi}
2326	Determines how many components of the path to show in a list of tags.
2327	See |cscopepathcomp|.
2328
2329						*'cscopeprg'* *'csprg'*
2330'cscopeprg' 'csprg'	string	(default "cscope")
2331			global
2332			{not available when compiled without the |+cscope|
2333			feature}
2334			{not in Vi}
2335	Specifies the command to execute cscope.  See |cscopeprg|.
2336	This option cannot be set from a |modeline| or in the |sandbox|, for
2337	security reasons.
2338
2339						*'cscopequickfix'* *'csqf'*
2340'cscopequickfix' 'csqf' string	(default "")
2341			global
2342			{not available when compiled without the |+cscope|
2343			or |+quickfix| features}
2344			{not in Vi}
2345	Specifies whether to use quickfix window to show cscope results.
2346	See |cscopequickfix|.
2347
2348		*'cscoperelative'* *'csre'* *'nocscoperelative'* *'nocsre'*
2349'cscoperelative' 'csre' boolean (default off)
2350			global
2351			{not available when compiled without the |+cscope|
2352			feature}
2353			{not in Vi}
2354	In the absence of a prefix (-P) for cscope. setting this option enables
2355	to use the basename of cscope.out path as the prefix.
2356	See |cscoperelative|.
2357
2358				*'cscopetag'* *'cst'* *'nocscopetag'* *'nocst'*
2359'cscopetag' 'cst'	boolean (default off)
2360			global
2361			{not available when compiled without the |+cscope|
2362			feature}
2363			{not in Vi}
2364	Use cscope for tag commands.  See |cscope-options|.
2365	NOTE: This option is reset when 'compatible' is set.
2366
2367						*'cscopetagorder'* *'csto'*
2368'cscopetagorder' 'csto'	number	(default 0)
2369			global
2370			{not available when compiled without the |+cscope|
2371			feature}
2372			{not in Vi}
2373	Determines the order in which ":cstag" performs a search.  See
2374	|cscopetagorder|.
2375	NOTE: This option is set to 0 when 'compatible' is set.
2376
2377					*'cscopeverbose'* *'csverb'*
2378					*'nocscopeverbose'* *'nocsverb'*
2379'cscopeverbose' 'csverb' boolean (default off)
2380			global
2381			{not available when compiled without the |+cscope|
2382			feature}
2383			{not in Vi}
2384	Give messages when adding a cscope database.  See |cscopeverbose|.
2385	NOTE: This option is reset when 'compatible' is set.
2386
2387			*'cursorbind'* *'crb'* *'nocursorbind'* *'nocrb'*
2388'cursorbind' 'crb'	boolean  (default off)
2389			local to window
2390			{not in Vi}
2391			{not available when compiled without the |+cursorbind|
2392			feature}
2393	When this option is set, as the cursor in the current
2394	window moves other cursorbound windows (windows that also have
2395	this option set) move their cursors to the corresponding line and
2396	column.  This option is useful for viewing the
2397	differences between two versions of a file (see 'diff'); in diff mode,
2398	inserted and deleted lines (though not characters within a line) are
2399	taken into account.
2400
2401
2402			*'cursorcolumn'* *'cuc'* *'nocursorcolumn'* *'nocuc'*
2403'cursorcolumn' 'cuc'	boolean	(default off)
2404			local to window
2405			{not in Vi}
2406			{not available when compiled without the |+syntax|
2407			feature}
2408	Highlight the screen column of the cursor with CursorColumn
2409	|hl-CursorColumn|.  Useful to align text.  Will make screen redrawing
2410	slower.
2411	If you only want the highlighting in the current window you can use
2412	these autocommands: >
2413		au WinLeave * set nocursorline nocursorcolumn
2414		au WinEnter * set cursorline cursorcolumn
2415<
2416
2417			*'cursorline'* *'cul'* *'nocursorline'* *'nocul'*
2418'cursorline' 'cul'	boolean	(default off)
2419			local to window
2420			{not in Vi}
2421			{not available when compiled without the |+syntax|
2422			feature}
2423	Highlight the screen line of the cursor with CursorLine
2424	|hl-CursorLine|.  Useful to easily spot the cursor.  Will make screen
2425	redrawing slower.
2426	When Visual mode is active the highlighting isn't used to make it
2427	easier to see the selected text.
2428
2429
2430						*'debug'*
2431'debug'			string	(default "")
2432			global
2433			{not in Vi}
2434	These values can be used:
2435	msg	Error messages that would otherwise be omitted will be given
2436		anyway.
2437	throw	Error messages that would otherwise be omitted will be given
2438		anyway and also throw an exception and set |v:errmsg|.
2439	beep	A message will be given when otherwise only a beep would be
2440		produced.
2441	The values can be combined, separated by a comma.
2442	"msg" and "throw" are useful for debugging 'foldexpr', 'formatexpr' or
2443	'indentexpr'.
2444
2445						*'define'* *'def'*
2446'define' 'def'		string	(default "^\s*#\s*define")
2447			global or local to buffer |global-local|
2448			{not in Vi}
2449	Pattern to be used to find a macro definition.  It is a search
2450	pattern, just like for the "/" command.  This option is used for the
2451	commands like "[i" and "[d" |include-search|.  The 'isident' option is
2452	used to recognize the defined name after the match:
2453		{match with 'define'}{non-ID chars}{defined name}{non-ID char}
2454	See |option-backslash| about inserting backslashes to include a space
2455	or backslash.
2456	The default value is for C programs.  For C++ this value would be
2457	useful, to include const type declarations: >
2458		^\(#\s*define\|[a-z]*\s*const\s*[a-z]*\)
2459<	When using the ":set" command, you need to double the backslashes!
2460
2461			*'delcombine'* *'deco'* *'nodelcombine'* *'nodeco'*
2462'delcombine' 'deco'	boolean (default off)
2463			global
2464			{not in Vi}
2465			{only available when compiled with the |+multi_byte|
2466			feature}
2467	If editing Unicode and this option is set, backspace and Normal mode
2468	"x" delete each combining character on its own.  When it is off (the
2469	default) the character along with its combining characters are
2470	deleted.
2471	Note: When 'delcombine' is set "xx" may work different from "2x"!
2472
2473	This is useful for Arabic, Hebrew and many other languages where one
2474	may have combining characters overtop of base characters, and want
2475	to remove only the combining ones.
2476
2477						*'dictionary'* *'dict'*
2478'dictionary' 'dict'	string	(default "")
2479			global or local to buffer |global-local|
2480			{not in Vi}
2481	List of file names, separated by commas, that are used to lookup words
2482	for keyword completion commands |i_CTRL-X_CTRL-K|.  Each file should
2483	contain a list of words.  This can be one word per line, or several
2484	words per line, separated by non-keyword characters (white space is
2485	preferred).  Maximum line length is 510 bytes.
2486	When this option is empty, or an entry "spell" is present, spell
2487	checking is enabled the currently active spelling is used. |spell|
2488	To include a comma in a file name precede it with a backslash.  Spaces
2489	after a comma are ignored, otherwise spaces are included in the file
2490	name.  See |option-backslash| about using backslashes.
2491	This has nothing to do with the |Dictionary| variable type.
2492	Where to find a list of words?
2493	- On FreeBSD, there is the file "/usr/share/dict/words".
2494	- In the Simtel archive, look in the "msdos/linguist" directory.
2495	- In "miscfiles" of the GNU collection.
2496	The use of |:set+=| and |:set-=| is preferred when adding or removing
2497	directories from the list.  This avoids problems when a future version
2498	uses another default.
2499	Backticks cannot be used in this option for security reasons.
2500
2501							*'diff'* *'nodiff'*
2502'diff'			boolean	(default off)
2503			local to window
2504			{not in Vi}
2505			{not available when compiled without the |+diff|
2506			feature}
2507	Join the current window in the group of windows that shows differences
2508	between files.  See |vimdiff|.
2509
2510						*'dex'* *'diffexpr'*
2511'diffexpr' 'dex'	string	(default "")
2512			global
2513			{not in Vi}
2514			{not available when compiled without the |+diff|
2515			feature}
2516	Expression which is evaluated to obtain an ed-style diff file from two
2517	versions of a file.  See |diff-diffexpr|.
2518	This option cannot be set from a |modeline| or in the |sandbox|, for
2519	security reasons.
2520
2521						*'dip'* *'diffopt'*
2522'diffopt' 'dip'		string	(default "filler")
2523			global
2524			{not in Vi}
2525			{not available when compiled without the |+diff|
2526			feature}
2527	Option settings for diff mode.  It can consist of the following items.
2528	All are optional.  Items must be separated by a comma.
2529
2530		filler		Show filler lines, to keep the text
2531				synchronized with a window that has inserted
2532				lines at the same position.  Mostly useful
2533				when windows are side-by-side and 'scrollbind'
2534				is set.
2535
2536		context:{n}	Use a context of {n} lines between a change
2537				and a fold that contains unchanged lines.
2538				When omitted a context of six lines is used.
2539				See |fold-diff|.
2540
2541		icase		Ignore changes in case of text.  "a" and "A"
2542				are considered the same.  Adds the "-i" flag
2543				to the "diff" command if 'diffexpr' is empty.
2544
2545		iwhite		Ignore changes in amount of white space.  Adds
2546				the "-b" flag to the "diff" command if
2547				'diffexpr' is empty.  Check the documentation
2548				of the "diff" command for what this does
2549				exactly.  It should ignore adding trailing
2550				white space, but not leading white space.
2551
2552		horizontal	Start diff mode with horizontal splits (unless
2553				explicitly specified otherwise).
2554
2555		vertical	Start diff mode with vertical splits (unless
2556				explicitly specified otherwise).
2557
2558		foldcolumn:{n}	Set the 'foldcolumn' option to {n} when
2559				starting diff mode.  Without this 2 is used.
2560
2561	Examples: >
2562
2563		:set diffopt=filler,context:4
2564		:set diffopt=
2565		:set diffopt=filler,foldcolumn:3
2566<
2567				     *'digraph'* *'dg'* *'nodigraph'* *'nodg'*
2568'digraph' 'dg'		boolean	(default off)
2569			global
2570			{not in Vi}
2571			{not available when compiled without the |+digraphs|
2572			feature}
2573	Enable the entering of digraphs in Insert mode with {char1} <BS>
2574	{char2}.  See |digraphs|.
2575	NOTE: This option is reset when 'compatible' is set.
2576
2577						*'directory'* *'dir'*
2578'directory' 'dir'	string	(default for Amiga: ".,t:",
2579				 for MS-DOS and Win32: ".,$TEMP,c:\tmp,c:\temp"
2580				 for Unix: ".,~/tmp,/var/tmp,/tmp")
2581			global
2582	List of directory names for the swap file, separated with commas.
2583	- The swap file will be created in the first directory where this is
2584	  possible.
2585	- Empty means that no swap file will be used (recovery is
2586	  impossible!).
2587	- A directory "." means to put the swap file in the same directory as
2588	  the edited file.  On Unix, a dot is prepended to the file name, so
2589	  it doesn't show in a directory listing.  On MS-Windows the "hidden"
2590	  attribute is set and a dot prepended if possible.
2591	- A directory starting with "./" (or ".\" for MS-DOS et al.) means to
2592	  put the swap file relative to where the edited file is.  The leading
2593	  "." is replaced with the path name of the edited file.
2594	- For Unix and Win32, if a directory ends in two path separators "//"
2595	  or "\\", the swap file name will be built from the complete path to
2596	  the file with all path separators substituted to percent '%' signs.
2597	  This will ensure file name uniqueness in the preserve directory.
2598	  On Win32, when a separating comma is following, you must use "//",
2599	  since "\\" will include the comma in the file name.
2600	- Spaces after the comma are ignored, other spaces are considered part
2601	  of the directory name.  To have a space at the start of a directory
2602	  name, precede it with a backslash.
2603	- To include a comma in a directory name precede it with a backslash.
2604	- A directory name may end in an ':' or '/'.
2605	- Environment variables are expanded |:set_env|.
2606	- Careful with '\' characters, type one before a space, type two to
2607	  get one in the option (see |option-backslash|), for example: >
2608	    :set dir=c:\\tmp,\ dir\\,with\\,commas,\\\ dir\ with\ spaces
2609<	- For backwards compatibility with Vim version 3.0 a '>' at the start
2610	  of the option is removed.
2611	Using "." first in the list is recommended.  This means that editing
2612	the same file twice will result in a warning.  Using "/tmp" on Unix is
2613	discouraged: When the system crashes you lose the swap file.
2614	"/var/tmp" is often not cleared when rebooting, thus is a better
2615	choice than "/tmp".  But it can contain a lot of files, your swap
2616	files get lost in the crowd.  That is why a "tmp" directory in your
2617	home directory is tried first.
2618	The use of |:set+=| and |:set-=| is preferred when adding or removing
2619	directories from the list.  This avoids problems when a future version
2620	uses another default.
2621	This option cannot be set from a |modeline| or in the |sandbox|, for
2622	security reasons.
2623	{Vi: directory to put temp file in, defaults to "/tmp"}
2624
2625					*'display'* *'dy'*
2626'display' 'dy'		string	(default "")
2627			global
2628			{not in Vi}
2629	Change the way text is displayed.  This is comma separated list of
2630	flags:
2631	lastline	When included, as much as possible of the last line
2632			in a window will be displayed.  When not included, a
2633			last line that doesn't fit is replaced with "@" lines.
2634	uhex		Show unprintable characters hexadecimal as <xx>
2635			instead of using ^C and ~C.
2636
2637						*'eadirection'* *'ead'*
2638'eadirection' 'ead'	string	(default "both")
2639			global
2640			{not in Vi}
2641			{not available when compiled without the |+vertsplit|
2642			feature}
2643	Tells when the 'equalalways' option applies:
2644		ver	vertically, width of windows is not affected
2645		hor	horizontally, height of windows is not affected
2646		both	width and height of windows is affected
2647
2648			   *'ed'* *'edcompatible'* *'noed'* *'noedcompatible'*
2649'edcompatible' 'ed'	boolean	(default off)
2650			global
2651	Makes the 'g' and 'c' flags of the ":substitute" command to be
2652	toggled each time the flag is given.  See |complex-change|.  See
2653	also 'gdefault' option.
2654	Switching this option on is discouraged!
2655
2656					*'encoding'* *'enc'* *E543*
2657'encoding' 'enc'	string (default: "latin1" or value from $LANG)
2658			global
2659			{only available when compiled with the |+multi_byte|
2660			feature}
2661			{not in Vi}
2662	Sets the character encoding used inside Vim.  It applies to text in
2663	the buffers, registers, Strings in expressions, text stored in the
2664	viminfo file, etc.  It sets the kind of characters which Vim can work
2665	with.  See |encoding-names| for the possible values.
2666
2667	NOTE: Changing this option will not change the encoding of the
2668	existing text in Vim.  It may cause non-ASCII text to become invalid.
2669	It should normally be kept at its default value, or set when Vim
2670	starts up.  See |multibyte|.  To reload the menus see |:menutrans|.
2671
2672	This option cannot be set from a |modeline|.  It would most likely
2673	corrupt the text.
2674
2675	NOTE: For GTK+ 2 it is highly recommended to set 'encoding' to
2676	"utf-8".  Although care has been taken to allow different values of
2677	'encoding', "utf-8" is the natural choice for the environment and
2678	avoids unnecessary conversion overhead.  "utf-8" has not been made
2679	the default to prevent different behavior of the GUI and terminal
2680	versions, and to avoid changing the encoding of newly created files
2681	without your knowledge (in case 'fileencodings' is empty).
2682
2683	The character encoding of files can be different from 'encoding'.
2684	This is specified with 'fileencoding'.  The conversion is done with
2685	iconv() or as specified with 'charconvert'.
2686
2687	If you need to know whether 'encoding' is a multi-byte encoding, you
2688	can use: >
2689		if has("multi_byte_encoding")
2690<
2691	Normally 'encoding' will be equal to your current locale.  This will
2692	be the default if Vim recognizes your environment settings.  If
2693	'encoding' is not set to the current locale, 'termencoding' must be
2694	set to convert typed and displayed text.  See |encoding-table|.
2695
2696	When you set this option, it fires the |EncodingChanged| autocommand
2697	event so that you can set up fonts if necessary.
2698
2699	When the option is set, the value is converted to lowercase.  Thus
2700	you can set it with uppercase values too.  Underscores are translated
2701	to '-' signs.
2702	When the encoding is recognized, it is changed to the standard name.
2703	For example "Latin-1" becomes "latin1", "ISO_88592" becomes
2704	"iso-8859-2" and "utf8" becomes "utf-8".
2705
2706	Note: "latin1" is also used when the encoding could not be detected.
2707	This only works when editing files in the same encoding!  When the
2708	actual character set is not latin1, make sure 'fileencoding' and
2709	'fileencodings' are empty.  When conversion is needed, switch to using
2710	utf-8.
2711
2712	When "unicode", "ucs-2" or "ucs-4" is used, Vim internally uses utf-8.
2713	You don't notice this while editing, but it does matter for the
2714	|viminfo-file|.  And Vim expects the terminal to use utf-8 too.  Thus
2715	setting 'encoding' to one of these values instead of utf-8 only has
2716	effect for encoding used for files when 'fileencoding' is empty.
2717
2718	When 'encoding' is set to a Unicode encoding, and 'fileencodings' was
2719	not set yet, the default for 'fileencodings' is changed.
2720
2721			*'endofline'* *'eol'* *'noendofline'* *'noeol'*
2722'endofline' 'eol'	boolean	(default on)
2723			local to buffer
2724			{not in Vi}
2725	When writing a file and this option is off and the 'binary' option
2726	is on, or 'fixeol' option is off, no <EOL> will be written for the
2727	last line in the file.  This option is automatically set or reset when
2728	starting to edit a new file, depending on whether file has an <EOL>
2729	for the last line in the file.  Normally you don't have to set or
2730	reset this option.
2731	When 'binary' is off and 'fixeol' is on the value is not used when
2732	writing the file.  When 'binary' is on or 'fixeol' is off it is used
2733	to remember the presence of a <EOL> for the last line in the file, so
2734	that when you write the file the situation from the original file can
2735	be kept.  But you can change it if you want to.
2736
2737			     *'equalalways'* *'ea'* *'noequalalways'* *'noea'*
2738'equalalways' 'ea'	boolean	(default on)
2739			global
2740			{not in Vi}
2741	When on, all the windows are automatically made the same size after
2742	splitting or closing a window.  This also happens the moment the
2743	option is switched on.  When off, splitting a window will reduce the
2744	size of the current window and leave the other windows the same.  When
2745	closing a window the extra lines are given to the window next to it
2746	(depending on 'splitbelow' and 'splitright').
2747	When mixing vertically and horizontally split windows, a minimal size
2748	is computed and some windows may be larger if there is room.  The
2749	'eadirection' option tells in which direction the size is affected.
2750	Changing the height and width of a window can be avoided by setting
2751	'winfixheight' and 'winfixwidth', respectively.
2752	If a window size is specified when creating a new window sizes are
2753	currently not equalized (it's complicated, but may be implemented in
2754	the future).
2755
2756						*'equalprg'* *'ep'*
2757'equalprg' 'ep'		string	(default "")
2758			global or local to buffer |global-local|
2759			{not in Vi}
2760	External program to use for "=" command.  When this option is empty
2761	the internal formatting functions are used; either 'lisp', 'cindent'
2762	or 'indentexpr'.  When Vim was compiled without internal formatting,
2763	the "indent" program is used.
2764	Environment variables are expanded |:set_env|.  See |option-backslash|
2765	about including spaces and backslashes.
2766	This option cannot be set from a |modeline| or in the |sandbox|, for
2767	security reasons.
2768
2769			*'errorbells'* *'eb'* *'noerrorbells'* *'noeb'*
2770'errorbells' 'eb'	boolean	(default off)
2771			global
2772	Ring the bell (beep or screen flash) for error messages.  This only
2773	makes a difference for error messages, the bell will be used always
2774	for a lot of errors without a message (e.g., hitting <Esc> in Normal
2775	mode).  See 'visualbell' on how to make the bell behave like a beep,
2776	screen flash or do nothing. See 'belloff' to finetune when to ring the
2777	bell.
2778
2779						*'errorfile'* *'ef'*
2780'errorfile' 'ef'	string	(Amiga default: "AztecC.Err",
2781					others: "errors.err")
2782			global
2783			{not in Vi}
2784			{not available when compiled without the |+quickfix|
2785			feature}
2786	Name of the errorfile for the QuickFix mode (see |:cf|).
2787	When the "-q" command-line argument is used, 'errorfile' is set to the
2788	following argument.  See |-q|.
2789	NOT used for the ":make" command.  See 'makeef' for that.
2790	Environment variables are expanded |:set_env|.
2791	See |option-backslash| about including spaces and backslashes.
2792	This option cannot be set from a |modeline| or in the |sandbox|, for
2793	security reasons.
2794
2795						*'errorformat'* *'efm'*
2796'errorformat' 'efm'	string	(default is very long)
2797			global or local to buffer |global-local|
2798			{not in Vi}
2799			{not available when compiled without the |+quickfix|
2800			feature}
2801	Scanf-like description of the format for the lines in the error file
2802	(see |errorformat|).
2803
2804				     *'esckeys'* *'ek'* *'noesckeys'* *'noek'*
2805'esckeys' 'ek'		boolean	(Vim default: on, Vi default: off)
2806			global
2807			{not in Vi}
2808	Function keys that start with an <Esc> are recognized in Insert
2809	mode.  When this option is off, the cursor and function keys cannot be
2810	used in Insert mode if they start with an <Esc>.  The advantage of
2811	this is that the single <Esc> is recognized immediately, instead of
2812	after one second.  Instead of resetting this option, you might want to
2813	try changing the values for 'timeoutlen' and 'ttimeoutlen'.  Note that
2814	when 'esckeys' is off, you can still map anything, but the cursor keys
2815	won't work by default.
2816	NOTE: This option is set to the Vi default value when 'compatible' is
2817	set and to the Vim default value when 'compatible' is reset.
2818
2819						*'eventignore'* *'ei'*
2820'eventignore' 'ei'	string	(default "")
2821			global
2822			{not in Vi}
2823			{not available when compiled without the |+autocmd|
2824			feature}
2825	A list of autocommand event names, which are to be ignored.
2826	When set to "all" or when "all" is one of the items, all autocommand
2827	events are ignored, autocommands will not be executed.
2828	Otherwise this is a comma separated list of event names.  Example: >
2829	    :set ei=WinEnter,WinLeave
2830<
2831				 *'expandtab'* *'et'* *'noexpandtab'* *'noet'*
2832'expandtab' 'et'	boolean	(default off)
2833			local to buffer
2834			{not in Vi}
2835	In Insert mode: Use the appropriate number of spaces to insert a
2836	<Tab>.  Spaces are used in indents with the '>' and '<' commands and
2837	when 'autoindent' is on.  To insert a real tab when 'expandtab' is
2838	on, use CTRL-V<Tab>.  See also |:retab| and |ins-expandtab|.
2839	This option is reset when the 'paste' option is set and restored when
2840	the 'paste' option is reset.
2841	NOTE: This option is reset when 'compatible' is set.
2842
2843					*'exrc'* *'ex'* *'noexrc'* *'noex'*
2844'exrc' 'ex'		boolean (default off)
2845			global
2846			{not in Vi}
2847	Enables the reading of .vimrc, .exrc and .gvimrc in the current
2848	directory.  If you switch this option on you should also consider
2849	setting the 'secure' option (see |initialization|).  Using a local
2850	.exrc, .vimrc or .gvimrc is a potential security leak, use with care!
2851	also see |.vimrc| and |gui-init|.
2852	This option cannot be set from a |modeline| or in the |sandbox|, for
2853	security reasons.
2854
2855				*'fileencoding'* *'fenc'* *E213*
2856'fileencoding' 'fenc'	string (default: "")
2857			local to buffer
2858			{only available when compiled with the |+multi_byte|
2859			feature}
2860			{not in Vi}
2861	Sets the character encoding for the file of this buffer.
2862
2863	When 'fileencoding' is different from 'encoding', conversion will be
2864	done when writing the file.  For reading see below.
2865	When 'fileencoding' is empty, the same value as 'encoding' will be
2866	used (no conversion when reading or writing a file).
2867	Conversion will also be done when 'encoding' and 'fileencoding' are
2868	both a Unicode encoding and 'fileencoding' is not utf-8.  That's
2869	because internally Unicode is always stored as utf-8.
2870		WARNING: Conversion can cause loss of information!  When
2871		'encoding' is "utf-8" or another Unicode encoding, conversion
2872		is most likely done in a way that the reverse conversion
2873		results in the same text.  When 'encoding' is not "utf-8" some
2874		characters may be lost!
2875
2876	See 'encoding' for the possible values.  Additionally, values may be
2877	specified that can be handled by the converter, see
2878	|mbyte-conversion|.
2879
2880	When reading a file 'fileencoding' will be set from 'fileencodings'.
2881	To read a file in a certain encoding it won't work by setting
2882	'fileencoding', use the |++enc| argument.  One exception: when
2883	'fileencodings' is empty the value of 'fileencoding' is used.
2884	For a new file the global value of 'fileencoding' is used.
2885
2886	Prepending "8bit-" and "2byte-" has no meaning here, they are ignored.
2887	When the option is set, the value is converted to lowercase.  Thus
2888	you can set it with uppercase values too.  '_' characters are
2889	replaced with '-'.  If a name is recognized from the list for
2890	'encoding', it is replaced by the standard name.  For example
2891	"ISO8859-2" becomes "iso-8859-2".
2892
2893	When this option is set, after starting to edit a file, the 'modified'
2894	option is set, because the file would be different when written.
2895
2896	Keep in mind that changing 'fenc' from a modeline happens
2897	AFTER the text has been read, thus it applies to when the file will be
2898	written.  If you do set 'fenc' in a modeline, you might want to set
2899	'nomodified' to avoid not being able to ":q".
2900
2901	This option can not be changed when 'modifiable' is off.
2902
2903							*'fe'*
2904	NOTE: Before version 6.0 this option specified the encoding for the
2905	whole of Vim, this was a mistake.  Now use 'encoding' instead.  The
2906	old short name was 'fe', which is no longer used.
2907
2908					*'fileencodings'* *'fencs'*
2909'fileencodings' 'fencs'	string (default: "ucs-bom",
2910				    "ucs-bom,utf-8,default,latin1" when
2911				    'encoding' is set to a Unicode value)
2912			global
2913			{only available when compiled with the |+multi_byte|
2914			feature}
2915			{not in Vi}
2916	This is a list of character encodings considered when starting to edit
2917	an existing file.  When a file is read, Vim tries to use the first
2918	mentioned character encoding.  If an error is detected, the next one
2919	in the list is tried.  When an encoding is found that works,
2920	'fileencoding' is set to it.  If all fail, 'fileencoding' is set to
2921	an empty string, which means the value of 'encoding' is used.
2922		WARNING: Conversion can cause loss of information!  When
2923		'encoding' is "utf-8" (or one of the other Unicode variants)
2924		conversion is most likely done in a way that the reverse
2925		conversion results in the same text.  When 'encoding' is not
2926		"utf-8" some non-ASCII characters may be lost!  You can use
2927		the |++bad| argument to specify what is done with characters
2928		that can't be converted.
2929	For an empty file or a file with only ASCII characters most encodings
2930	will work and the first entry of 'fileencodings' will be used (except
2931	"ucs-bom", which requires the BOM to be present).  If you prefer
2932	another encoding use an BufReadPost autocommand event to test if your
2933	preferred encoding is to be used.  Example: >
2934		au BufReadPost * if search('\S', 'w') == 0 |
2935			\ set fenc=iso-2022-jp | endif
2936<	This sets 'fileencoding' to "iso-2022-jp" if the file does not contain
2937	non-blank characters.
2938	When the |++enc| argument is used then the value of 'fileencodings' is
2939	not used.
2940	Note that 'fileencodings' is not used for a new file, the global value
2941	of 'fileencoding' is used instead.  You can set it with: >
2942		:setglobal fenc=iso-8859-2
2943<	This means that a non-existing file may get a different encoding than
2944	an empty file.
2945	The special value "ucs-bom" can be used to check for a Unicode BOM
2946	(Byte Order Mark) at the start of the file.  It must not be preceded
2947	by "utf-8" or another Unicode encoding for this to work properly.
2948	An entry for an 8-bit encoding (e.g., "latin1") should be the last,
2949	because Vim cannot detect an error, thus the encoding is always
2950	accepted.
2951	The special value "default" can be used for the encoding from the
2952	environment.  This is the default value for 'encoding'.  It is useful
2953	when 'encoding' is set to "utf-8" and your environment uses a
2954	non-latin1 encoding, such as Russian.
2955	When 'encoding' is "utf-8" and a file contains an illegal byte
2956	sequence it won't be recognized as UTF-8.  You can use the |8g8|
2957	command to find the illegal byte sequence.
2958	WRONG VALUES:			WHAT'S WRONG:
2959		latin1,utf-8		"latin1" will always be used
2960		utf-8,ucs-bom,latin1	BOM won't be recognized in an utf-8
2961					file
2962		cp1250,latin1		"cp1250" will always be used
2963	If 'fileencodings' is empty, 'fileencoding' is not modified.
2964	See 'fileencoding' for the possible values.
2965	Setting this option does not have an effect until the next time a file
2966	is read.
2967
2968					*'fileformat'* *'ff'*
2969'fileformat' 'ff'	string (MS-DOS, MS-Windows, OS/2 default: "dos",
2970				Unix default: "unix",
2971				Macintosh default: "mac")
2972			local to buffer
2973			{not in Vi}
2974	This gives the <EOL> of the current buffer, which is used for
2975	reading/writing the buffer from/to a file:
2976	    dos	    <CR> <NL>
2977	    unix    <NL>
2978	    mac	    <CR>
2979	When "dos" is used, CTRL-Z at the end of a file is ignored.
2980	See |file-formats| and |file-read|.
2981	For the character encoding of the file see 'fileencoding'.
2982	When 'binary' is set, the value of 'fileformat' is ignored, file I/O
2983	works like it was set to "unix".
2984	This option is set automatically when starting to edit a file and
2985	'fileformats' is not empty and 'binary' is off.
2986	When this option is set, after starting to edit a file, the 'modified'
2987	option is set, because the file would be different when written.
2988	This option can not be changed when 'modifiable' is off.
2989	For backwards compatibility: When this option is set to "dos",
2990	'textmode' is set, otherwise 'textmode' is reset.
2991
2992					*'fileformats'* *'ffs'*
2993'fileformats' 'ffs'	string (default:
2994				Vim+Vi	MS-DOS, MS-Windows OS/2: "dos,unix",
2995				Vim	Unix: "unix,dos",
2996				Vim	Mac: "mac,unix,dos",
2997				Vi	Cygwin: "unix,dos",
2998				Vi	others: "")
2999			global
3000			{not in Vi}
3001	This gives the end-of-line (<EOL>) formats that will be tried when
3002	starting to edit a new buffer and when reading a file into an existing
3003	buffer:
3004	- When empty, the format defined with 'fileformat' will be used
3005	  always.  It is not set automatically.
3006	- When set to one name, that format will be used whenever a new buffer
3007	  is opened.  'fileformat' is set accordingly for that buffer.  The
3008	  'fileformats' name will be used when a file is read into an existing
3009	  buffer, no matter what 'fileformat' for that buffer is set to.
3010	- When more than one name is present, separated by commas, automatic
3011	  <EOL> detection will be done when reading a file.  When starting to
3012	  edit a file, a check is done for the <EOL>:
3013	  1. If all lines end in <CR><NL>, and 'fileformats' includes "dos",
3014	     'fileformat' is set to "dos".
3015	  2. If a <NL> is found and 'fileformats' includes "unix", 'fileformat'
3016	     is set to "unix".  Note that when a <NL> is found without a
3017	     preceding <CR>, "unix" is preferred over "dos".
3018	  3. If 'fileformat' has not yet been set, and if a <CR> is found, and
3019	     if 'fileformats' includes "mac", 'fileformat' is set to "mac".
3020	     This means that "mac" is only chosen when:
3021	      "unix" is not present or no <NL> is found in the file, and
3022	      "dos" is not present or no <CR><NL> is found in the file.
3023	     Except: if "unix" was chosen, but there is a <CR> before
3024	     the first <NL>, and there appear to be more <CR>s than <NL>s in
3025	     the first few lines, "mac" is used.
3026	  4. If 'fileformat' is still not set, the first name from
3027	     'fileformats' is used.
3028	  When reading a file into an existing buffer, the same is done, but
3029	  this happens like 'fileformat' has been set appropriately for that
3030	  file only, the option is not changed.
3031	When 'binary' is set, the value of 'fileformats' is not used.
3032
3033	Note that when Vim starts up with an empty buffer this option is not
3034	used.  Set 'fileformat' in your .vimrc instead.
3035
3036	For systems with a Dos-like <EOL> (<CR><NL>), when reading files that
3037	are ":source"ed and for vimrc files, automatic <EOL> detection may be
3038	done:
3039	- When 'fileformats' is empty, there is no automatic detection.  Dos
3040	  format will be used.
3041	- When 'fileformats' is set to one or more names, automatic detection
3042	  is done.  This is based on the first <NL> in the file: If there is a
3043	  <CR> in front of it, Dos format is used, otherwise Unix format is
3044	  used.
3045	Also see |file-formats|.
3046	For backwards compatibility: When this option is set to an empty
3047	string or one format (no comma is included), 'textauto' is reset,
3048	otherwise 'textauto' is set.
3049	NOTE: This option is set to the Vi default value when 'compatible' is
3050	set and to the Vim default value when 'compatible' is reset.
3051
3052		*'fileignorecase'* *'fic'* *'nofileignorecase'* *'nofic'*
3053'fileignorecase' 'fic'	boolean	(default on for systems where case in file
3054				 names is normally ignored)
3055			global
3056			{not in Vi}
3057	When set case is ignored when using file names and directories.
3058	See 'wildignorecase' for only ignoring case when doing completion.
3059
3060					*'filetype'* *'ft'*
3061'filetype' 'ft'		string (default: "")
3062			local to buffer
3063			{not in Vi}
3064			{not available when compiled without the |+autocmd|
3065			feature}
3066	When this option is set, the FileType autocommand event is triggered.
3067	All autocommands that match with the value of this option will be
3068	executed.  Thus the value of 'filetype' is used in place of the file
3069	name.
3070	Otherwise this option does not always reflect the current file type.
3071	This option is normally set when the file type is detected.  To enable
3072	this use the ":filetype on" command. |:filetype|
3073	Setting this option to a different value is most useful in a modeline,
3074	for a file for which the file type is not automatically recognized.
3075	Example, for in an IDL file:
3076		/* vim: set filetype=idl : */ ~
3077	|FileType| |filetypes|
3078	When a dot appears in the value then this separates two filetype
3079	names.  Example:
3080		/* vim: set filetype=c.doxygen : */ ~
3081	This will use the "c" filetype first, then the "doxygen" filetype.
3082	This works both for filetype plugins and for syntax files.  More than
3083	one dot may appear.
3084	This option is not copied to another buffer, independent of the 's' or
3085	'S' flag in 'cpoptions'.
3086	Only normal file name characters can be used, "/\*?[|<>" are illegal.
3087
3088						*'fillchars'* *'fcs'*
3089'fillchars' 'fcs'	string	(default "vert:|,fold:-")
3090			global
3091			{not in Vi}
3092			{not available when compiled without the |+windows|
3093			and |+folding| features}
3094	Characters to fill the statuslines and vertical separators.
3095	It is a comma separated list of items:
3096
3097	  item		default		Used for ~
3098	  stl:c		' ' or '^'	statusline of the current window
3099	  stlnc:c	' ' or '-'	statusline of the non-current windows
3100	  vert:c	'|'		vertical separators |:vsplit|
3101	  fold:c	'-'		filling 'foldtext'
3102	  diff:c	'-'		deleted lines of the 'diff' option
3103
3104	Any one that is omitted will fall back to the default.  For "stl" and
3105	"stlnc" the space will be used when there is highlighting, '^' or '-'
3106	otherwise.
3107
3108	Example: >
3109	    :set fillchars=stl:^,stlnc:-,vert:\|,fold:-,diff:-
3110<	This is similar to the default, except that these characters will also
3111	be used when there is highlighting.
3112
3113	for "stl" and "stlnc" only single-byte values are supported.
3114
3115	The highlighting used for these items:
3116	  item		highlight group ~
3117	  stl:c		StatusLine		|hl-StatusLine|
3118	  stlnc:c	StatusLineNC		|hl-StatusLineNC|
3119	  vert:c	VertSplit		|hl-VertSplit|
3120	  fold:c	Folded			|hl-Folded|
3121	  diff:c	DiffDelete		|hl-DiffDelete|
3122
3123		*'fixendofline'* *'fixeol'* *'nofixendofline'* *'nofixeol'*
3124'fixendofline' 'fixeol'	boolean	(default on)
3125			local to buffer
3126			{not in Vi}
3127	When writing a file and this option is on, <EOL> at the end of file
3128	will be restored if missing. Turn this option off if you want to
3129	preserve the situation from the original file.
3130	When the 'binary' option is set the value of this option doesn't
3131	matter.
3132	See the 'endofline' option.
3133
3134					*'fkmap'* *'fk'* *'nofkmap'* *'nofk'*
3135'fkmap' 'fk'		boolean (default off)			*E198*
3136			global
3137			{not in Vi}
3138			{only available when compiled with the |+rightleft|
3139			feature}
3140	When on, the keyboard is mapped for the Farsi character set.
3141	Normally you would set 'allowrevins' and use CTRL-_ in insert mode to
3142	toggle this option |i_CTRL-_|.  See |farsi.txt|.
3143
3144						*'foldclose'* *'fcl'*
3145'foldclose' 'fcl'	string (default "")
3146			global
3147			{not in Vi}
3148			{not available when compiled without the |+folding|
3149			feature}
3150	When set to "all", a fold is closed when the cursor isn't in it and
3151	its level is higher than 'foldlevel'.  Useful if you want folds to
3152	automatically close when moving out of them.
3153
3154						*'foldcolumn'* *'fdc'*
3155'foldcolumn' 'fdc'	number (default 0)
3156			local to window
3157			{not in Vi}
3158			{not available when compiled without the |+folding|
3159			feature}
3160	When non-zero, a column with the specified width is shown at the side
3161	of the window which indicates open and closed folds.  The maximum
3162	value is 12.
3163	See |folding|.
3164
3165			*'foldenable'* *'fen'* *'nofoldenable'* *'nofen'*
3166'foldenable' 'fen'	boolean (default on)
3167			local to window
3168			{not in Vi}
3169			{not available when compiled without the |+folding|
3170			feature}
3171	When off, all folds are open.  This option can be used to quickly
3172	switch between showing all text unfolded and viewing the text with
3173	folds (including manually opened or closed folds).  It can be toggled
3174	with the |zi| command.  The 'foldcolumn' will remain blank when
3175	'foldenable' is off.
3176	This option is set by commands that create a new fold or close a fold.
3177	See |folding|.
3178
3179						*'foldexpr'* *'fde'*
3180'foldexpr' 'fde'	string (default: "0")
3181			local to window
3182			{not in Vi}
3183			{not available when compiled without the |+folding|
3184			or |+eval| features}
3185	The expression used for when 'foldmethod' is "expr".  It is evaluated
3186	for each line to obtain its fold level.  See |fold-expr|.
3187
3188	The expression will be evaluated in the |sandbox| if set from a
3189	modeline, see |sandbox-option|.
3190	This option can't be set from a |modeline| when the 'diff' option is
3191	on.
3192
3193	It is not allowed to change text or jump to another window while
3194	evaluating 'foldexpr' |textlock|.
3195
3196						*'foldignore'* *'fdi'*
3197'foldignore' 'fdi'	string (default: "#")
3198			local to window
3199			{not in Vi}
3200			{not available when compiled without the |+folding|
3201			feature}
3202	Used only when 'foldmethod' is "indent".  Lines starting with
3203	characters in 'foldignore' will get their fold level from surrounding
3204	lines.  White space is skipped before checking for this character.
3205	The default "#" works well for C programs.  See |fold-indent|.
3206
3207						*'foldlevel'* *'fdl'*
3208'foldlevel' 'fdl'	number (default: 0)
3209			local to window
3210			{not in Vi}
3211			{not available when compiled without the |+folding|
3212			feature}
3213	Sets the fold level: Folds with a higher level will be closed.
3214	Setting this option to zero will close all folds.  Higher numbers will
3215	close fewer folds.
3216	This option is set by commands like |zm|, |zM| and |zR|.
3217	See |fold-foldlevel|.
3218
3219						*'foldlevelstart'* *'fdls'*
3220'foldlevelstart' 'fdls'	number (default: -1)
3221			global
3222			{not in Vi}
3223			{not available when compiled without the |+folding|
3224			feature}
3225	Sets 'foldlevel' when starting to edit another buffer in a window.
3226	Useful to always start editing with all folds closed (value zero),
3227	some folds closed (one) or no folds closed (99).
3228	This is done before reading any modeline, thus a setting in a modeline
3229	overrules this option.  Starting to edit a file for |diff-mode| also
3230	ignores this option and closes all folds.
3231	It is also done before BufReadPre autocommands, to allow an autocmd to
3232	overrule the 'foldlevel' value for specific files.
3233	When the value is negative, it is not used.
3234
3235						*'foldmarker'* *'fmr'* *E536*
3236'foldmarker' 'fmr'	string (default: "{{{,}}}")
3237			local to window
3238			{not in Vi}
3239			{not available when compiled without the |+folding|
3240			feature}
3241	The start and end marker used when 'foldmethod' is "marker".  There
3242	must be one comma, which separates the start and end marker.  The
3243	marker is a literal string (a regular expression would be too slow).
3244	See |fold-marker|.
3245
3246						*'foldmethod'* *'fdm'*
3247'foldmethod' 'fdm'	string (default: "manual")
3248			local to window
3249			{not in Vi}
3250			{not available when compiled without the |+folding|
3251			feature}
3252	The kind of folding used for the current window.  Possible values:
3253	|fold-manual|	manual	    Folds are created manually.
3254	|fold-indent|	indent	    Lines with equal indent form a fold.
3255	|fold-expr|	expr	    'foldexpr' gives the fold level of a line.
3256	|fold-marker|	marker	    Markers are used to specify folds.
3257	|fold-syntax|	syntax	    Syntax highlighting items specify folds.
3258	|fold-diff|	diff	    Fold text that is not changed.
3259
3260						*'foldminlines'* *'fml'*
3261'foldminlines' 'fml'	number (default: 1)
3262			local to window
3263			{not in Vi}
3264			{not available when compiled without the |+folding|
3265			feature}
3266	Sets the number of screen lines above which a fold can be displayed
3267	closed.  Also for manually closed folds.  With the default value of
3268	one a fold can only be closed if it takes up two or more screen lines.
3269	Set to zero to be able to close folds of just one screen line.
3270	Note that this only has an effect on what is displayed.  After using
3271	"zc" to close a fold, which is displayed open because it's smaller
3272	than 'foldminlines', a following "zc" may close a containing fold.
3273
3274						*'foldnestmax'* *'fdn'*
3275'foldnestmax' 'fdn'	number (default: 20)
3276			local to window
3277			{not in Vi}
3278			{not available when compiled without the |+folding|
3279			feature}
3280	Sets the maximum nesting of folds for the "indent" and "syntax"
3281	methods.  This avoids that too many folds will be created.  Using more
3282	than 20 doesn't work, because the internal limit is 20.
3283
3284						*'foldopen'* *'fdo'*
3285'foldopen' 'fdo'	string (default: "block,hor,mark,percent,quickfix,
3286							     search,tag,undo")
3287			global
3288			{not in Vi}
3289			{not available when compiled without the |+folding|
3290			feature}
3291	Specifies for which type of commands folds will be opened, if the
3292	command moves the cursor into a closed fold.  It is a comma separated
3293	list of items.
3294	NOTE: When the command is part of a mapping this option is not used.
3295	Add the |zv| command to the mapping to get the same effect.
3296	(rationale: the mapping may want to control opening folds itself)
3297
3298		item		commands ~
3299		all		any
3300		block		"(", "{", "[[", "[{", etc.
3301		hor		horizontal movements: "l", "w", "fx", etc.
3302		insert		any command in Insert mode
3303		jump		far jumps: "G", "gg", etc.
3304		mark		jumping to a mark: "'m", CTRL-O, etc.
3305		percent		"%"
3306		quickfix	":cn", ":crew", ":make", etc.
3307		search		search for a pattern: "/", "n", "*", "gd", etc.
3308				(not for a search pattern in a ":" command)
3309				Also for |[s| and |]s|.
3310		tag		jumping to a tag: ":ta", CTRL-T, etc.
3311		undo		undo or redo: "u" and CTRL-R
3312	When a movement command is used for an operator (e.g., "dl" or "y%")
3313	this option is not used.  This means the operator will include the
3314	whole closed fold.
3315	Note that vertical movements are not here, because it would make it
3316	very difficult to move onto a closed fold.
3317	In insert mode the folds containing the cursor will always be open
3318	when text is inserted.
3319	To close folds you can re-apply 'foldlevel' with the |zx| command or
3320	set the 'foldclose' option to "all".
3321
3322						*'foldtext'* *'fdt'*
3323'foldtext' 'fdt'	string (default: "foldtext()")
3324			local to window
3325			{not in Vi}
3326			{not available when compiled without the |+folding|
3327			feature}
3328	An expression which is used to specify the text displayed for a closed
3329	fold.  See |fold-foldtext|.
3330
3331	The expression will be evaluated in the |sandbox| if set from a
3332	modeline, see |sandbox-option|.
3333
3334	It is not allowed to change text or jump to another window while
3335	evaluating 'foldtext' |textlock|.
3336
3337					*'formatoptions'* *'fo'*
3338'formatoptions' 'fo'	string (Vim default: "tcq", Vi default: "vt")
3339			local to buffer
3340			{not in Vi}
3341	This is a sequence of letters which describes how automatic
3342	formatting is to be done.  See |fo-table|.  When the 'paste' option is
3343	on, no formatting is done (like 'formatoptions' is empty).  Commas can
3344	be inserted for readability.
3345	To avoid problems with flags that are added in the future, use the
3346	"+=" and "-=" feature of ":set" |add-option-flags|.
3347	NOTE: This option is set to the Vi default value when 'compatible' is
3348	set and to the Vim default value when 'compatible' is reset.
3349
3350					*'formatlistpat'* *'flp'*
3351'formatlistpat' 'flp'	string (default: "^\s*\d\+[\]:.)}\t ]\s*")
3352			local to buffer
3353			{not in Vi}
3354	A pattern that is used to recognize a list header.  This is used for
3355	the "n" flag in 'formatoptions'.
3356	The pattern must match exactly the text that will be the indent for
3357	the line below it.  You can use |/\ze| to mark the end of the match
3358	while still checking more characters.  There must be a character
3359	following the pattern, when it matches the whole line it is handled
3360	like there is no match.
3361	The default recognizes a number, followed by an optional punctuation
3362	character and white space.
3363
3364						*'formatprg'* *'fp'*
3365'formatprg' 'fp'	string (default "")
3366			global
3367			{not in Vi}
3368	The name of an external program that will be used to format the lines
3369	selected with the |gq| operator.  The program must take the input on
3370	stdin and produce the output on stdout.  The Unix program "fmt" is
3371	such a program.
3372	If the 'formatexpr' option is not empty it will be used instead.
3373	Otherwise, if 'formatprg' option is an empty string, the internal
3374	format function will be used |C-indenting|.
3375	Environment variables are expanded |:set_env|.  See |option-backslash|
3376	about including spaces and backslashes.
3377	This option cannot be set from a |modeline| or in the |sandbox|, for
3378	security reasons.
3379
3380						*'formatexpr'* *'fex'*
3381'formatexpr' 'fex'	string (default "")
3382			local to buffer
3383			{not in Vi}
3384			{not available when compiled without the |+eval|
3385			feature}
3386	Expression which is evaluated to format a range of lines for the |gq|
3387	operator or automatic formatting (see 'formatoptions').  When this
3388	option is empty 'formatprg' is used.
3389
3390	The |v:lnum|  variable holds the first line to be formatted.
3391	The |v:count| variable holds the number of lines to be formatted.
3392	The |v:char|  variable holds the character that is going to be
3393		      inserted if the expression is being evaluated due to
3394		      automatic formatting.  This can be empty.  Don't insert
3395		      it yet!
3396
3397	Example: >
3398		:set formatexpr=mylang#Format()
3399<	This will invoke the mylang#Format() function in the
3400	autoload/mylang.vim file in 'runtimepath'. |autoload|
3401
3402	The expression is also evaluated when 'textwidth' is set and adding
3403	text beyond that limit.  This happens under the same conditions as
3404	when internal formatting is used.  Make sure the cursor is kept in the
3405	same spot relative to the text then!  The |mode()| function will
3406	return "i" or "R" in this situation.
3407
3408	When the expression evaluates to non-zero Vim will fall back to using
3409	the internal format mechanism.
3410
3411	The expression will be evaluated in the |sandbox| when set from a
3412	modeline, see |sandbox-option|.  That stops the option from working,
3413	since changing the buffer text is not allowed.
3414
3415					*'fsync'* *'fs'* *'nofsync'* *'nofs'*
3416'fsync' 'fs'		boolean	(default on)
3417			global
3418			{not in Vi}
3419	When on, the library function fsync() will be called after writing a
3420	file.  This will flush a file to disk, ensuring that it is safely
3421	written even on filesystems which do metadata-only journaling.  This
3422	will force the harddrive to spin up on Linux systems running in laptop
3423	mode, so it may be undesirable in some situations.  Be warned that
3424	turning this off increases the chances of data loss after a crash.  On
3425	systems without an fsync() implementation, this variable is always
3426	off.
3427	Also see 'swapsync' for controlling fsync() on swap files.
3428
3429				   *'gdefault'* *'gd'* *'nogdefault'* *'nogd'*
3430'gdefault' 'gd'		boolean	(default off)
3431			global
3432			{not in Vi}
3433	When on, the ":substitute" flag 'g' is default on.  This means that
3434	all matches in a line are substituted instead of one.  When a 'g' flag
3435	is given to a ":substitute" command, this will toggle the substitution
3436	of all or one match.  See |complex-change|.
3437
3438		command		'gdefault' on	'gdefault' off	~
3439		:s///		  subst. all	  subst. one
3440		:s///g		  subst. one	  subst. all
3441		:s///gg		  subst. all	  subst. one
3442
3443	NOTE: This option is reset when 'compatible' is set.
3444
3445						*'grepformat'* *'gfm'*
3446'grepformat' 'gfm'	string	(default "%f:%l:%m,%f:%l%m,%f  %l%m")
3447			global
3448			{not in Vi}
3449	Format to recognize for the ":grep" command output.
3450	This is a scanf-like string that uses the same format as the
3451	'errorformat' option: see |errorformat|.
3452
3453						*'grepprg'* *'gp'*
3454'grepprg' 'gp'		string	(default "grep -n ",
3455					Unix: "grep -n $* /dev/null",
3456					Win32: "findstr /n" or "grep -n",
3457						      VMS: "SEARCH/NUMBERS ")
3458			global or local to buffer |global-local|
3459			{not in Vi}
3460	Program to use for the |:grep| command.  This option may contain '%'
3461	and '#' characters, which are expanded like when used in a command-
3462	line.  The placeholder "$*" is allowed to specify where the arguments
3463	will be included.  Environment variables are expanded |:set_env|.  See
3464	|option-backslash| about including spaces and backslashes.
3465	When your "grep" accepts the "-H" argument, use this to make ":grep"
3466	also work well with a single file: >
3467		:set grepprg=grep\ -nH
3468<	Special value: When 'grepprg' is set to "internal" the |:grep| command
3469	works like |:vimgrep|, |:lgrep| like |:lvimgrep|, |:grepadd| like
3470	|:vimgrepadd| and |:lgrepadd| like |:lvimgrepadd|.
3471	See also the section |:make_makeprg|, since most of the comments there
3472	apply equally to 'grepprg'.
3473	For Win32, the default is "findstr /n" if "findstr.exe" can be found,
3474	otherwise it's "grep -n".
3475	This option cannot be set from a |modeline| or in the |sandbox|, for
3476	security reasons.
3477
3478			*'guicursor'* *'gcr'* *E545* *E546* *E548* *E549*
3479'guicursor' 'gcr'	string	(default "n-v-c:block-Cursor/lCursor,
3480					ve:ver35-Cursor,
3481					o:hor50-Cursor,
3482					i-ci:ver25-Cursor/lCursor,
3483					r-cr:hor20-Cursor/lCursor,
3484					sm:block-Cursor
3485					-blinkwait175-blinkoff150-blinkon175",
3486				for MS-DOS and Win32 console:
3487					"n-v-c:block,o:hor50,i-ci:hor15,
3488					r-cr:hor30,sm:block")
3489			global
3490			{not in Vi}
3491			{only available when compiled with GUI enabled, and
3492			for MS-DOS and Win32 console}
3493	This option tells Vim what the cursor should look like in different
3494	modes.  It fully works in the GUI.  In an MSDOS or Win32 console, only
3495	the height of the cursor can be changed.  This can be done by
3496	specifying a block cursor, or a percentage for a vertical or
3497	horizontal cursor.
3498	For a console the 't_SI', 't_SR', and 't_EI' escape sequences are
3499	used.
3500
3501	The option is a comma separated list of parts.  Each part consist of a
3502	mode-list and an argument-list:
3503		mode-list:argument-list,mode-list:argument-list,..
3504	The mode-list is a dash separated list of these modes:
3505		n	Normal mode
3506		v	Visual mode
3507		ve	Visual mode with 'selection' "exclusive" (same as 'v',
3508			if not specified)
3509		o	Operator-pending mode
3510		i	Insert mode
3511		r	Replace mode
3512		c	Command-line Normal (append) mode
3513		ci	Command-line Insert mode
3514		cr	Command-line Replace mode
3515		sm	showmatch in Insert mode
3516		a	all modes
3517	The argument-list is a dash separated list of these arguments:
3518		hor{N}	horizontal bar, {N} percent of the character height
3519		ver{N}	vertical bar, {N} percent of the character width
3520		block	block cursor, fills the whole character
3521			[only one of the above three should be present]
3522		blinkwait{N}				*cursor-blinking*
3523		blinkon{N}
3524		blinkoff{N}
3525			blink times for cursor: blinkwait is the delay before
3526			the cursor starts blinking, blinkon is the time that
3527			the cursor is shown and blinkoff is the time that the
3528			cursor is not shown.  The times are in msec.  When one
3529			of the numbers is zero, there is no blinking.  The
3530			default is: "blinkwait700-blinkon400-blinkoff250".
3531			These numbers are used for a missing entry.  This
3532			means that blinking is enabled by default.  To switch
3533			blinking off you can use "blinkon0".  The cursor only
3534			blinks when Vim is waiting for input, not while
3535			executing a command.
3536			To make the cursor blink in an xterm, see
3537			|xterm-blink|.
3538		{group-name}
3539			a highlight group name, that sets the color and font
3540			for the cursor
3541		{group-name}/{group-name}
3542			Two highlight group names, the first is used when
3543			no language mappings are used, the other when they
3544			are. |language-mapping|
3545
3546	Examples of parts:
3547	   n-c-v:block-nCursor	in Normal, Command-line and Visual mode, use a
3548				block cursor with colors from the "nCursor"
3549				highlight group
3550	   i-ci:ver30-iCursor-blinkwait300-blinkon200-blinkoff150
3551				In Insert and Command-line Insert mode, use a
3552				30% vertical bar cursor with colors from the
3553				"iCursor" highlight group.  Blink a bit
3554				faster.
3555
3556	The 'a' mode is different.  It will set the given argument-list for
3557	all modes.  It does not reset anything to defaults.  This can be used
3558	to do a common setting for all modes.  For example, to switch off
3559	blinking: "a:blinkon0"
3560
3561	Examples of cursor highlighting: >
3562	    :highlight Cursor gui=reverse guifg=NONE guibg=NONE
3563	    :highlight Cursor gui=NONE guifg=bg guibg=fg
3564<
3565					*'guifont'* *'gfn'*
3566						   *E235* *E596*
3567'guifont' 'gfn'		string	(default "")
3568			global
3569			{not in Vi}
3570			{only available when compiled with GUI enabled}
3571	This is a list of fonts which will be used for the GUI version of Vim.
3572	In its simplest form the value is just one font name.  When
3573	the font cannot be found you will get an error message.  To try other
3574	font names a list can be specified, font names separated with commas.
3575	The first valid font is used.
3576
3577	On systems where 'guifontset' is supported (X11) and 'guifontset' is
3578	not empty, then 'guifont' is not used.
3579
3580	Spaces after a comma are ignored.  To include a comma in a font name
3581	precede it with a backslash.  Setting an option requires an extra
3582	backslash before a space and a backslash.  See also
3583	|option-backslash|.  For example: >
3584	    :set guifont=Screen15,\ 7x13,font\\,with\\,commas
3585<	will make Vim try to use the font "Screen15" first, and if it fails it
3586	will try to use "7x13" and then "font,with,commas" instead.
3587
3588	If none of the fonts can be loaded, Vim will keep the current setting.
3589	If an empty font list is given, Vim will try using other resource
3590	settings (for X, it will use the Vim.font resource), and finally it
3591	will try some builtin default which should always be there ("7x13" in
3592	the case of X).  The font names given should be "normal" fonts.  Vim
3593	will try to find the related bold and italic fonts.
3594
3595	For Win32, GTK, Motif, Mac OS and Photon: >
3596	    :set guifont=*
3597<	will bring up a font requester, where you can pick the font you want.
3598
3599	The font name depends on the GUI used.  See |setting-guifont| for a
3600	way to set 'guifont' for various systems.
3601
3602	For the GTK+ 2 GUI the font name looks like this: >
3603	    :set guifont=Andale\ Mono\ 11
3604<	That's all.  XLFDs are not used.  For Chinese this is reported to work
3605	well: >
3606	    if has("gui_gtk2")
3607	      set guifont=Bitstream\ Vera\ Sans\ Mono\ 12,Fixed\ 12
3608	      set guifontwide=Microsoft\ Yahei\ 12,WenQuanYi\ Zen\ Hei\ 12
3609	    endif
3610<
3611	For Mac OSX you can use something like this: >
3612	    :set guifont=Monaco:h10
3613<	Also see 'macatsui', it can help fix display problems.
3614								*E236*
3615	Note that the fonts must be mono-spaced (all characters have the same
3616	width).  An exception is GTK 2: all fonts are accepted, but
3617	mono-spaced fonts look best.
3618
3619	To preview a font on X11, you might be able to use the "xfontsel"
3620	program.  The "xlsfonts" program gives a list of all available fonts.
3621
3622	For the Win32 GUI					*E244* *E245*
3623	- takes these options in the font name:
3624		hXX - height is XX (points, can be floating-point)
3625		wXX - width is XX (points, can be floating-point)
3626		b   - bold
3627		i   - italic
3628		u   - underline
3629		s   - strikeout
3630		cXX - character set XX.  Valid charsets are: ANSI, ARABIC,
3631		      BALTIC, CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK,
3632		      HANGEUL, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS,
3633		      SYMBOL, THAI, TURKISH, VIETNAMESE ANSI and BALTIC.
3634		      Normally you would use "cDEFAULT".
3635
3636	  Use a ':' to separate the options.
3637	- A '_' can be used in the place of a space, so you don't need to use
3638	  backslashes to escape the spaces.
3639	- Examples: >
3640	    :set guifont=courier_new:h12:w5:b:cRUSSIAN
3641	    :set guifont=Andale_Mono:h7.5:w4.5
3642<	See also |font-sizes|.
3643
3644					*'guifontset'* *'gfs'*
3645					*E250* *E252* *E234* *E597* *E598*
3646'guifontset' 'gfs'	string	(default "")
3647			global
3648			{not in Vi}
3649			{only available when compiled with GUI enabled and
3650			with the |+xfontset| feature}
3651			{not available in the GTK+ 2 GUI}
3652	When not empty, specifies two (or more) fonts to be used.  The first
3653	one for normal English, the second one for your special language.  See
3654	|xfontset|.
3655	Setting this option also means that all font names will be handled as
3656	a fontset name.  Also the ones used for the "font" argument of the
3657	|:highlight| command.
3658	The fonts must match with the current locale.  If fonts for the
3659	character sets that the current locale uses are not included, setting
3660	'guifontset' will fail.
3661	Note the difference between 'guifont' and 'guifontset': In 'guifont'
3662	the comma-separated names are alternative names, one of which will be
3663	used.  In 'guifontset' the whole string is one fontset name,
3664	including the commas.  It is not possible to specify alternative
3665	fontset names.
3666	This example works on many X11 systems: >
3667		:set guifontset=-*-*-medium-r-normal--16-*-*-*-c-*-*-*
3668<
3669				*'guifontwide'* *'gfw'* *E231* *E533* *E534*
3670'guifontwide' 'gfw'	string	(default "")
3671			global
3672			{not in Vi}
3673			{only available when compiled with GUI enabled}
3674	When not empty, specifies a comma-separated list of fonts to be used
3675	for double-width characters.  The first font that can be loaded is
3676	used.
3677	Note: The size of these fonts must be exactly twice as wide as the one
3678	specified with 'guifont' and the same height.
3679
3680	All GUI versions but GTK+ 2:
3681
3682	'guifontwide' is only used when 'encoding' is set to "utf-8" and
3683	'guifontset' is empty or invalid.
3684	When 'guifont' is set and a valid font is found in it and
3685	'guifontwide' is empty Vim will attempt to find a matching
3686	double-width font and set 'guifontwide' to it.
3687
3688	GTK+ 2 GUI only:			*guifontwide_gtk2*
3689
3690	If set and valid, 'guifontwide' is always used for double width
3691	characters, even if 'encoding' is not set to "utf-8".
3692	Vim does not attempt to find an appropriate value for 'guifontwide'
3693	automatically.  If 'guifontwide' is empty Pango/Xft will choose the
3694	font for characters not available in 'guifont'.  Thus you do not need
3695	to set 'guifontwide' at all unless you want to override the choice
3696	made by Pango/Xft.
3697
3698	Windows +multibyte only:		*guifontwide_win_mbyte*
3699
3700	If set and valid, 'guifontwide' is used for IME instead of 'guifont'.
3701
3702						*'guiheadroom'* *'ghr'*
3703'guiheadroom' 'ghr'	number	(default 50)
3704			global
3705			{not in Vi} {only for GTK and X11 GUI}
3706	The number of pixels subtracted from the screen height when fitting
3707	the GUI window on the screen.  Set this before the GUI is started,
3708	e.g., in your |gvimrc| file.  When zero, the whole screen height will
3709	be used by the window.  When positive, the specified number of pixel
3710	lines will be left for window decorations and other items on the
3711	screen.  Set it to a negative value to allow windows taller than the
3712	screen.
3713
3714						*'guioptions'* *'go'*
3715'guioptions' 'go'	string	(default "egmrLtT"   (MS-Windows),
3716					 "aegimrLtT" (GTK, Motif and Athena))
3717			global
3718			{not in Vi}
3719			{only available when compiled with GUI enabled}
3720	This option only has an effect in the GUI version of Vim.  It is a
3721	sequence of letters which describes what components and options of the
3722	GUI should be used.
3723	To avoid problems with flags that are added in the future, use the
3724	"+=" and "-=" feature of ":set" |add-option-flags|.
3725
3726	Valid letters are as follows:
3727							*guioptions_a* *'go-a'*
3728	  'a'	Autoselect:  If present, then whenever VISUAL mode is started,
3729		or the Visual area extended, Vim tries to become the owner of
3730		the windowing system's global selection.  This means that the
3731		Visually highlighted text is available for pasting into other
3732		applications as well as into Vim itself.  When the Visual mode
3733		ends, possibly due to an operation on the text, or when an
3734		application wants to paste the selection, the highlighted text
3735		is automatically yanked into the "* selection register.
3736		Thus the selection is still available for pasting into other
3737		applications after the VISUAL mode has ended.
3738		    If not present, then Vim won't become the owner of the
3739		windowing system's global selection unless explicitly told to
3740		by a yank or delete operation for the "* register.
3741		The same applies to the modeless selection.
3742								*'go-P'*
3743	  'P'	Like autoselect but using the "+ register instead of the "*
3744	  	register.
3745								*'go-A'*
3746	  'A'	Autoselect for the modeless selection.  Like 'a', but only
3747		applies to the modeless selection.
3748
3749		    'guioptions'   autoselect Visual  autoselect modeless ~
3750			 ""		 -			 -
3751			 "a"		yes			yes
3752			 "A"		 -			yes
3753			 "aA"		yes			yes
3754
3755								*'go-c'*
3756	  'c'	Use console dialogs instead of popup dialogs for simple
3757		choices.
3758								*'go-e'*
3759	  'e'	Add tab pages when indicated with 'showtabline'.
3760		'guitablabel' can be used to change the text in the labels.
3761		When 'e' is missing a non-GUI tab pages line may be used.
3762		The GUI tabs are only supported on some systems, currently
3763		GTK, Motif, Mac OS/X and MS-Windows.
3764								*'go-f'*
3765	  'f'	Foreground: Don't use fork() to detach the GUI from the shell
3766		where it was started.  Use this for programs that wait for the
3767		editor to finish (e.g., an e-mail program).  Alternatively you
3768		can use "gvim -f" or ":gui -f" to start the GUI in the
3769		foreground.  |gui-fork|
3770		Note: Set this option in the vimrc file.  The forking may have
3771		happened already when the |gvimrc| file is read.
3772								*'go-i'*
3773	  'i'	Use a Vim icon.  For GTK with KDE it is used in the left-upper
3774		corner of the window.  It's black&white on non-GTK, because of
3775		limitations of X11.  For a color icon, see |X11-icon|.
3776								*'go-m'*
3777	  'm'	Menu bar is present.
3778								*'go-M'*
3779	  'M'	The system menu "$VIMRUNTIME/menu.vim" is not sourced.  Note
3780		that this flag must be added in the .vimrc file, before
3781		switching on syntax or filetype recognition (when the |gvimrc|
3782		file is sourced the system menu has already been loaded; the
3783		":syntax on" and ":filetype on" commands load the menu too).
3784								*'go-g'*
3785	  'g'	Grey menu items: Make menu items that are not active grey.  If
3786		'g' is not included inactive menu items are not shown at all.
3787		Exception: Athena will always use grey menu items.
3788								*'go-t'*
3789	  't'	Include tearoff menu items.  Currently only works for Win32,
3790		GTK+, and Motif 1.2 GUI.
3791								*'go-T'*
3792	  'T'	Include Toolbar.  Currently only in Win32, GTK+, Motif, Photon
3793		and Athena GUIs.
3794								*'go-r'*
3795	  'r'	Right-hand scrollbar is always present.
3796								*'go-R'*
3797	  'R'	Right-hand scrollbar is present when there is a vertically
3798		split window.
3799								*'go-l'*
3800	  'l'	Left-hand scrollbar is always present.
3801								*'go-L'*
3802	  'L'	Left-hand scrollbar is present when there is a vertically
3803		split window.
3804								*'go-b'*
3805	  'b'	Bottom (horizontal) scrollbar is present.  Its size depends on
3806		the longest visible line, or on the cursor line if the 'h'
3807		flag is included. |gui-horiz-scroll|
3808								*'go-h'*
3809	  'h'	Limit horizontal scrollbar size to the length of the cursor
3810		line.  Reduces computations. |gui-horiz-scroll|
3811
3812	And yes, you may even have scrollbars on the left AND the right if
3813	you really want to :-).  See |gui-scrollbars| for more information.
3814
3815								*'go-v'*
3816	  'v'	Use a vertical button layout for dialogs.  When not included,
3817		a horizontal layout is preferred, but when it doesn't fit a
3818		vertical layout is used anyway.
3819								*'go-p'*
3820	  'p'	Use Pointer callbacks for X11 GUI.  This is required for some
3821		window managers.  If the cursor is not blinking or hollow at
3822		the right moment, try adding this flag.  This must be done
3823		before starting the GUI.  Set it in your |gvimrc|.  Adding or
3824		removing it after the GUI has started has no effect.
3825								*'go-F'*
3826	  'F'	Add a footer.  Only for Motif.  See |gui-footer|.
3827
3828
3829						*'guipty'* *'noguipty'*
3830'guipty'		boolean	(default on)
3831			global
3832			{not in Vi}
3833			{only available when compiled with GUI enabled}
3834	Only in the GUI: If on, an attempt is made to open a pseudo-tty for
3835	I/O to/from shell commands.  See |gui-pty|.
3836
3837						*'guitablabel'* *'gtl'*
3838'guitablabel' 'gtl'	string	(default empty)
3839			global
3840			{not in Vi}
3841			{only available when compiled with GUI enabled and
3842			with the |+windows| feature}
3843	When nonempty describes the text to use in a label of the GUI tab
3844	pages line.  When empty and when the result is empty Vim will use a
3845	default label.  See |setting-guitablabel| for more info.
3846
3847	The format of this option is like that of 'statusline'.
3848	'guitabtooltip' is used for the tooltip, see below.
3849
3850	Only used when the GUI tab pages line is displayed.  'e' must be
3851	present in 'guioptions'.  For the non-GUI tab pages line 'tabline' is
3852	used.
3853
3854						*'guitabtooltip'* *'gtt'*
3855'guitabtooltip' 'gtt'	string	(default empty)
3856			global
3857			{not in Vi}
3858			{only available when compiled with GUI enabled and
3859			with the |+windows| feature}
3860	When nonempty describes the text to use in a tooltip for the GUI tab
3861	pages line.  When empty Vim will use a default tooltip.
3862	This option is otherwise just like 'guitablabel' above.
3863	You can include a line break.  Simplest method is to use |:let|: >
3864		:let &guitabtooltip = "line one\nline two"
3865<
3866
3867						*'helpfile'* *'hf'*
3868'helpfile' 'hf'		string	(default (MSDOS)  "$VIMRUNTIME\doc\help.txt"
3869					 (others) "$VIMRUNTIME/doc/help.txt")
3870			global
3871			{not in Vi}
3872	Name of the main help file.  All distributed help files should be
3873	placed together in one directory.  Additionally, all "doc" directories
3874	in 'runtimepath' will be used.
3875	Environment variables are expanded |:set_env|.  For example:
3876	"$VIMRUNTIME/doc/help.txt".  If $VIMRUNTIME is not set, $VIM is also
3877	tried.  Also see |$VIMRUNTIME| and |option-backslash| about including
3878	spaces and backslashes.
3879	This option cannot be set from a |modeline| or in the |sandbox|, for
3880	security reasons.
3881
3882						*'helpheight'* *'hh'*
3883'helpheight' 'hh'	number	(default 20)
3884			global
3885			{not in Vi}
3886			{not available when compiled without the |+windows|
3887			feature}
3888	Minimal initial height of the help window when it is opened with the
3889	":help" command.  The initial height of the help window is half of the
3890	current window, or (when the 'ea' option is on) the same as other
3891	windows.  When the height is less than 'helpheight', the height is
3892	set to 'helpheight'.  Set to zero to disable.
3893
3894						*'helplang'* *'hlg'*
3895'helplang' 'hlg'	string	(default: messages language or empty)
3896			global
3897			{only available when compiled with the |+multi_lang|
3898			feature}
3899			{not in Vi}
3900	Comma separated list of languages.  Vim will use the first language
3901	for which the desired help can be found.  The English help will always
3902	be used as a last resort.  You can add "en" to prefer English over
3903	another language, but that will only find tags that exist in that
3904	language and not in the English help.
3905	Example: >
3906		:set helplang=de,it
3907<	This will first search German, then Italian and finally English help
3908	files.
3909	When using |CTRL-]| and ":help!" in a non-English help file Vim will
3910	try to find the tag in the current language before using this option.
3911	See |help-translated|.
3912
3913				     *'hidden'* *'hid'* *'nohidden'* *'nohid'*
3914'hidden' 'hid'		boolean	(default off)
3915			global
3916			{not in Vi}
3917	When off a buffer is unloaded when it is |abandon|ed.  When on a
3918	buffer becomes hidden when it is |abandon|ed.  If the buffer is still
3919	displayed in another window, it does not become hidden, of course.
3920	The commands that move through the buffer list sometimes make a buffer
3921	hidden although the 'hidden' option is off: When the buffer is
3922	modified, 'autowrite' is off or writing is not possible, and the '!'
3923	flag was used.  See also |windows.txt|.
3924	To only make one buffer hidden use the 'bufhidden' option.
3925	This option is set for one command with ":hide {command}" |:hide|.
3926	WARNING: It's easy to forget that you have changes in hidden buffers.
3927	Think twice when using ":q!" or ":qa!".
3928
3929						*'highlight'* *'hl'*
3930'highlight' 'hl'	string	(default (as a single string):
3931				     "8:SpecialKey,@:NonText,d:Directory,
3932				     e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,
3933				     M:ModeMsg,n:LineNr,N:CursorLineNr,
3934				     r:Question,s:StatusLine,S:StatusLineNC,
3935				     c:VertSplit, t:Title,v:Visual,
3936				     w:WarningMsg,W:WildMenu,
3937				     f:Folded,F:FoldColumn,A:DiffAdd,
3938				     C:DiffChange,D:DiffDelete,T:DiffText,
3939				     >:SignColumn,B:SpellBad,P:SpellCap,
3940				     R:SpellRare,L:SpellLocal,-:Conceal,
3941				     +:Pmenu,=:PmenuSel,
3942				     x:PmenuSbar,X:PmenuThumb")
3943			global
3944			{not in Vi}
3945	This option can be used to set highlighting mode for various
3946	occasions.  It is a comma separated list of character pairs.  The
3947	first character in a pair gives the occasion, the second the mode to
3948	use for that occasion.  The occasions are:
3949	|hl-SpecialKey|	 8  Meta and special keys listed with ":map"
3950	|hl-NonText|	 @  '~' and '@' at the end of the window and
3951			    characters from 'showbreak'
3952	|hl-Directory|	 d  directories in CTRL-D listing and other special
3953			    things in listings
3954	|hl-ErrorMsg|	 e  error messages
3955			 h  (obsolete, ignored)
3956	|hl-IncSearch|	 i  'incsearch' highlighting
3957	|hl-Search|	 l  last search pattern highlighting (see 'hlsearch')
3958	|hl-MoreMsg|	 m  |more-prompt|
3959	|hl-ModeMsg|	 M  Mode (e.g., "-- INSERT --")
3960	|hl-LineNr|	 n  line number for ":number" and ":#" commands, and
3961			    when 'number' or 'relativenumber' option is set.
3962	|hl-CursorLineNr|  N like n for when 'cursorline' or 'relativenumber' is
3963			    set.
3964	|hl-Question|	 r  |hit-enter| prompt and yes/no questions
3965	|hl-StatusLine|	 s  status line of current window |status-line|
3966	|hl-StatusLineNC| S  status lines of not-current windows
3967	|hl-Title|	 t  Titles for output from ":set all", ":autocmd" etc.
3968	|hl-VertSplit|	 c  column used to separate vertically split windows
3969	|hl-Visual|	 v  Visual mode
3970	|hl-VisualNOS|	 V  Visual mode when Vim does is "Not Owning the
3971			    Selection" Only X11 Gui's |gui-x11| and
3972			    |xterm-clipboard|.
3973	|hl-WarningMsg|	 w  warning messages
3974	|hl-WildMenu|	 W  wildcard matches displayed for 'wildmenu'
3975	|hl-Folded|	 f  line used for closed folds
3976	|hl-FoldColumn|	 F  'foldcolumn'
3977	|hl-DiffAdd|	 A  added line in diff mode
3978	|hl-DiffChange|	 C  changed line in diff mode
3979	|hl-DiffDelete|	 D  deleted line in diff mode
3980	|hl-DiffText|	 T  inserted text in diff mode
3981	|hl-SignColumn|	 >  column used for |signs|
3982	|hl-SpellBad|	 B  misspelled word |spell|
3983	|hl-SpellCap|	 P  word that should start with capital |spell|
3984	|hl-SpellRare|	 R  rare word |spell|
3985	|hl-SpellLocal|	 L  word from other region |spell|
3986	|hl-Conceal|	 -  the placeholders used for concealed characters
3987			    (see 'conceallevel')
3988	|hl-Pmenu|       +  popup menu normal line
3989	|hl-PmenuSel|    =  popup menu normal line
3990	|hl-PmenuSbar|   x  popup menu scrollbar
3991	|hl-PmenuThumb|  X  popup menu scrollbar thumb
3992
3993	The display modes are:
3994		r	reverse		(termcap entry "mr" and "me")
3995		i	italic		(termcap entry "ZH" and "ZR")
3996		b	bold		(termcap entry "md" and "me")
3997		s	standout	(termcap entry "so" and "se")
3998		u	underline	(termcap entry "us" and "ue")
3999		c	undercurl	(termcap entry "Cs" and "Ce")
4000		n	no highlighting
4001		-	no highlighting
4002		:	use a highlight group
4003	The default is used for occasions that are not included.
4004	If you want to change what the display modes do, see |dos-colors|
4005	for an example.
4006	When using the ':' display mode, this must be followed by the name of
4007	a highlight group.  A highlight group can be used to define any type
4008	of highlighting, including using color.  See |:highlight| on how to
4009	define one.  The default uses a different group for each occasion.
4010	See |highlight-default| for the default highlight groups.
4011
4012				 *'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'*
4013'hlsearch' 'hls'	boolean	(default off)
4014			global
4015			{not in Vi}
4016			{not available when compiled without the
4017			|+extra_search| feature}
4018	When there is a previous search pattern, highlight all its matches.
4019	The type of highlighting used can be set with the 'l' occasion in the
4020	'highlight' option.  This uses the "Search" highlight group by
4021	default.  Note that only the matching text is highlighted, any offsets
4022	are not applied.
4023	See also: 'incsearch' and |:match|.
4024	When you get bored looking at the highlighted matches, you can turn it
4025	off with |:nohlsearch|.  This does not change the option value, as
4026	soon as you use a search command, the highlighting comes back.
4027	'redrawtime' specifies the maximum time spent on finding matches.
4028	When the search pattern can match an end-of-line, Vim will try to
4029	highlight all of the matched text.  However, this depends on where the
4030	search starts.  This will be the first line in the window or the first
4031	line below a closed fold.  A match in a previous line which is not
4032	drawn may not continue in a newly drawn line.
4033	You can specify whether the highlight status is restored on startup
4034	with the 'h' flag in 'viminfo' |viminfo-h|.
4035	NOTE: This option is reset when 'compatible' is set.
4036
4037						*'history'* *'hi'*
4038'history' 'hi'		number	(Vim default: 50, Vi default: 0)
4039			global
4040			{not in Vi}
4041	A history of ":" commands, and a history of previous search patterns
4042	is remembered.  This option decides how many entries may be stored in
4043	each of these histories (see |cmdline-editing|).
4044	The maximum value is 10000.
4045	NOTE: This option is set to the Vi default value when 'compatible' is
4046	set and to the Vim default value when 'compatible' is reset.
4047
4048					 *'hkmap'* *'hk'* *'nohkmap'* *'nohk'*
4049'hkmap' 'hk'		boolean (default off)
4050			global
4051			{not in Vi}
4052			{only available when compiled with the |+rightleft|
4053			feature}
4054	When on, the keyboard is mapped for the Hebrew character set.
4055	Normally you would set 'allowrevins' and use CTRL-_ in insert mode to
4056	toggle this option.  See |rileft.txt|.
4057	NOTE: This option is reset when 'compatible' is set.
4058
4059				 *'hkmapp'* *'hkp'* *'nohkmapp'* *'nohkp'*
4060'hkmapp' 'hkp'		boolean (default off)
4061			global
4062			{not in Vi}
4063			{only available when compiled with the |+rightleft|
4064			feature}
4065	When on, phonetic keyboard mapping is used.  'hkmap' must also be on.
4066	This is useful if you have a non-Hebrew keyboard.
4067	See |rileft.txt|.
4068	NOTE: This option is reset when 'compatible' is set.
4069
4070						*'icon'* *'noicon'*
4071'icon'			boolean	(default off, on when title can be restored)
4072			global
4073			{not in Vi}
4074			{not available when compiled without the |+title|
4075			feature}
4076	When on, the icon text of the window will be set to the value of
4077	'iconstring' (if it is not empty), or to the name of the file
4078	currently being edited.  Only the last part of the name is used.
4079	Overridden by the 'iconstring' option.
4080	Only works if the terminal supports setting window icons (currently
4081	only X11 GUI and terminals with a non-empty 't_IS' option - these are
4082	Unix xterm and iris-ansi by default, where 't_IS' is taken from the
4083	builtin termcap).
4084	When Vim was compiled with HAVE_X11 defined, the original icon will be
4085	restored if possible |X11|.  See |X11-icon| for changing the icon on
4086	X11.
4087	For MS-Windows the icon can be changed, see |windows-icon|.
4088
4089						*'iconstring'*
4090'iconstring'		string	(default "")
4091			global
4092			{not in Vi}
4093			{not available when compiled without the |+title|
4094			feature}
4095	When this option is not empty, it will be used for the icon text of
4096	the window.  This happens only when the 'icon' option is on.
4097	Only works if the terminal supports setting window icon text
4098	(currently only X11 GUI and terminals with a non-empty 't_IS' option).
4099	Does not work for MS Windows.
4100	When Vim was compiled with HAVE_X11 defined, the original icon will be
4101	restored if possible |X11|.
4102	When this option contains printf-style '%' items, they will be
4103	expanded according to the rules used for 'statusline'.  See
4104	'titlestring' for example settings.
4105	{not available when compiled without the |+statusline| feature}
4106
4107			*'ignorecase'* *'ic'* *'noignorecase'* *'noic'*
4108'ignorecase' 'ic'	boolean	(default off)
4109			global
4110	Ignore case in search patterns.  Also used when searching in the tags
4111	file.
4112	Also see 'smartcase' and 'tagcase'.
4113	Can be overruled by using "\c" or "\C" in the pattern, see
4114	|/ignorecase|.
4115
4116						*'imactivatefunc'* *'imaf'*
4117'imactivatefunc' 'imaf'	string (default "")
4118			global
4119			{not in Vi}
4120			{only available when compiled with |+xim| and
4121			|+GUI_GTK|}
4122	This option specifies a function that will be called to
4123	activate/inactivate Input Method.
4124
4125	Example: >
4126		function ImActivateFunc(active)
4127		  if a:active
4128		    ... do something
4129		  else
4130		    ... do something
4131		  endif
4132		  " return value is not used
4133		endfunction
4134		set imactivatefunc=ImActivateFunc
4135<
4136						*'imactivatekey'* *'imak'*
4137'imactivatekey' 'imak'	string (default "")
4138			global
4139			{not in Vi}
4140			{only available when compiled with |+xim| and
4141			|+GUI_GTK|}				*E599*
4142	Specifies the key that your Input Method in X-Windows uses for
4143	activation.  When this is specified correctly, vim can fully control
4144	IM with 'imcmdline', 'iminsert' and 'imsearch'.
4145	You can't use this option to change the activation key, the option
4146	tells Vim what the key is.
4147	Format:
4148		[MODIFIER_FLAG-]KEY_STRING
4149
4150	These characters can be used for MODIFIER_FLAG (case is ignored):
4151		S	    Shift key
4152		L	    Lock key
4153		C	    Control key
4154		1	    Mod1 key
4155		2	    Mod2 key
4156		3	    Mod3 key
4157		4	    Mod4 key
4158		5	    Mod5 key
4159	Combinations are allowed, for example "S-C-space" or "SC-space" are
4160	both shift+ctrl+space.
4161	See <X11/keysymdef.h> and XStringToKeysym for KEY_STRING.
4162
4163	Example: >
4164		:set imactivatekey=S-space
4165<	"S-space" means shift+space.  This is the activation key for kinput2 +
4166	canna (Japanese), and ami (Korean).
4167
4168				*'imcmdline'* *'imc'* *'noimcmdline'* *'noimc'*
4169'imcmdline' 'imc'	boolean (default off)
4170			global
4171			{not in Vi}
4172			{only available when compiled with the |+xim|,
4173			|+multi_byte_ime| or |global-ime| features}
4174	When set the Input Method is always on when starting to edit a command
4175	line, unless entering a search pattern (see 'imsearch' for that).
4176	Setting this option is useful when your input method allows entering
4177	English characters directly, e.g., when it's used to type accented
4178	characters with dead keys.
4179
4180				*'imdisable'* *'imd'* *'noimdisable'* *'noimd'*
4181'imdisable' 'imd'	boolean (default off, on for some systems (SGI))
4182			global
4183			{not in Vi}
4184			{only available when compiled with the |+xim|,
4185			|+multi_byte_ime| or |global-ime| features}
4186	When set the Input Method is never used.  This is useful to disable
4187	the IM when it doesn't work properly.
4188	Currently this option is on by default for SGI/IRIX machines.  This
4189	may change in later releases.
4190
4191						*'iminsert'* *'imi'*
4192'iminsert' 'imi'	number (default 0, 2 when an input method is supported)
4193			local to buffer
4194			{not in Vi}
4195	Specifies whether :lmap or an Input Method (IM) is to be used in
4196	Insert mode.  Valid values:
4197		0	:lmap is off and IM is off
4198		1	:lmap is ON and IM is off
4199		2	:lmap is off and IM is ON
4200	2 is available only when compiled with the |+multi_byte_ime|, |+xim|
4201	or |global-ime|.
4202	To always reset the option to zero when leaving Insert mode with <Esc>
4203	this can be used: >
4204		:inoremap <ESC> <ESC>:set iminsert=0<CR>
4205<	This makes :lmap and IM turn off automatically when leaving Insert
4206	mode.
4207	Note that this option changes when using CTRL-^ in Insert mode
4208	|i_CTRL-^|.
4209	The value is set to 1 when setting 'keymap' to a valid keymap name.
4210	It is also used for the argument of commands like "r" and "f".
4211	The value 0 may not work correctly with Athena and Motif with some XIM
4212	methods.  Use 'imdisable' to disable XIM then.
4213
4214						*'imsearch'* *'ims'*
4215'imsearch' 'ims'	number (default 0, 2 when an input method is supported)
4216			local to buffer
4217			{not in Vi}
4218	Specifies whether :lmap or an Input Method (IM) is to be used when
4219	entering a search pattern.  Valid values:
4220		-1	the value of 'iminsert' is used, makes it look like
4221			'iminsert' is also used when typing a search pattern
4222		0	:lmap is off and IM is off
4223		1	:lmap is ON and IM is off
4224		2	:lmap is off and IM is ON
4225	Note that this option changes when using CTRL-^ in Command-line mode
4226	|c_CTRL-^|.
4227	The value is set to 1 when it is not -1 and setting the 'keymap'
4228	option to a valid keymap name.
4229	The value 0 may not work correctly with Athena and Motif with some XIM
4230	methods.  Use 'imdisable' to disable XIM then.
4231
4232						*'imstatusfunc'* *'imsf'*
4233'imstatusfunc' 'imsf'	string (default "")
4234			global
4235			{not in Vi}
4236			{only available when compiled with |+xim| and
4237			|+GUI_GTK|}
4238	This option specifies a function that is called to obtain the status
4239	of Input Method.  It must return a positive number when IME is active.
4240
4241	Example: >
4242		function ImStatusFunc()
4243		  let is_active = ...do something
4244		  return is_active ? 1 : 0
4245		endfunction
4246		set imstatusfunc=ImStatusFunc
4247<
4248	NOTE: This function is invoked very often.  Keep it fast.
4249
4250						*'include'* *'inc'*
4251'include' 'inc'		string	(default "^\s*#\s*include")
4252			global or local to buffer |global-local|
4253			{not in Vi}
4254			{not available when compiled without the
4255			|+find_in_path| feature}
4256	Pattern to be used to find an include command.  It is a search
4257	pattern, just like for the "/" command (See |pattern|).  The default
4258	value is for C programs.  This option is used for the commands "[i",
4259	"]I", "[d", etc.
4260	Normally the 'isfname' option is used to recognize the file name that
4261	comes after the matched pattern.  But if "\zs" appears in the pattern
4262	then the text matched from "\zs" to the end, or until "\ze" if it
4263	appears, is used as the file name.  Use this to include characters
4264	that are not in 'isfname', such as a space.  You can then use
4265	'includeexpr' to process the matched text.
4266	See |option-backslash| about including spaces and backslashes.
4267
4268						*'includeexpr'* *'inex'*
4269'includeexpr' 'inex'	string	(default "")
4270			local to buffer
4271			{not in Vi}
4272			{not available when compiled without the
4273			|+find_in_path| or |+eval| features}
4274	Expression to be used to transform the string found with the 'include'
4275	option to a file name.  Mostly useful to change "." to "/" for Java: >
4276		:set includeexpr=substitute(v:fname,'\\.','/','g')
4277<	The "v:fname" variable will be set to the file name that was detected.
4278
4279	Also used for the |gf| command if an unmodified file name can't be
4280	found.  Allows doing "gf" on the name after an 'include' statement.
4281	Also used for |<cfile>|.
4282
4283	The expression will be evaluated in the |sandbox| when set from a
4284	modeline, see |sandbox-option|.
4285
4286	It is not allowed to change text or jump to another window while
4287	evaluating 'includeexpr' |textlock|.
4288
4289				 *'incsearch'* *'is'* *'noincsearch'* *'nois'*
4290'incsearch' 'is'	boolean	(default off)
4291			global
4292			{not in Vi}
4293			{not available when compiled without the
4294			|+extra_search| features}
4295	While typing a search command, show where the pattern, as it was typed
4296	so far, matches.  The matched string is highlighted.  If the pattern
4297	is invalid or not found, nothing is shown.  The screen will be updated
4298	often, this is only useful on fast terminals.
4299	Note that the match will be shown, but the cursor will return to its
4300	original position when no match is found and when pressing <Esc>.  You
4301	still need to finish the search command with <Enter> to move the
4302	cursor to the match.
4303	When compiled with the |+reltime| feature Vim only searches for about
4304	half a second.  With a complicated pattern and/or a lot of text the
4305	match may not be found.  This is to avoid that Vim hangs while you
4306	are typing the pattern.
4307	The highlighting can be set with the 'i' flag in 'highlight'.
4308	See also: 'hlsearch'.
4309	CTRL-L can be used to add one character from after the current match
4310	to the command line.  If 'ignorecase' and 'smartcase' are set and the
4311	command line has no uppercase characters, the added character is
4312	converted to lowercase.
4313	CTRL-R CTRL-W can be used to add the word at the end of the current
4314	match, excluding the characters that were already typed.
4315	NOTE: This option is reset when 'compatible' is set.
4316
4317						*'indentexpr'* *'inde'*
4318'indentexpr' 'inde'	string	(default "")
4319			local to buffer
4320			{not in Vi}
4321			{not available when compiled without the |+cindent|
4322			or |+eval| features}
4323	Expression which is evaluated to obtain the proper indent for a line.
4324	It is used when a new line is created, for the |=| operator and
4325	in Insert mode as specified with the 'indentkeys' option.
4326	When this option is not empty, it overrules the 'cindent' and
4327	'smartindent' indenting.  When 'lisp' is set, this option is
4328	overridden by the Lisp indentation algorithm.
4329	When 'paste' is set this option is not used for indenting.
4330	The expression is evaluated with |v:lnum| set to the line number for
4331	which the indent is to be computed.  The cursor is also in this line
4332	when the expression is evaluated (but it may be moved around).
4333	The expression must return the number of spaces worth of indent.  It
4334	can return "-1" to keep the current indent (this means 'autoindent' is
4335	used for the indent).
4336	Functions useful for computing the indent are |indent()|, |cindent()|
4337	and |lispindent()|.
4338	The evaluation of the expression must not have side effects!  It must
4339	not change the text, jump to another window, etc.  Afterwards the
4340	cursor position is always restored, thus the cursor may be moved.
4341	Normally this option would be set to call a function: >
4342		:set indentexpr=GetMyIndent()
4343<	Error messages will be suppressed, unless the 'debug' option contains
4344	"msg".
4345	See |indent-expression|.
4346	NOTE: This option is made empty when 'compatible' is set.
4347
4348	The expression will be evaluated in the |sandbox| when set from a
4349	modeline, see |sandbox-option|.
4350
4351	It is not allowed to change text or jump to another window while
4352	evaluating 'indentexpr' |textlock|.
4353
4354
4355						*'indentkeys'* *'indk'*
4356'indentkeys' 'indk'	string	(default "0{,0},:,0#,!^F,o,O,e")
4357			local to buffer
4358			{not in Vi}
4359			{not available when compiled without the |+cindent|
4360			feature}
4361	A list of keys that, when typed in Insert mode, cause reindenting of
4362	the current line.  Only happens if 'indentexpr' isn't empty.
4363	The format is identical to 'cinkeys', see |indentkeys-format|.
4364	See |C-indenting| and |indent-expression|.
4365
4366			*'infercase'* *'inf'* *'noinfercase'* *'noinf'*
4367'infercase' 'inf'	boolean	(default off)
4368			local to buffer
4369			{not in Vi}
4370	When doing keyword completion in insert mode |ins-completion|, and
4371	'ignorecase' is also on, the case of the match is adjusted depending
4372	on the typed text.  If the typed text contains a lowercase letter
4373	where the match has an upper case letter, the completed part is made
4374	lowercase.  If the typed text has no lowercase letters and the match
4375	has a lowercase letter where the typed text has an uppercase letter,
4376	and there is a letter before it, the completed part is made uppercase.
4377	With 'noinfercase' the match is used as-is.
4378
4379			*'insertmode'* *'im'* *'noinsertmode'* *'noim'*
4380'insertmode' 'im'	boolean	(default off)
4381			global
4382			{not in Vi}
4383	Makes Vim work in a way that Insert mode is the default mode.  Useful
4384	if you want to use Vim as a modeless editor.  Used for |evim|.
4385	These Insert mode commands will be useful:
4386	- Use the cursor keys to move around.
4387	- Use CTRL-O to execute one Normal mode command |i_CTRL-O|).  When
4388	  this is a mapping, it is executed as if 'insertmode' was off.
4389	  Normal mode remains active until the mapping is finished.
4390	- Use CTRL-L to execute a number of Normal mode commands, then use
4391	  <Esc> to get back to Insert mode.  Note that CTRL-L moves the cursor
4392	  left, like <Esc> does when 'insertmode' isn't set.  |i_CTRL-L|
4393
4394	These items change when 'insertmode' is set:
4395	- when starting to edit of a file, Vim goes to Insert mode.
4396	- <Esc> in Insert mode is a no-op and beeps.
4397	- <Esc> in Normal mode makes Vim go to Insert mode.
4398	- CTRL-L in Insert mode is a command, it is not inserted.
4399	- CTRL-Z in Insert mode suspends Vim, see |CTRL-Z|.	*i_CTRL-Z*
4400	However, when <Esc> is used inside a mapping, it behaves like
4401	'insertmode' was not set.  This was done to be able to use the same
4402	mappings with 'insertmode' set or not set.
4403	When executing commands with |:normal| 'insertmode' is not used.
4404
4405	NOTE: This option is reset when 'compatible' is set.
4406
4407						*'isfname'* *'isf'*
4408'isfname' 'isf'		string	(default for MS-DOS, Win32 and OS/2:
4409			     "@,48-57,/,\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,="
4410			    for AMIGA: "@,48-57,/,.,-,_,+,,,$,:"
4411			    for VMS: "@,48-57,/,.,-,_,+,,,#,$,%,<,>,[,],:,;,~"
4412			    for OS/390: "@,240-249,/,.,-,_,+,,,#,$,%,~,="
4413			    otherwise: "@,48-57,/,.,-,_,+,,,#,$,%,~,=")
4414			global
4415			{not in Vi}
4416	The characters specified by this option are included in file names and
4417	path names.  Filenames are used for commands like "gf", "[i" and in
4418	the tags file.  It is also used for "\f" in a |pattern|.
4419	Multi-byte characters 256 and above are always included, only the
4420	characters up to 255 are specified with this option.
4421	For UTF-8 the characters 0xa0 to 0xff are included as well.
4422	Think twice before adding white space to this option.  Although a
4423	space may appear inside a file name, the effect will be that Vim
4424	doesn't know where a file name starts or ends when doing completion.
4425	It most likely works better without a space in 'isfname'.
4426
4427	Note that on systems using a backslash as path separator, Vim tries to
4428	do its best to make it work as you would expect.  That is a bit
4429	tricky, since Vi originally used the backslash to escape special
4430	characters.  Vim will not remove a backslash in front of a normal file
4431	name character on these systems, but it will on Unix and alikes.  The
4432	'&' and '^' are not included by default, because these are special for
4433	cmd.exe.
4434
4435	The format of this option is a list of parts, separated with commas.
4436	Each part can be a single character number or a range.  A range is two
4437	character numbers with '-' in between.  A character number can be a
4438	decimal number between 0 and 255 or the ASCII character itself (does
4439	not work for digits).  Example:
4440		"_,-,128-140,#-43"	(include '_' and '-' and the range
4441					128 to 140 and '#' to 43)
4442	If a part starts with '^', the following character number or range
4443	will be excluded from the option.  The option is interpreted from left
4444	to right.  Put the excluded character after the range where it is
4445	included.  To include '^' itself use it as the last character of the
4446	option or the end of a range.  Example:
4447		"^a-z,#,^"	(exclude 'a' to 'z', include '#' and '^')
4448	If the character is '@', all characters where isalpha() returns TRUE
4449	are included.  Normally these are the characters a to z and A to Z,
4450	plus accented characters.  To include '@' itself use "@-@".  Examples:
4451		"@,^a-z"	All alphabetic characters, excluding lower
4452				case ASCII letters.
4453		"a-z,A-Z,@-@"	All letters plus the '@' character.
4454	A comma can be included by using it where a character number is
4455	expected.  Example:
4456		"48-57,,,_"	Digits, comma and underscore.
4457	A comma can be excluded by prepending a '^'.  Example:
4458		" -~,^,,9"	All characters from space to '~', excluding
4459				comma, plus <Tab>.
4460	See |option-backslash| about including spaces and backslashes.
4461
4462						*'isident'* *'isi'*
4463'isident' 'isi'		string	(default for MS-DOS, Win32 and OS/2:
4464					   "@,48-57,_,128-167,224-235"
4465				otherwise: "@,48-57,_,192-255")
4466			global
4467			{not in Vi}
4468	The characters given by this option are included in identifiers.
4469	Identifiers are used in recognizing environment variables and after a
4470	match of the 'define' option.  It is also used for "\i" in a
4471	|pattern|.  See 'isfname' for a description of the format of this
4472	option.
4473	Careful: If you change this option, it might break expanding
4474	environment variables.  E.g., when '/' is included and Vim tries to
4475	expand "$HOME/.viminfo".  Maybe you should change 'iskeyword' instead.
4476
4477						*'iskeyword'* *'isk'*
4478'iskeyword' 'isk'	string (Vim default for MS-DOS and Win32:
4479					    "@,48-57,_,128-167,224-235"
4480				   otherwise:  "@,48-57,_,192-255"
4481				Vi default: "@,48-57,_")
4482			local to buffer
4483			{not in Vi}
4484	Keywords are used in searching and recognizing with many commands:
4485	"w", "*", "[i", etc.  It is also used for "\k" in a |pattern|.  See
4486	'isfname' for a description of the format of this option.  For C
4487	programs you could use "a-z,A-Z,48-57,_,.,-,>".
4488	For a help file it is set to all non-blank printable characters except
4489	'*', '"' and '|' (so that CTRL-] on a command finds the help for that
4490	command).
4491	When the 'lisp' option is on the '-' character is always included.
4492	NOTE: This option is set to the Vi default value when 'compatible' is
4493	set and to the Vim default value when 'compatible' is reset.
4494
4495						*'isprint'* *'isp'*
4496'isprint' 'isp'	string	(default for MS-DOS, Win32, OS/2 and Macintosh:
4497				"@,~-255"; otherwise: "@,161-255")
4498			global
4499			{not in Vi}
4500	The characters given by this option are displayed directly on the
4501	screen.  It is also used for "\p" in a |pattern|.  The characters from
4502	space (ASCII 32) to '~' (ASCII 126) are always displayed directly,
4503	even when they are not included in 'isprint' or excluded.  See
4504	'isfname' for a description of the format of this option.
4505
4506	Non-printable characters are displayed with two characters:
4507		  0 -  31	"^@" - "^_"
4508		 32 - 126	always single characters
4509		   127		"^?"
4510		128 - 159	"~@" - "~_"
4511		160 - 254	"| " - "|~"
4512		   255		"~?"
4513	When 'encoding' is a Unicode one, illegal bytes from 128 to 255 are
4514	displayed as <xx>, with the hexadecimal value of the byte.
4515	When 'display' contains "uhex" all unprintable characters are
4516	displayed as <xx>.
4517	The SpecialKey highlighting will be used for unprintable characters.
4518	|hl-SpecialKey|
4519
4520	Multi-byte characters 256 and above are always included, only the
4521	characters up to 255 are specified with this option.  When a character
4522	is printable but it is not available in the current font, a
4523	replacement character will be shown.
4524	Unprintable and zero-width Unicode characters are displayed as <xxxx>.
4525	There is no option to specify these characters.
4526
4527			*'joinspaces'* *'js'* *'nojoinspaces'* *'nojs'*
4528'joinspaces' 'js'	boolean	(default on)
4529			global
4530			{not in Vi}
4531	Insert two spaces after a '.', '?' and '!' with a join command.
4532	When 'cpoptions' includes the 'j' flag, only do this after a '.'.
4533	Otherwise only one space is inserted.
4534	NOTE: This option is set when 'compatible' is set.
4535
4536							*'key'*
4537'key'			string	(default "")
4538			local to buffer
4539			{not in Vi}
4540			{only available when compiled with the |+cryptv|
4541			feature}
4542	The key that is used for encrypting and decrypting the current buffer.
4543	See |encryption| and 'cryptmethod'.
4544	Careful: Do not set the key value by hand, someone might see the typed
4545	key.  Use the |:X| command.  But you can make 'key' empty: >
4546		:set key=
4547<	It is not possible to get the value of this option with ":set key" or
4548	"echo &key".  This is to avoid showing it to someone who shouldn't
4549	know.  It also means you cannot see it yourself once you have set it,
4550	be careful not to make a typing error!
4551	You can use "&key" in an expression to detect whether encryption is
4552	enabled.  When 'key' is set it returns "*****" (five stars).
4553
4554					*'keymap'* *'kmp'* *E544*
4555'keymap' 'kmp'		string	(default "")
4556			local to buffer
4557			{not in Vi}
4558			{only available when compiled with the |+keymap|
4559			feature}
4560	Name of a keyboard mapping.  See |mbyte-keymap|.
4561	Setting this option to a valid keymap name has the side effect of
4562	setting 'iminsert' to one, so that the keymap becomes effective.
4563	'imsearch' is also set to one, unless it was -1
4564	Only normal file name characters can be used, "/\*?[|<>" are illegal.
4565
4566					*'keymodel'* *'km'*
4567'keymodel' 'km'		string	(default "")
4568			global
4569			{not in Vi}
4570	List of comma separated words, which enable special things that keys
4571	can do.  These values can be used:
4572	   startsel	Using a shifted special key starts selection (either
4573			Select mode or Visual mode, depending on "key" being
4574			present in 'selectmode').
4575	   stopsel	Using a not-shifted special key stops selection.
4576	Special keys in this context are the cursor keys, <End>, <Home>,
4577	<PageUp> and <PageDown>.
4578	The 'keymodel' option is set by the |:behave| command.
4579
4580					*'keywordprg'* *'kp'*
4581'keywordprg' 'kp'	string	(default "man" or "man -s",  DOS: ":help",
4582						OS/2: "view /", VMS: "help")
4583			global or local to buffer |global-local|
4584			{not in Vi}
4585	Program to use for the |K| command.  Environment variables are
4586	expanded |:set_env|.  ":help" may be used to access the Vim internal
4587	help.  (Note that previously setting the global option to the empty
4588	value did this, which is now deprecated.)
4589	When "man" is used, Vim will automatically translate a count for the
4590	"K" command to a section number.  Also for "man -s", in which case the
4591	"-s" is removed when there is no count.
4592	See |option-backslash| about including spaces and backslashes.
4593	Example: >
4594		:set keywordprg=man\ -s
4595<	This option cannot be set from a |modeline| or in the |sandbox|, for
4596	security reasons.
4597
4598					*'langmap'* *'lmap'* *E357* *E358*
4599'langmap' 'lmap'	string	(default "")
4600			global
4601			{not in Vi}
4602			{only available when compiled with the |+langmap|
4603			feature}
4604	This option allows switching your keyboard into a special language
4605	mode.  When you are typing text in Insert mode the characters are
4606	inserted directly.  When in command mode the 'langmap' option takes
4607	care of translating these special characters to the original meaning
4608	of the key.  This means you don't have to change the keyboard mode to
4609	be able to execute Normal mode commands.
4610	This is the opposite of the 'keymap' option, where characters are
4611	mapped in Insert mode.
4612	Also consider setting 'langnoremap' to avoid 'langmap' applies to
4613	characters resulting from a mapping.
4614	This option cannot be set from a |modeline| or in the |sandbox|, for
4615	security reasons.
4616
4617	Example (for Greek, in UTF-8):				*greek*  >
4618	    :set langmap=ΑA,ΒB,ΨC,ΔD,ΕE,ΦF,ΓG,ΗH,ΙI,ΞJ,ΚK,ΛL,ΜM,ΝN,ΟO,ΠP,QQ,ΡR,ΣS,ΤT,ΘU,ΩV,WW,ΧX,ΥY,ΖZ,αa,βb,ψc,δd,εe,φf,γg,ηh,ιi,ξj,κk,λl,μm,νn,οo,πp,qq,ρr,σs,τt,θu,ωv,ςw,χx,υy,ζz
4619<	Example (exchanges meaning of z and y for commands): >
4620	    :set langmap=zy,yz,ZY,YZ
4621<
4622	The 'langmap' option is a list of parts, separated with commas.  Each
4623	part can be in one of two forms:
4624	1.  A list of pairs.  Each pair is a "from" character immediately
4625	    followed by the "to" character.  Examples: "aA", "aAbBcC".
4626	2.  A list of "from" characters, a semi-colon and a list of "to"
4627	    characters.  Example: "abc;ABC"
4628	Example: "aA,fgh;FGH,cCdDeE"
4629	Special characters need to be preceded with a backslash.  These are
4630	";", ',' and backslash itself.
4631
4632	This will allow you to activate vim actions without having to switch
4633	back and forth between the languages.  Your language characters will
4634	be understood as normal vim English characters (according to the
4635	langmap mappings) in the following cases:
4636	 o Normal/Visual mode (commands, buffer/register names, user mappings)
4637	 o Insert/Replace Mode: Register names after CTRL-R
4638	 o Insert/Replace Mode: Mappings
4639	Characters entered in Command-line mode will NOT be affected by
4640	this option.   Note that this option can be changed at any time
4641	allowing to switch between mappings for different languages/encodings.
4642	Use a mapping to avoid having to type it each time!
4643
4644					*'langmenu'* *'lm'*
4645'langmenu' 'lm'		string	(default "")
4646			global
4647			{not in Vi}
4648			{only available when compiled with the |+menu| and
4649			|+multi_lang| features}
4650	Language to use for menu translation.  Tells which file is loaded
4651	from the "lang" directory in 'runtimepath': >
4652		"lang/menu_" . &langmenu . ".vim"
4653<	(without the spaces).  For example, to always use the Dutch menus, no
4654	matter what $LANG is set to: >
4655		:set langmenu=nl_NL.ISO_8859-1
4656<	When 'langmenu' is empty, |v:lang| is used.
4657	Only normal file name characters can be used, "/\*?[|<>" are illegal.
4658	If your $LANG is set to a non-English language but you do want to use
4659	the English menus: >
4660		:set langmenu=none
4661<	This option must be set before loading menus, switching on filetype
4662	detection or syntax highlighting.  Once the menus are defined setting
4663	this option has no effect.  But you could do this: >
4664		:source $VIMRUNTIME/delmenu.vim
4665		:set langmenu=de_DE.ISO_8859-1
4666		:source $VIMRUNTIME/menu.vim
4667<	Warning: This deletes all menus that you defined yourself!
4668
4669			*'langnoremap'* *'lnr'* *'nolangnoremap'* *'nolnr'*
4670'langnoremap' 'lnr'	boolean (default off)
4671			global
4672			{not in Vi}
4673			{only available when compiled with the |+langmap|
4674			feature}
4675	When on, setting 'langmap' does not apply to characters resulting from
4676	a mapping.  This basically means, if you noticed that setting
4677	'langmap' disables some of your mappings, try setting this option.
4678	This option defaults to off for backwards compatibility.  Set it on if
4679	that works for you to avoid mappings to break.
4680
4681					*'laststatus'* *'ls'*
4682'laststatus' 'ls'	number	(default 1)
4683			global
4684			{not in Vi}
4685	The value of this option influences when the last window will have a
4686	status line:
4687		0: never
4688		1: only if there are at least two windows
4689		2: always
4690	The screen looks nicer with a status line if you have several
4691	windows, but it takes another screen line. |status-line|
4692
4693			*'lazyredraw'* *'lz'* *'nolazyredraw'* *'nolz'*
4694'lazyredraw' 'lz'	boolean	(default off)
4695			global
4696			{not in Vi}
4697	When this option is set, the screen will not be redrawn while
4698	executing macros, registers and other commands that have not been
4699	typed.  Also, updating the window title is postponed.  To force an
4700	update use |:redraw|.
4701
4702			*'linebreak'* *'lbr'* *'nolinebreak'* *'nolbr'*
4703'linebreak' 'lbr'	boolean	(default off)
4704			local to window
4705			{not in Vi}
4706			{not available when compiled without the |+linebreak|
4707			feature}
4708	If on, Vim will wrap long lines at a character in 'breakat' rather
4709	than at the last character that fits on the screen.  Unlike
4710	'wrapmargin' and 'textwidth', this does not insert <EOL>s in the file,
4711	it only affects the way the file is displayed, not its contents.
4712	If 'breakindent' is set, line is visually indented. Then, the value
4713	of 'showbreak' is used to put in front of wrapped lines. This option
4714	is not used when the 'wrap' option is off.
4715	Note that <Tab> characters after an <EOL> are mostly not displayed
4716	with the right amount of white space.
4717
4718						*'lines'* *E593*
4719'lines'			number	(default 24 or terminal height)
4720			global
4721	Number of lines of the Vim window.
4722	Normally you don't need to set this.  It is done automatically by the
4723	terminal initialization code.  Also see |posix-screen-size|.
4724	When Vim is running in the GUI or in a resizable window, setting this
4725	option will cause the window size to be changed.  When you only want
4726	to use the size for the GUI, put the command in your |gvimrc| file.
4727	Vim limits the number of lines to what fits on the screen.  You can
4728	use this command to get the tallest window possible: >
4729		:set lines=999
4730<	Minimum value is 2, maximum value is 1000.
4731	If you get less lines than expected, check the 'guiheadroom' option.
4732	When you set this option and Vim is unable to change the physical
4733	number of lines of the display, the display may be messed up.
4734
4735						*'linespace'* *'lsp'*
4736'linespace' 'lsp'	number	(default 0, 1 for Win32 GUI)
4737			global
4738			{not in Vi}
4739			{only in the GUI}
4740	Number of pixel lines inserted between characters.  Useful if the font
4741	uses the full character cell height, making lines touch each other.
4742	When non-zero there is room for underlining.
4743	With some fonts there can be too much room between lines (to have
4744	space for ascents and descents).  Then it makes sense to set
4745	'linespace' to a negative value.  This may cause display problems
4746	though!
4747
4748						*'lisp'* *'nolisp'*
4749'lisp'			boolean	(default off)
4750			local to buffer
4751			{not available when compiled without the |+lispindent|
4752			feature}
4753	Lisp mode: When <Enter> is typed in insert mode set the indent for
4754	the next line to Lisp standards (well, sort of).  Also happens with
4755	"cc" or "S".  'autoindent' must also be on for this to work.  The 'p'
4756	flag in 'cpoptions' changes the method of indenting: Vi compatible or
4757	better.  Also see 'lispwords'.
4758	The '-' character is included in keyword characters.  Redefines the
4759	"=" operator to use this same indentation algorithm rather than
4760	calling an external program if 'equalprg' is empty.
4761	This option is not used when 'paste' is set.
4762	{Vi: Does it a little bit differently}
4763
4764						*'lispwords'* *'lw'*
4765'lispwords' 'lw'	string	(default is very long)
4766			global or local to buffer |global-local|
4767			{not in Vi}
4768			{not available when compiled without the |+lispindent|
4769			feature}
4770	Comma separated list of words that influence the Lisp indenting.
4771	|'lisp'|
4772
4773						*'list'* *'nolist'*
4774'list'			boolean	(default off)
4775			local to window
4776	List mode: Show tabs as CTRL-I is displayed, display $ after end of
4777	line.  Useful to see the difference between tabs and spaces and for
4778	trailing blanks.  Further changed by the 'listchars' option.
4779
4780	The cursor is displayed at the start of the space a Tab character
4781	occupies, not at the end as usual in Normal mode.  To get this cursor
4782	position while displaying Tabs with spaces, use: >
4783		:set list lcs=tab:\ \
4784<
4785	Note that list mode will also affect formatting (set with 'textwidth'
4786	or 'wrapmargin') when 'cpoptions' includes 'L'.  See 'listchars' for
4787	changing the way tabs are displayed.
4788
4789						*'listchars'* *'lcs'*
4790'listchars' 'lcs'	string	(default "eol:$")
4791			global
4792			{not in Vi}
4793	Strings to use in 'list' mode and for the |:list| command.  It is a
4794	comma separated list of string settings.
4795							*lcs-eol*
4796	  eol:c		Character to show at the end of each line.  When
4797			omitted, there is no extra character at the end of the
4798			line.
4799							*lcs-tab*
4800	  tab:xy	Two characters to be used to show a tab.  The first
4801			char is used once.  The second char is repeated to
4802			fill the space that the tab normally occupies.
4803			"tab:>-" will show a tab that takes four spaces as
4804			">---".  When omitted, a tab is show as ^I.
4805							*lcs-space*
4806	  space:c	Character to show for a space.  When omitted, spaces
4807			are left blank.
4808							*lcs-trail*
4809	  trail:c	Character to show for trailing spaces.  When omitted,
4810			trailing spaces are blank.  Overrides the "space"
4811			setting for trailing spaces.
4812							*lcs-extends*
4813	  extends:c	Character to show in the last column, when 'wrap' is
4814			off and the line continues beyond the right of the
4815			screen.
4816							*lcs-precedes*
4817	  precedes:c	Character to show in the first column, when 'wrap'
4818			is off and there is text preceding the character
4819			visible in the first column.
4820							*lcs-conceal*
4821	  conceal:c	Character to show in place of concealed text, when
4822			'conceallevel' is set to 1.
4823							*lcs-nbsp*
4824	  nbsp:c	Character to show for a non-breakable space character
4825			(0xA0 (160 decimal) and U+202F).  Left blank when
4826			omitted.
4827
4828	The characters ':' and ',' should not be used.  UTF-8 characters can
4829	be used when 'encoding' is "utf-8", otherwise only printable
4830	characters are allowed.  All characters must be single width.
4831
4832	Examples: >
4833	    :set lcs=tab:>-,trail:-
4834	    :set lcs=tab:>-,eol:<,nbsp:%
4835	    :set lcs=extends:>,precedes:<
4836<	The "NonText" highlighting will be used for "eol", "extends" and
4837	"precedes".  "SpecialKey" for "nbsp", "space", "tab" and "trail".
4838	|hl-NonText| |hl-SpecialKey|
4839
4840			*'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'*
4841'loadplugins' 'lpl'	boolean	(default on)
4842			global
4843			{not in Vi}
4844	When on the plugin scripts are loaded when starting up |load-plugins|.
4845	This option can be reset in your |vimrc| file to disable the loading
4846	of plugins.
4847	Note that using the "-u NONE" and "--noplugin" command line arguments
4848	reset this option. |-u| |--noplugin|
4849
4850						*'luadll'*
4851'luadll' 		string	(default empty)
4852			global
4853			{not in Vi} {only for Unix}
4854			{only available when compiled with the |+lua/dyn|
4855			feature}
4856	Specifies the path of the Lua shared library instead of DYNAMIC_LUA_DLL
4857	what was specified at compile time.
4858	This option cannot be set from a |modeline| or in the |sandbox|, for
4859	security reasons.
4860
4861						*'macatsui'* *'nomacatsui'*
4862'macatsui'		boolean	(default on)
4863			global
4864			{only available in Mac GUI version}
4865	This is a workaround for when drawing doesn't work properly.  When set
4866	and compiled with multi-byte support ATSUI text drawing is used.  When
4867	not set ATSUI text drawing is not used.  Switch this option off when
4868	you experience drawing problems.  In a future version the problems may
4869	be solved and this option becomes obsolete.  Therefore use this method
4870	to unset it: >
4871		if exists('&macatsui')
4872		   set nomacatsui
4873		endif
4874<	Another option to check if you have drawing problems is
4875	'termencoding'.
4876
4877						*'magic'* *'nomagic'*
4878'magic'			boolean	(default on)
4879			global
4880	Changes the special characters that can be used in search patterns.
4881	See |pattern|.
4882	NOTE: To avoid portability problems with using patterns, always keep
4883	this option at the default "on".  Only switch it off when working with
4884	old Vi scripts.  In any other situation write patterns that work when
4885	'magic' is on.  Include "\M" when you want to |/\M|.
4886
4887						*'makeef'* *'mef'*
4888'makeef' 'mef'		string	(default: "")
4889			global
4890			{not in Vi}
4891			{not available when compiled without the |+quickfix|
4892			feature}
4893	Name of the errorfile for the |:make| command (see |:make_makeprg|)
4894	and the |:grep| command.
4895	When it is empty, an internally generated temp file will be used.
4896	When "##" is included, it is replaced by a number to make the name
4897	unique.  This makes sure that the ":make" command doesn't overwrite an
4898	existing file.
4899	NOT used for the ":cf" command.  See 'errorfile' for that.
4900	Environment variables are expanded |:set_env|.
4901	See |option-backslash| about including spaces and backslashes.
4902	This option cannot be set from a |modeline| or in the |sandbox|, for
4903	security reasons.
4904
4905						*'makeprg'* *'mp'*
4906'makeprg' 'mp'		string	(default "make", VMS: "MMS")
4907			global or local to buffer |global-local|
4908			{not in Vi}
4909	Program to use for the ":make" command.  See |:make_makeprg|.
4910	This option may contain '%' and '#' characters (see  |:_%| and |:_#|),
4911	which are expanded to the current and alternate file name.  Use |::S|
4912	to escape file names in case they contain special characters.
4913	Environment variables are expanded |:set_env|.  See |option-backslash|
4914	about including spaces and backslashes.
4915	Note that a '|' must be escaped twice: once for ":set" and once for
4916	the interpretation of a command.  When you use a filter called
4917	"myfilter" do it like this: >
4918	    :set makeprg=gmake\ \\\|\ myfilter
4919<	The placeholder "$*" can be given (even multiple times) to specify
4920	where the arguments will be included, for example: >
4921	    :set makeprg=latex\ \\\\nonstopmode\ \\\\input\\{$*}
4922<	This option cannot be set from a |modeline| or in the |sandbox|, for
4923	security reasons.
4924
4925						*'matchpairs'* *'mps'*
4926'matchpairs' 'mps'	string	(default "(:),{:},[:]")
4927			local to buffer
4928			{not in Vi}
4929	Characters that form pairs.  The |%| command jumps from one to the
4930	other.
4931	Only character pairs are allowed that are different, thus you cannot
4932	jump between two double quotes.
4933	The characters must be separated by a colon.
4934	The pairs must be separated by a comma.  Example for including '<' and
4935	'>' (HTML): >
4936		:set mps+=<:>
4937
4938<	A more exotic example, to jump between the '=' and ';' in an
4939	assignment, useful for languages like C and Java: >
4940		:au FileType c,cpp,java set mps+==:;
4941
4942<	For a more advanced way of using "%", see the matchit.vim plugin in
4943	the $VIMRUNTIME/macros directory. |add-local-help|
4944
4945						*'matchtime'* *'mat'*
4946'matchtime' 'mat'	number	(default 5)
4947			global
4948			{not in Vi}{in Nvi}
4949	Tenths of a second to show the matching paren, when 'showmatch' is
4950	set.  Note that this is not in milliseconds, like other options that
4951	set a time.  This is to be compatible with Nvi.
4952
4953						*'maxcombine'* *'mco'*
4954'maxcombine' 'mco'	number (default 2)
4955			global
4956			{not in Vi}
4957			{only available when compiled with the |+multi_byte|
4958			feature}
4959	The maximum number of combining characters supported for displaying.
4960	Only used when 'encoding' is "utf-8".
4961	The default is OK for most languages.  Hebrew may require 4.
4962	Maximum value is 6.
4963	Even when this option is set to 2 you can still edit text with more
4964	combining characters, you just can't see them.  Use |g8| or |ga|.
4965	See |mbyte-combining|.
4966
4967						*'maxfuncdepth'* *'mfd'*
4968'maxfuncdepth' 'mfd'	number	(default 100)
4969			global
4970			{not in Vi}
4971			{not available when compiled without the |+eval|
4972			feature}
4973	Maximum depth of function calls for user functions.  This normally
4974	catches endless recursion.  When using a recursive function with
4975	more depth, set 'maxfuncdepth' to a bigger number.  But this will use
4976	more memory, there is the danger of failing when memory is exhausted.
4977	See also |:function|.
4978
4979						*'maxmapdepth'* *'mmd'* *E223*
4980'maxmapdepth' 'mmd'	number	(default 1000)
4981			global
4982			{not in Vi}
4983	Maximum number of times a mapping is done without resulting in a
4984	character to be used.  This normally catches endless mappings, like
4985	":map x y" with ":map y x".  It still does not catch ":map g wg",
4986	because the 'w' is used before the next mapping is done.  See also
4987	|key-mapping|.
4988
4989						*'maxmem'* *'mm'*
4990'maxmem' 'mm'		number	(default between 256 to 5120 (system
4991				 dependent) or half the amount of memory
4992				 available)
4993			global
4994			{not in Vi}
4995	Maximum amount of memory (in Kbyte) to use for one buffer.  When this
4996	limit is reached allocating extra memory for a buffer will cause
4997	other memory to be freed.  The maximum usable value is about 2000000.
4998	Use this to work without a limit.  Also see 'maxmemtot'.
4999
5000						*'maxmempattern'* *'mmp'*
5001'maxmempattern' 'mmp'	number	(default 1000)
5002			global
5003			{not in Vi}
5004	Maximum amount of memory (in Kbyte) to use for pattern matching.
5005	The maximum value is about 2000000.  Use this to work without a limit.
5006							*E363*
5007	When Vim runs into the limit it gives an error message and mostly
5008	behaves like CTRL-C was typed.
5009	Running into the limit often means that the pattern is very
5010	inefficient or too complex.  This may already happen with the pattern
5011	"\(.\)*" on a very long line.  ".*" works much better.
5012	Vim may run out of memory before hitting the 'maxmempattern' limit.
5013
5014						*'maxmemtot'* *'mmt'*
5015'maxmemtot' 'mmt'	number	(default between 2048 and 10240 (system
5016				 dependent) or half the amount of memory
5017				 available)
5018			global
5019			{not in Vi}
5020	Maximum amount of memory in Kbyte to use for all buffers together.
5021	The maximum usable value is about 2000000 (2 Gbyte).  Use this to work
5022	without a limit.  On 64 bit machines higher values might work.  But
5023	hey, do you really need more than 2 Gbyte for text editing?
5024	Also see 'maxmem'.
5025
5026						*'menuitems'* *'mis'*
5027'menuitems' 'mis'	number	(default 25)
5028			global
5029			{not in Vi}
5030			{not available when compiled without the |+menu|
5031			feature}
5032	Maximum number of items to use in a menu.  Used for menus that are
5033	generated from a list of items, e.g., the Buffers menu.  Changing this
5034	option has no direct effect, the menu must be refreshed first.
5035
5036						*'mkspellmem'* *'msm'*
5037'mkspellmem' 'msm'	string	(default "460000,2000,500")
5038			global
5039			{not in Vi}
5040			{not available when compiled without the |+syntax|
5041			feature}
5042	Parameters for |:mkspell|.  This tunes when to start compressing the
5043	word tree.  Compression can be slow when there are many words, but
5044	it's needed to avoid running out of memory.  The amount of memory used
5045	per word depends very much on how similar the words are, that's why
5046	this tuning is complicated.
5047
5048	There are three numbers, separated by commas:
5049		{start},{inc},{added}
5050
5051	For most languages the uncompressed word tree fits in memory.  {start}
5052	gives the amount of memory in Kbyte that can be used before any
5053	compression is done.  It should be a bit smaller than the amount of
5054	memory that is available to Vim.
5055
5056	When going over the {start} limit the {inc} number specifies the
5057	amount of memory in Kbyte that can be allocated before another
5058	compression is done.  A low number means compression is done after
5059	less words are added, which is slow.  A high number means more memory
5060	will be allocated.
5061
5062	After doing compression, {added} times 1024 words can be added before
5063	the {inc} limit is ignored and compression is done when any extra
5064	amount of memory is needed.  A low number means there is a smaller
5065	chance of hitting the {inc} limit, less memory is used but it's
5066	slower.
5067
5068	The languages for which these numbers are important are Italian and
5069	Hungarian.  The default works for when you have about 512 Mbyte.  If
5070	you have 1 Gbyte you could use: >
5071		:set mkspellmem=900000,3000,800
5072<	If you have less than 512 Mbyte |:mkspell| may fail for some
5073	languages, no matter what you set 'mkspellmem' to.
5074
5075				   *'modeline'* *'ml'* *'nomodeline'* *'noml'*
5076'modeline' 'ml'		boolean	(Vim default: on (off for root),
5077				 Vi default: off)
5078			local to buffer
5079						*'modelines'* *'mls'*
5080'modelines' 'mls'	number	(default 5)
5081			global
5082			{not in Vi}
5083	If 'modeline' is on 'modelines' gives the number of lines that is
5084	checked for set commands.  If 'modeline' is off or 'modelines' is zero
5085	no lines are checked.  See |modeline|.
5086	NOTE: 'modeline' is set to the Vi default value when 'compatible' is
5087	set and to the Vim default value when 'compatible' is reset.
5088
5089				*'modifiable'* *'ma'* *'nomodifiable'* *'noma'*
5090'modifiable' 'ma'	boolean	(default on)
5091			local to buffer
5092			{not in Vi}		*E21*
5093	When off the buffer contents cannot be changed.  The 'fileformat' and
5094	'fileencoding' options also can't be changed.
5095	Can be reset with the |-M| command line argument.
5096
5097				*'modified'* *'mod'* *'nomodified'* *'nomod'*
5098'modified' 'mod'	boolean	(default off)
5099			local to buffer
5100			{not in Vi}
5101	When on, the buffer is considered to be modified.  This option is set
5102	when:
5103	1. A change was made to the text since it was last written.  Using the
5104	   |undo| command to go back to the original text will reset the
5105	   option.  But undoing changes that were made before writing the
5106	   buffer will set the option again, since the text is different from
5107	   when it was written.
5108	2. 'fileformat' or 'fileencoding' is different from its original
5109	   value.  The original value is set when the buffer is read or
5110	   written.  A ":set nomodified" command also resets the original
5111	   values to the current values and the 'modified' option will be
5112	   reset.
5113	This option is not set when a change is made to the buffer as the
5114	result of a BufNewFile, BufRead/BufReadPost, BufWritePost,
5115	FileAppendPost or VimLeave autocommand event.  See |gzip-example| for
5116	an explanation.
5117	When 'buftype' is "nowrite" or "nofile" this option may be set, but
5118	will be ignored.
5119
5120						*'more'* *'nomore'*
5121'more'			boolean	(Vim default: on, Vi default: off)
5122			global
5123			{not in Vi}
5124	When on, listings pause when the whole screen is filled.  You will get
5125	the |more-prompt|.  When this option is off there are no pauses, the
5126	listing continues until finished.
5127	NOTE: This option is set to the Vi default value when 'compatible' is
5128	set and to the Vim default value when 'compatible' is reset.
5129
5130						*'mouse'* *E538*
5131'mouse'			string	(default "", "a" for GUI, MS-DOS and Win32)
5132			global
5133			{not in Vi}
5134	Enable the use of the mouse.  Only works for certain terminals
5135	(xterm, MS-DOS, Win32 |win32-mouse|, QNX pterm, *BSD console with
5136	sysmouse and Linux console with gpm).  For using the mouse in the
5137	GUI, see |gui-mouse|.
5138	The mouse can be enabled for different modes:
5139		n	Normal mode
5140		v	Visual mode
5141		i	Insert mode
5142		c	Command-line mode
5143		h	all previous modes when editing a help file
5144		a	all previous modes
5145		r	for |hit-enter| and |more-prompt| prompt
5146	Normally you would enable the mouse in all four modes with: >
5147		:set mouse=a
5148<	When the mouse is not enabled, the GUI will still use the mouse for
5149	modeless selection.  This doesn't move the text cursor.
5150
5151	See |mouse-using|.  Also see |'clipboard'|.
5152
5153	Note: When enabling the mouse in a terminal, copy/paste will use the
5154	"* register if there is access to an X-server.  The xterm handling of
5155	the mouse buttons can still be used by keeping the shift key pressed.
5156	Also see the 'clipboard' option.
5157
5158			*'mousefocus'* *'mousef'* *'nomousefocus'* *'nomousef'*
5159'mousefocus' 'mousef'	boolean	(default off)
5160			global
5161			{not in Vi}
5162			{only works in the GUI}
5163	The window that the mouse pointer is on is automatically activated.
5164	When changing the window layout or window focus in another way, the
5165	mouse pointer is moved to the window with keyboard focus.  Off is the
5166	default because it makes using the pull down menus a little goofy, as
5167	a pointer transit may activate a window unintentionally.
5168
5169			*'mousehide'* *'mh'* *'nomousehide'* *'nomh'*
5170'mousehide' 'mh'	boolean	(default on)
5171			global
5172			{not in Vi}
5173			{only works in the GUI}
5174	When on, the mouse pointer is hidden when characters are typed.
5175	The mouse pointer is restored when the mouse is moved.
5176
5177						*'mousemodel'* *'mousem'*
5178'mousemodel' 'mousem'	string	(default "extend", "popup" for MS-DOS and Win32)
5179			global
5180			{not in Vi}
5181	Sets the model to use for the mouse.  The name mostly specifies what
5182	the right mouse button is used for:
5183	   extend	Right mouse button extends a selection.  This works
5184			like in an xterm.
5185	   popup	Right mouse button pops up a menu.  The shifted left
5186			mouse button extends a selection.  This works like
5187			with Microsoft Windows.
5188	   popup_setpos Like "popup", but the cursor will be moved to the
5189			position where the mouse was clicked, and thus the
5190			selected operation will act upon the clicked object.
5191			If clicking inside a selection, that selection will
5192			be acted upon, i.e. no cursor move.  This implies of
5193			course, that right clicking outside a selection will
5194			end Visual mode.
5195	Overview of what button does what for each model:
5196	mouse		    extend		popup(_setpos) ~
5197	left click	    place cursor	place cursor
5198	left drag	    start selection	start selection
5199	shift-left	    search word		extend selection
5200	right click	    extend selection	popup menu (place cursor)
5201	right drag	    extend selection	-
5202	middle click	    paste		paste
5203
5204	In the "popup" model the right mouse button produces a pop-up menu.
5205	You need to define this first, see |popup-menu|.
5206
5207	Note that you can further refine the meaning of buttons with mappings.
5208	See |gui-mouse-mapping|.  But mappings are NOT used for modeless
5209	selection (because that's handled in the GUI code directly).
5210
5211	The 'mousemodel' option is set by the |:behave| command.
5212
5213					*'mouseshape'* *'mouses'* *E547*
5214'mouseshape' 'mouses'	string	(default "i:beam,r:beam,s:updown,sd:cross,
5215					m:no,ml:up-arrow,v:rightup-arrow")
5216			global
5217			{not in Vi}
5218			{only available when compiled with the |+mouseshape|
5219			feature}
5220	This option tells Vim what the mouse pointer should look like in
5221	different modes.  The option is a comma separated list of parts, much
5222	like used for 'guicursor'.  Each part consist of a mode/location-list
5223	and an argument-list:
5224		mode-list:shape,mode-list:shape,..
5225	The mode-list is a dash separated list of these modes/locations:
5226			In a normal window: ~
5227		n	Normal mode
5228		v	Visual mode
5229		ve	Visual mode with 'selection' "exclusive" (same as 'v',
5230			if not specified)
5231		o	Operator-pending mode
5232		i	Insert mode
5233		r	Replace mode
5234
5235			Others: ~
5236		c	appending to the command-line
5237		ci	inserting in the command-line
5238		cr	replacing in the command-line
5239		m	at the 'Hit ENTER' or 'More' prompts
5240		ml	idem, but cursor in the last line
5241		e	any mode, pointer below last window
5242		s	any mode, pointer on a status line
5243		sd	any mode, while dragging a status line
5244		vs	any mode, pointer on a vertical separator line
5245		vd	any mode, while dragging a vertical separator line
5246		a	everywhere
5247
5248	The shape is one of the following:
5249	avail	name		looks like ~
5250	w x	arrow		Normal mouse pointer
5251	w x	blank		no pointer at all (use with care!)
5252	w x	beam		I-beam
5253	w x	updown		up-down sizing arrows
5254	w x	leftright	left-right sizing arrows
5255	w x	busy		The system's usual busy pointer
5256	w x	no		The system's usual 'no input' pointer
5257	  x	udsizing	indicates up-down resizing
5258	  x	lrsizing	indicates left-right resizing
5259	  x	crosshair	like a big thin +
5260	  x	hand1		black hand
5261	  x	hand2		white hand
5262	  x	pencil		what you write with
5263	  x	question	big ?
5264	  x	rightup-arrow	arrow pointing right-up
5265	w x	up-arrow	arrow pointing up
5266	  x	<number>	any X11 pointer number (see X11/cursorfont.h)
5267
5268	The "avail" column contains a 'w' if the shape is available for Win32,
5269	x for X11.
5270	Any modes not specified or shapes not available use the normal mouse
5271	pointer.
5272
5273	Example: >
5274		:set mouseshape=s:udsizing,m:no
5275<	will make the mouse turn to a sizing arrow over the status lines and
5276	indicate no input when the hit-enter prompt is displayed (since
5277	clicking the mouse has no effect in this state.)
5278
5279						*'mousetime'* *'mouset'*
5280'mousetime' 'mouset'	number	(default 500)
5281			global
5282			{not in Vi}
5283	Only for GUI, MS-DOS, Win32 and Unix with xterm.  Defines the maximum
5284	time in msec between two mouse clicks for the second click to be
5285	recognized as a multi click.
5286
5287						    *'mzquantum'* *'mzq'*
5288'mzquantum' 'mzq'	number	(default 100)
5289			global
5290			{not in Vi}
5291			{not available when compiled without the |+mzscheme|
5292			feature}
5293	The number of milliseconds between polls for MzScheme threads.
5294	Negative or zero value means no thread scheduling.
5295
5296							*'nrformats'* *'nf'*
5297'nrformats' 'nf'	string	(default "octal,hex")
5298			local to buffer
5299			{not in Vi}
5300	This defines what bases Vim will consider for numbers when using the
5301	CTRL-A and CTRL-X commands for adding to and subtracting from a number
5302	respectively; see |CTRL-A| for more info on these commands.
5303	alpha	If included, single alphabetical characters will be
5304		incremented or decremented.  This is useful for a list with a
5305		letter index a), b), etc.	  	*octal-nrformats*
5306	octal	If included, numbers that start with a zero will be considered
5307		to be octal.  Example: Using CTRL-A on "007" results in "010".
5308	hex	If included, numbers starting with "0x" or "0X" will be
5309		considered to be hexadecimal.  Example: Using CTRL-X on
5310		"0x100" results in "0x0ff".
5311	Numbers which simply begin with a digit in the range 1-9 are always
5312	considered decimal.  This also happens for numbers that are not
5313	recognized as octal or hex.
5314
5315				*'number'* *'nu'* *'nonumber'* *'nonu'*
5316'number' 'nu'		boolean	(default off)
5317			local to window
5318	Print the line number in front of each line.  When the 'n' option is
5319	excluded from 'cpoptions' a wrapped line will not use the column of
5320	line numbers (this is the default when 'compatible' isn't set).
5321	The 'numberwidth' option can be used to set the room used for the line
5322	number.
5323	When a long, wrapped line doesn't start with the first character, '-'
5324	characters are put before the number.
5325	See |hl-LineNr|  and |hl-CursorLineNr| for the highlighting used for
5326	the number.
5327						*number_relativenumber*
5328	The 'relativenumber' option changes the displayed number to be
5329	relative to the cursor.  Together with 'number' there are these
5330	four combinations (cursor in line 3):
5331
5332              	'nonu'          'nu'            'nonu'          'nu'
5333		'nornu'         'nornu'         'rnu'           'rnu'
5334
5335	    |apple          |  1 apple      |  2 apple      |  2 apple
5336	    |pear           |  2 pear       |  1 pear       |  1 pear
5337	    |nobody         |  3 nobody     |  0 nobody     |3   nobody
5338	    |there          |  4 there      |  1 there      |  1 there
5339
5340						*'numberwidth'* *'nuw'*
5341'numberwidth' 'nuw'	number	(Vim default: 4  Vi default: 8)
5342			local to window
5343			{not in Vi}
5344			{only available when compiled with the |+linebreak|
5345			feature}
5346	Minimal number of columns to use for the line number.  Only relevant
5347	when the 'number' or 'relativenumber' option is set or printing lines
5348	with a line number. Since one space is always between the number and
5349	the text, there is one less character for the number itself.
5350	The value is the minimum width.  A bigger width is used when needed to
5351	fit the highest line number in the buffer respectively the number of
5352	rows in the window, depending on whether 'number' or 'relativenumber'
5353	is set. Thus with the Vim default of 4 there is room for a line number
5354	up to 999. When the buffer has 1000 lines five columns will be used.
5355	The minimum value is 1, the maximum value is 10.
5356	NOTE: 'numberwidth' is reset to 8 when 'compatible' is set.
5357
5358						*'omnifunc'* *'ofu'*
5359'omnifunc' 'ofu'	string	(default: empty)
5360			local to buffer
5361			{not in Vi}
5362			{not available when compiled without the |+eval|
5363			or |+insert_expand| features}
5364	This option specifies a function to be used for Insert mode omni
5365	completion with CTRL-X CTRL-O. |i_CTRL-X_CTRL-O|
5366	See |complete-functions| for an explanation of how the function is
5367	invoked and what it should return.
5368	This option is usually set by a filetype plugin:
5369	|:filetype-plugin-on|
5370	This option cannot be set from a |modeline| or in the |sandbox|, for
5371	security reasons.
5372
5373
5374			    *'opendevice'* *'odev'* *'noopendevice'* *'noodev'*
5375'opendevice' 'odev'	boolean	(default off)
5376			global
5377			{not in Vi}
5378			{only for MS-DOS, MS-Windows and OS/2}
5379	Enable reading and writing from devices.  This may get Vim stuck on a
5380	device that can be opened but doesn't actually do the I/O.  Therefore
5381	it is off by default.
5382	Note that on MS-Windows editing "aux.h", "lpt1.txt" and the like also
5383	result in editing a device.
5384
5385
5386						*'operatorfunc'* *'opfunc'*
5387'operatorfunc' 'opfunc'	string	(default: empty)
5388			global
5389			{not in Vi}
5390	This option specifies a function to be called by the |g@| operator.
5391	See |:map-operator| for more info and an example.
5392
5393	This option cannot be set from a |modeline| or in the |sandbox|, for
5394	security reasons.
5395
5396
5397					*'osfiletype'* *'oft'*
5398'osfiletype' 'oft'	string (default: "")
5399			local to buffer
5400			{not in Vi}
5401	This option was supported on RISC OS, which has been removed.
5402
5403
5404						*'paragraphs'* *'para'*
5405'paragraphs' 'para'	string	(default "IPLPPPQPP TPHPLIPpLpItpplpipbp")
5406			global
5407	Specifies the nroff macros that separate paragraphs.  These are pairs
5408	of two letters (see |object-motions|).
5409
5410						*'paste'* *'nopaste'*
5411'paste'			boolean	(default off)
5412			global
5413			{not in Vi}
5414	Put Vim in Paste mode.  This is useful if you want to cut or copy
5415	some text from one window and paste it in Vim.  This will avoid
5416	unexpected effects.
5417	Setting this option is useful when using Vim in a terminal, where Vim
5418	cannot distinguish between typed text and pasted text.  In the GUI, Vim
5419	knows about pasting and will mostly do the right thing without 'paste'
5420	being set.  The same is true for a terminal where Vim handles the
5421	mouse clicks itself.
5422	This option is reset when starting the GUI.  Thus if you set it in
5423	your .vimrc it will work in a terminal, but not in the GUI.  Setting
5424	'paste' in the GUI has side effects: e.g., the Paste toolbar button
5425	will no longer work in Insert mode, because it uses a mapping.
5426	When the 'paste' option is switched on (also when it was already on):
5427		- mapping in Insert mode and Command-line mode is disabled
5428		- abbreviations are disabled
5429		- 'autoindent' is reset
5430		- 'expandtab' is reset
5431		- 'formatoptions' is used like it is empty
5432		- 'revins' is reset
5433		- 'ruler' is reset
5434		- 'showmatch' is reset
5435		- 'smartindent' is reset
5436		- 'smarttab' is reset
5437		- 'softtabstop' is set to 0
5438		- 'textwidth' is set to 0
5439		- 'wrapmargin' is set to 0
5440	These options keep their value, but their effect is disabled:
5441		- 'cindent'
5442		- 'indentexpr'
5443		- 'lisp'
5444	NOTE: When you start editing another file while the 'paste' option is
5445	on, settings from the modelines or autocommands may change the
5446	settings again, causing trouble when pasting text.  You might want to
5447	set the 'paste' option again.
5448	When the 'paste' option is reset the mentioned options are restored to
5449	the value before the moment 'paste' was switched from off to on.
5450	Resetting 'paste' before ever setting it does not have any effect.
5451	Since mapping doesn't work while 'paste' is active, you need to use
5452	the 'pastetoggle' option to toggle the 'paste' option with some key.
5453
5454						*'pastetoggle'* *'pt'*
5455'pastetoggle' 'pt'	string	(default "")
5456			global
5457			{not in Vi}
5458	When non-empty, specifies the key sequence that toggles the 'paste'
5459	option.  This is like specifying a mapping: >
5460	    :map {keys} :set invpaste<CR>
5461<	Where {keys} is the value of 'pastetoggle'.
5462	The difference is that it will work even when 'paste' is set.
5463	'pastetoggle' works in Insert mode and Normal mode, but not in
5464	Command-line mode.
5465	Mappings are checked first, thus overrule 'pastetoggle'.  However,
5466	when 'paste' is on mappings are ignored in Insert mode, thus you can do
5467	this: >
5468	    :map <F10> :set paste<CR>
5469	    :map <F11> :set nopaste<CR>
5470	    :imap <F10> <C-O>:set paste<CR>
5471	    :imap <F11> <nop>
5472	    :set pastetoggle=<F11>
5473<	This will make <F10> start paste mode and <F11> stop paste mode.
5474	Note that typing <F10> in paste mode inserts "<F10>", since in paste
5475	mode everything is inserted literally, except the 'pastetoggle' key
5476	sequence.
5477	When the value has several bytes 'ttimeoutlen' applies.
5478
5479						*'pex'* *'patchexpr'*
5480'patchexpr' 'pex'	string	(default "")
5481			global
5482			{not in Vi}
5483			{not available when compiled without the |+diff|
5484			feature}
5485	Expression which is evaluated to apply a patch to a file and generate
5486	the resulting new version of the file.  See |diff-patchexpr|.
5487
5488					*'patchmode'* *'pm'* *E205* *E206*
5489'patchmode' 'pm'	string	(default "")
5490			global
5491			{not in Vi}
5492	When non-empty the oldest version of a file is kept.  This can be used
5493	to keep the original version of a file if you are changing files in a
5494	source distribution.  Only the first time that a file is written a
5495	copy of the original file will be kept.  The name of the copy is the
5496	name of the original file with the string in the 'patchmode' option
5497	appended.  This option should start with a dot.  Use a string like
5498	".org".  'backupdir' must not be empty for this to work (Detail: The
5499	backup file is renamed to the patchmode file after the new file has
5500	been successfully written, that's why it must be possible to write a
5501	backup file).  If there was no file to be backed up, an empty file is
5502	created.
5503	When the 'backupskip' pattern matches, a patchmode file is not made.
5504	Using 'patchmode' for compressed files appends the extension at the
5505	end (e.g., "file.gz.orig"), thus the resulting name isn't always
5506	recognized as a compressed file.
5507	Only normal file name characters can be used, "/\*?[|<>" are illegal.
5508
5509				*'path'* *'pa'* *E343* *E345* *E347* *E854*
5510'path' 'pa'		string	(default on Unix: ".,/usr/include,,"
5511				   on OS/2:	  ".,/emx/include,,"
5512				   other systems: ".,,")
5513			global or local to buffer |global-local|
5514			{not in Vi}
5515	This is a list of directories which will be searched when using the
5516	|gf|, [f, ]f, ^Wf, |:find|, |:sfind|, |:tabfind| and other commands,
5517	provided that the file being searched for has a relative path (not
5518	starting with "/", "./" or "../").  The directories in the 'path'
5519	option may be relative or absolute.
5520	- Use commas to separate directory names: >
5521		:set path=.,/usr/local/include,/usr/include
5522<	- Spaces can also be used to separate directory names (for backwards
5523	  compatibility with version 3.0).  To have a space in a directory
5524	  name, precede it with an extra backslash, and escape the space: >
5525		:set path=.,/dir/with\\\ space
5526<	- To include a comma in a directory name precede it with an extra
5527	  backslash: >
5528		:set path=.,/dir/with\\,comma
5529<	- To search relative to the directory of the current file, use: >
5530		:set path=.
5531<	- To search in the current directory use an empty string between two
5532	  commas: >
5533		:set path=,,
5534<	- A directory name may end in a ':' or '/'.
5535	- Environment variables are expanded |:set_env|.
5536	- When using |netrw.vim| URLs can be used.  For example, adding
5537	  "http://www.vim.org" will make ":find index.html" work.
5538	- Search upwards and downwards in a directory tree using "*", "**" and
5539	  ";".  See |file-searching| for info and syntax.
5540	  {not available when compiled without the |+path_extra| feature}
5541	- Careful with '\' characters, type two to get one in the option: >
5542		:set path=.,c:\\include
5543<	  Or just use '/' instead: >
5544		:set path=.,c:/include
5545<	Don't forget "." or files won't even be found in the same directory as
5546	the file!
5547	The maximum length is limited.  How much depends on the system, mostly
5548	it is something like 256 or 1024 characters.
5549	You can check if all the include files are found, using the value of
5550	'path', see |:checkpath|.
5551	The use of |:set+=| and |:set-=| is preferred when adding or removing
5552	directories from the list.  This avoids problems when a future version
5553	uses another default.  To remove the current directory use: >
5554		:set path-=
5555<	To add the current directory use: >
5556		:set path+=
5557<	To use an environment variable, you probably need to replace the
5558	separator.  Here is an example to append $INCL, in which directory
5559	names are separated with a semi-colon: >
5560		:let &path = &path . "," . substitute($INCL, ';', ',', 'g')
5561<	Replace the ';' with a ':' or whatever separator is used.  Note that
5562	this doesn't work when $INCL contains a comma or white space.
5563
5564						*'perldll'*
5565'perldll' 		string	(default empty)
5566			global
5567			{not in Vi} {only for Unix}
5568			{only available when compiled with the |+perl/dyn|
5569			feature}
5570	Specifies the path of the Perl shared library instead of
5571	DYNAMIC_PERL_DLL what was specified at compile time.
5572	This option cannot be set from a |modeline| or in the |sandbox|, for
5573	security reasons.
5574
5575			*'preserveindent'* *'pi'* *'nopreserveindent'* *'nopi'*
5576'preserveindent' 'pi'	boolean	(default off)
5577			local to buffer
5578			{not in Vi}
5579	When changing the indent of the current line, preserve as much of the
5580	indent structure as possible.  Normally the indent is replaced by a
5581	series of tabs followed by spaces as required (unless |'expandtab'| is
5582	enabled, in which case only spaces are used).  Enabling this option
5583	means the indent will preserve as many existing characters as possible
5584	for indenting, and only add additional tabs or spaces as required.
5585	'expandtab' does not apply to the preserved white space, a Tab remains
5586	a Tab.
5587	NOTE: When using ">>" multiple times the resulting indent is a mix of
5588	tabs and spaces.  You might not like this.
5589	NOTE: 'preserveindent' is reset when 'compatible' is set.
5590	Also see 'copyindent'.
5591	Use |:retab| to clean up white space.
5592
5593					*'previewheight'* *'pvh'*
5594'previewheight' 'pvh'	number (default 12)
5595			global
5596			{not in Vi}
5597			{not available when compiled without the |+windows| or
5598			|+quickfix| features}
5599	Default height for a preview window.  Used for |:ptag| and associated
5600	commands.  Used for |CTRL-W_}| when no count is given.
5601
5602					*'previewwindow'* *'nopreviewwindow'*
5603					*'pvw'* *'nopvw'* *E590*
5604'previewwindow' 'pvw'	boolean (default off)
5605			local to window
5606			{not in Vi}
5607			{not available when compiled without the |+windows| or
5608			|+quickfix| features}
5609	Identifies the preview window.  Only one window can have this option
5610	set.  It's normally not set directly, but by using one of the commands
5611	|:ptag|, |:pedit|, etc.
5612
5613						*'printdevice'* *'pdev'*
5614'printdevice' 'pdev'	string	(default empty)
5615			global
5616			{not in Vi}
5617			{only available when compiled with the |+printer|
5618			feature}
5619	The name of the printer to be used for |:hardcopy|.
5620	See |pdev-option|.
5621	This option cannot be set from a |modeline| or in the |sandbox|, for
5622	security reasons.
5623
5624						*'printencoding'* *'penc'*
5625'printencoding' 'penc'	String	(default empty, except for some systems)
5626			global
5627			{not in Vi}
5628			{only available when compiled with the |+printer|
5629			and |+postscript| features}
5630	Sets the character encoding used when printing.
5631	See |penc-option|.
5632
5633						*'printexpr'* *'pexpr'*
5634'printexpr' 'pexpr'	String	(default: see below)
5635			global
5636			{not in Vi}
5637			{only available when compiled with the |+printer|
5638			and |+postscript| features}
5639	Expression used to print the PostScript produced with |:hardcopy|.
5640	See |pexpr-option|.
5641
5642						*'printfont'* *'pfn'*
5643'printfont' 'pfn'	string	(default "courier")
5644			global
5645			{not in Vi}
5646			{only available when compiled with the |+printer|
5647			feature}
5648	The name of the font that will be used for |:hardcopy|.
5649	See |pfn-option|.
5650
5651						*'printheader'* *'pheader'*
5652'printheader' 'pheader'  string  (default "%<%f%h%m%=Page %N")
5653			global
5654			{not in Vi}
5655			{only available when compiled with the |+printer|
5656			feature}
5657	The format of the header produced in |:hardcopy| output.
5658	See |pheader-option|.
5659
5660						*'printmbcharset'* *'pmbcs'*
5661'printmbcharset' 'pmbcs'  string (default "")
5662			global
5663			{not in Vi}
5664			{only available when compiled with the |+printer|,
5665			|+postscript| and |+multi_byte| features}
5666	The CJK character set to be used for CJK output from |:hardcopy|.
5667	See |pmbcs-option|.
5668
5669						*'printmbfont'* *'pmbfn'*
5670'printmbfont' 'pmbfn'	string (default "")
5671			global
5672			{not in Vi}
5673			{only available when compiled with the |+printer|,
5674			|+postscript| and |+multi_byte| features}
5675	List of font names to be used for CJK output from |:hardcopy|.
5676	See |pmbfn-option|.
5677
5678						*'printoptions'* *'popt'*
5679'printoptions' 'popt' string (default "")
5680			global
5681			{not in Vi}
5682			{only available when compiled with |+printer| feature}
5683	List of items that control the format of the output of |:hardcopy|.
5684	See |popt-option|.
5685
5686						*'prompt'* *'noprompt'*
5687'prompt'		boolean	(default on)
5688			global
5689	When on a ":" prompt is used in Ex mode.
5690
5691						*'pumheight'* *'ph'*
5692'pumheight' 'ph'	number	(default 0)
5693			global
5694			{not available when compiled without the
5695			|+insert_expand| feature}
5696			{not in Vi}
5697	Determines the maximum number of items to show in the popup menu for
5698	Insert mode completion.  When zero as much space as available is used.
5699	|ins-completion-menu|.
5700
5701						*'pythondll'*
5702'pythondll' 		string	(default empty)
5703			global
5704			{not in Vi} {only for Unix}
5705			{only available when compiled with the |+python/dyn|
5706			feature}
5707	Specifies the path of the Python 2.x shared library instead of
5708	DYNAMIC_PYTHON_DLL what was specified at compile time.
5709	This option cannot be set from a |modeline| or in the |sandbox|, for
5710	security reasons.
5711
5712						*'pythonthreedll'*
5713'pythonthreedll'	string	(default empty)
5714			global
5715			{not in Vi} {only for Unix}
5716			{only available when compiled with the |+python3/dyn|
5717			feature}
5718	Specifies the path of the Python 3 shared library instead of
5719	DYNAMIC_PYTHON3_DLL what was specified at compile time.
5720	This option cannot be set from a |modeline| or in the |sandbox|, for
5721	security reasons.
5722
5723						*'quoteescape'* *'qe'*
5724'quoteescape' 'qe'	string	(default "\")
5725			local to buffer
5726			{not in Vi}
5727	The characters that are used to escape quotes in a string.  Used for
5728	objects like a', a" and a` |a'|.
5729	When one of the characters in this option is found inside a string,
5730	the following character will be skipped.  The default value makes the
5731	text "foo\"bar\\" considered to be one string.
5732
5733				   *'readonly'* *'ro'* *'noreadonly'* *'noro'*
5734'readonly' 'ro'		boolean	(default off)
5735			local to buffer
5736	If on, writes fail unless you use a '!'.  Protects you from
5737	accidentally overwriting a file.  Default on when Vim is started
5738	in read-only mode ("vim -R") or when the executable is called "view".
5739	When using ":w!" the 'readonly' option is reset for the current
5740	buffer, unless the 'Z' flag is in 'cpoptions'.
5741	{not in Vi:}  When using the ":view" command the 'readonly' option is
5742	set for the newly edited buffer.
5743
5744						*'redrawtime'* *'rdt'*
5745'redrawtime' 'rdt'	number	(default 2000)
5746			global
5747			{not in Vi}
5748			{only available when compiled with the |+reltime|
5749			feature}
5750	The time in milliseconds for redrawing the display.  This applies to
5751	searching for patterns for 'hlsearch' and |:match| highlighting.
5752	When redrawing takes more than this many milliseconds no further
5753	matches will be highlighted.  This is used to avoid that Vim hangs
5754	when using a very complicated pattern.
5755
5756						*'regexpengine'* *'re'*
5757'regexpengine' 're'	number	(default 0)
5758			global
5759			{not in Vi}
5760	This selects the default regexp engine. |two-engines|
5761	The possible values are:
5762		0	automatic selection
5763		1	old engine
5764		2	NFA engine
5765	Note that when using the NFA engine and the pattern contains something
5766	that is not supported the pattern will not match.  This is only useful
5767	for debugging the regexp engine.
5768	Using automatic selection enables Vim to switch the engine, if the
5769	default engine becomes too costly.  E.g., when the NFA engine uses too
5770	many states.  This should prevent Vim from hanging on a combination of
5771	a complex pattern with long text.
5772
5773		*'relativenumber'* *'rnu'* *'norelativenumber'* *'nornu'*
5774'relativenumber' 'rnu'	boolean	(default off)
5775			local to window
5776			{not in Vi}
5777	Show the line number relative to the line with the cursor in front of
5778	each line. Relative line numbers help you use the |count| you can
5779	precede some vertical motion commands (e.g. j k + -) with, without
5780	having to calculate it yourself. Especially useful in combination with
5781	other commands (e.g. y d c < > gq gw =).
5782	When the 'n' option is excluded from 'cpoptions' a wrapped
5783	line will not use the column of line numbers (this is the default when
5784	'compatible' isn't set).
5785	The 'numberwidth' option can be used to set the room used for the line
5786	number.
5787	When a long, wrapped line doesn't start with the first character, '-'
5788	characters are put before the number.
5789	See |hl-LineNr|  and |hl-CursorLineNr| for the highlighting used for
5790	the number.
5791
5792	The number in front of the cursor line also depends on the value of
5793	'number', see |number_relativenumber| for all combinations of the two
5794	options.
5795
5796						*'remap'* *'noremap'*
5797'remap'			boolean	(default on)
5798			global
5799	Allows for mappings to work recursively.  If you do not want this for
5800	a single entry, use the :noremap[!] command.
5801	NOTE: To avoid portability problems with Vim scripts, always keep
5802	this option at the default "on".  Only switch it off when working with
5803	old Vi scripts.
5804
5805                                               *'renderoptions'* *'rop'*
5806'renderoptions' 'rop'	string  (default: empty)
5807			global
5808			{not in Vi}
5809			{only available when compiled with GUI and DIRECTX on
5810			MS-Windows}
5811	Select a text renderer and set its options.  The options depend on the
5812	renderer.
5813
5814	Syntax: >
5815		set rop=type:{renderer}(,{name}:{value})*
5816<
5817	Currently, only one optional renderer is available.
5818
5819	render	behavior    ~
5820	directx	Vim will draw text using DirectX (DirectWrite).  It makes
5821		drawn glyphs more beautiful than default GDI.
5822		It requires 'encoding' is "utf-8", and only works on
5823		MS-Windows Vista or newer version.
5824
5825		Options:
5826		  name	    meaning		type	value       ~
5827		  gamma	    gamma		float	1.0 - 2.2 (maybe)
5828		  contrast  enhancedContrast	float	(unknown)
5829		  level	    clearTypeLevel	float	(unknown)
5830		  geom	    pixelGeometry	int	0 - 2 (see below)
5831		  renmode   renderingMode	int	0 - 6 (see below)
5832		  taamode   textAntialiasMode	int	0 - 3 (see below)
5833
5834		See this URL for detail:
5835		  http://msdn.microsoft.com/en-us/library/dd368190.aspx
5836
5837		For geom: structure of a device pixel.
5838		  0 - DWRITE_PIXEL_GEOMETRY_FLAT
5839		  1 - DWRITE_PIXEL_GEOMETRY_RGB
5840		  2 - DWRITE_PIXEL_GEOMETRY_BGR
5841
5842		See this URL for detail:
5843		  http://msdn.microsoft.com/en-us/library/dd368114.aspx
5844
5845		For renmode: method of rendering glyphs.
5846		  0 - DWRITE_RENDERING_MODE_DEFAULT
5847		  1 - DWRITE_RENDERING_MODE_ALIASED
5848		  2 - DWRITE_RENDERING_MODE_GDI_CLASSIC
5849		  3 - DWRITE_RENDERING_MODE_GDI_NATURAL
5850		  4 - DWRITE_RENDERING_MODE_NATURAL
5851		  5 - DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC
5852		  6 - DWRITE_RENDERING_MODE_OUTLINE
5853
5854		See this URL for detail:
5855		  http://msdn.microsoft.com/en-us/library/dd368118.aspx
5856
5857		For taamode: antialiasing mode used for drawing text.
5858		  0 - D2D1_TEXT_ANTIALIAS_MODE_DEFAULT
5859		  1 - D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE
5860		  2 - D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE
5861		  3 - D2D1_TEXT_ANTIALIAS_MODE_ALIASED
5862
5863		See this URL for detail:
5864		  http://msdn.microsoft.com/en-us/library/dd368170.aspx
5865
5866		Example: >
5867		  set encoding=utf-8
5868		  set gfn=Ricty_Diminished:h12:cSHIFTJIS
5869		  set rop=type:directx
5870<
5871		If select a raster font (Courier, Terminal or FixedSys) to
5872		'guifont', it fallbacks to be drawn by GDI automatically.
5873
5874	Other render types are currently not supported.
5875
5876						*'report'*
5877'report'		number	(default 2)
5878			global
5879	Threshold for reporting number of lines changed.  When the number of
5880	changed lines is more than 'report' a message will be given for most
5881	":" commands.  If you want it always, set 'report' to 0.
5882	For the ":substitute" command the number of substitutions is used
5883	instead of the number of lines.
5884
5885			 *'restorescreen'* *'rs'* *'norestorescreen'* *'nors'*
5886'restorescreen' 'rs'	boolean	(default on)
5887			global
5888			{not in Vi}  {only in Windows 95/NT console version}
5889	When set, the screen contents is restored when exiting Vim.  This also
5890	happens when executing external commands.
5891
5892	For non-Windows Vim: You can set or reset the 't_ti' and 't_te'
5893	options in your .vimrc.  To disable restoring:
5894		set t_ti= t_te=
5895	To enable restoring (for an xterm):
5896		set t_ti=^[7^[[r^[[?47h t_te=^[[?47l^[8
5897	(Where ^[ is an <Esc>, type CTRL-V <Esc> to insert it)
5898
5899				*'revins'* *'ri'* *'norevins'* *'nori'*
5900'revins' 'ri'		boolean	(default off)
5901			global
5902			{not in Vi}
5903			{only available when compiled with the |+rightleft|
5904			feature}
5905	Inserting characters in Insert mode will work backwards.  See "typing
5906	backwards" |ins-reverse|.  This option can be toggled with the CTRL-_
5907	command in Insert mode, when 'allowrevins' is set.
5908	NOTE: This option is reset when 'compatible' is set.
5909	This option is reset when 'paste' is set and restored when 'paste' is
5910	reset.
5911
5912				 *'rightleft'* *'rl'* *'norightleft'* *'norl'*
5913'rightleft' 'rl'	boolean	(default off)
5914			local to window
5915			{not in Vi}
5916			{only available when compiled with the |+rightleft|
5917			feature}
5918	When on, display orientation becomes right-to-left, i.e., characters
5919	that are stored in the file appear from the right to the left.
5920	Using this option, it is possible to edit files for languages that
5921	are written from the right to the left such as Hebrew and Arabic.
5922	This option is per window, so it is possible to edit mixed files
5923	simultaneously, or to view the same file in both ways (this is
5924	useful whenever you have a mixed text file with both right-to-left
5925	and left-to-right strings so that both sets are displayed properly
5926	in different windows).  Also see |rileft.txt|.
5927
5928			*'rightleftcmd'* *'rlc'*
5929'rightleftcmd' 'rlc'	string	(default "search")
5930			local to window
5931			{not in Vi}
5932			{only available when compiled with the |+rightleft|
5933			feature}
5934	Each word in this option enables the command line editing to work in
5935	right-to-left mode for a group of commands:
5936
5937		search		"/" and "?" commands
5938
5939	This is useful for languages such as Hebrew, Arabic and Farsi.
5940	The 'rightleft' option must be set for 'rightleftcmd' to take effect.
5941
5942						*'rubydll'*
5943'rubydll' 		string	(default empty)
5944			global
5945			{not in Vi} {only for Unix}
5946			{only available when compiled with the |+ruby/dyn|
5947			feature}
5948	Specifies the path of the Ruby shared library instead of
5949	DYNAMIC_RUBY_DLL what was specified at compile time.
5950	This option cannot be set from a |modeline| or in the |sandbox|, for
5951	security reasons.
5952
5953					 *'ruler'* *'ru'* *'noruler'* *'noru'*
5954'ruler' 'ru'		boolean	(default off)
5955			global
5956			{not in Vi}
5957			{not available when compiled without the
5958			|+cmdline_info| feature}
5959	Show the line and column number of the cursor position, separated by a
5960	comma.  When there is room, the relative position of the displayed
5961	text in the file is shown on the far right:
5962		Top	first line is visible
5963		Bot	last line is visible
5964		All	first and last line are visible
5965		45%	relative position in the file
5966	If 'rulerformat' is set, it will determine the contents of the ruler.
5967	Each window has its own ruler.  If a window has a status line, the
5968	ruler is shown there.  Otherwise it is shown in the last line of the
5969	screen.  If the statusline is given by 'statusline' (i.e. not empty),
5970	this option takes precedence over 'ruler' and 'rulerformat'
5971	If the number of characters displayed is different from the number of
5972	bytes in the text (e.g., for a TAB or a multi-byte character), both
5973	the text column (byte number) and the screen column are shown,
5974	separated with a dash.
5975	For an empty line "0-1" is shown.
5976	For an empty buffer the line number will also be zero: "0,0-1".
5977	This option is reset when 'paste' is set and restored when 'paste' is
5978	reset.
5979	If you don't want to see the ruler all the time but want to know where
5980	you are, use "g CTRL-G" |g_CTRL-G|.
5981	NOTE: This option is reset when 'compatible' is set.
5982
5983						*'rulerformat'* *'ruf'*
5984'rulerformat' 'ruf'	string	(default empty)
5985			global
5986			{not in Vi}
5987			{not available when compiled without the |+statusline|
5988			feature}
5989	When this option is not empty, it determines the content of the ruler
5990	string, as displayed for the 'ruler' option.
5991	The format of this option is like that of 'statusline'.
5992	The default ruler width is 17 characters.  To make the ruler 15
5993	characters wide, put "%15(" at the start and "%)" at the end.
5994	Example: >
5995		:set rulerformat=%15(%c%V\ %p%%%)
5996<
5997				*'runtimepath'* *'rtp'* *vimfiles*
5998'runtimepath' 'rtp'	string	(default:
5999					Unix: "$HOME/.vim,
6000						$VIM/vimfiles,
6001						$VIMRUNTIME,
6002						$VIM/vimfiles/after,
6003						$HOME/.vim/after"
6004					Amiga: "home:vimfiles,
6005						$VIM/vimfiles,
6006						$VIMRUNTIME,
6007						$VIM/vimfiles/after,
6008						home:vimfiles/after"
6009					PC, OS/2: "$HOME/vimfiles,
6010						$VIM/vimfiles,
6011						$VIMRUNTIME,
6012						$VIM/vimfiles/after,
6013						$HOME/vimfiles/after"
6014					Macintosh: "$VIM:vimfiles,
6015						$VIMRUNTIME,
6016						$VIM:vimfiles:after"
6017					RISC-OS: "Choices:vimfiles,
6018						$VIMRUNTIME,
6019						Choices:vimfiles/after"
6020					VMS: "sys$login:vimfiles,
6021						$VIM/vimfiles,
6022						$VIMRUNTIME,
6023						$VIM/vimfiles/after,
6024						sys$login:vimfiles/after")
6025			global
6026			{not in Vi}
6027	This is a list of directories which will be searched for runtime
6028	files:
6029	  filetype.vim	filetypes by file name |new-filetype|
6030	  scripts.vim	filetypes by file contents |new-filetype-scripts|
6031	  autoload/	automatically loaded scripts |autoload-functions|
6032	  colors/	color scheme files |:colorscheme|
6033	  compiler/	compiler files |:compiler|
6034	  doc/		documentation |write-local-help|
6035	  ftplugin/	filetype plugins |write-filetype-plugin|
6036	  indent/	indent scripts |indent-expression|
6037	  keymap/	key mapping files |mbyte-keymap|
6038	  lang/		menu translations |:menutrans|
6039	  menu.vim	GUI menus |menu.vim|
6040	  plugin/	plugin scripts |write-plugin|
6041	  print/	files for printing |postscript-print-encoding|
6042	  spell/	spell checking files |spell|
6043	  syntax/	syntax files |mysyntaxfile|
6044	  tutor/	files for vimtutor |tutor|
6045
6046	And any other file searched for with the |:runtime| command.
6047
6048	The defaults for most systems are setup to search five locations:
6049	1. In your home directory, for your personal preferences.
6050	2. In a system-wide Vim directory, for preferences from the system
6051	   administrator.
6052	3. In $VIMRUNTIME, for files distributed with Vim.
6053							*after-directory*
6054	4. In the "after" directory in the system-wide Vim directory.  This is
6055	   for the system administrator to overrule or add to the distributed
6056	   defaults (rarely needed)
6057	5. In the "after" directory in your home directory.  This is for
6058	   personal preferences to overrule or add to the distributed defaults
6059	   or system-wide settings (rarely needed).
6060
6061	Note that, unlike 'path', no wildcards like "**" are allowed.  Normal
6062	wildcards are allowed, but can significantly slow down searching for
6063	runtime files.  For speed, use as few items as possible and avoid
6064	wildcards.
6065	See |:runtime|.
6066	Example: >
6067		:set runtimepath=~/vimruntime,/mygroup/vim,$VIMRUNTIME
6068<	This will use the directory "~/vimruntime" first (containing your
6069	personal Vim runtime files), then "/mygroup/vim" (shared between a
6070	group of people) and finally "$VIMRUNTIME" (the distributed runtime
6071	files).
6072	You probably should always include $VIMRUNTIME somewhere, to use the
6073	distributed runtime files.  You can put a directory before $VIMRUNTIME
6074	to find files which replace a distributed runtime files.  You can put
6075	a directory after $VIMRUNTIME to find files which add to distributed
6076	runtime files.
6077	This option cannot be set from a |modeline| or in the |sandbox|, for
6078	security reasons.
6079
6080						*'scroll'* *'scr'*
6081'scroll' 'scr'		number	(default: half the window height)
6082			local to window
6083	Number of lines to scroll with CTRL-U and CTRL-D commands.  Will be
6084	set to half the number of lines in the window when the window size
6085	changes.  If you give a count to the CTRL-U or CTRL-D command it will
6086	be used as the new value for 'scroll'.  Reset to half the window
6087	height with ":set scroll=0".   {Vi is a bit different: 'scroll' gives
6088	the number of screen lines instead of file lines, makes a difference
6089	when lines wrap}
6090
6091			*'scrollbind'* *'scb'* *'noscrollbind'* *'noscb'*
6092'scrollbind' 'scb'	boolean  (default off)
6093			local to window
6094			{not in Vi}
6095			{not available when compiled without the |+scrollbind|
6096			feature}
6097	See also |scroll-binding|.  When this option is set, the current
6098	window scrolls as other scrollbind windows (windows that also have
6099	this option set) scroll.  This option is useful for viewing the
6100	differences between two versions of a file, see 'diff'.
6101	See |'scrollopt'| for options that determine how this option should be
6102	interpreted.
6103	This option is mostly reset when splitting a window to edit another
6104	file.  This means that ":split | edit file" results in two windows
6105	with scroll-binding, but ":split file" does not.
6106
6107						*'scrolljump'* *'sj'*
6108'scrolljump' 'sj'	number	(default 1)
6109			global
6110			{not in Vi}
6111	Minimal number of lines to scroll when the cursor gets off the
6112	screen (e.g., with "j").  Not used for scroll commands (e.g., CTRL-E,
6113	CTRL-D).  Useful if your terminal scrolls very slowly.
6114	When set to a negative number from -1 to -100 this is used as the
6115	percentage of the window height.  Thus -50 scrolls half the window
6116	height.
6117	NOTE: This option is set to 1 when 'compatible' is set.
6118
6119						*'scrolloff'* *'so'*
6120'scrolloff' 'so'	number	(default 0)
6121			global
6122			{not in Vi}
6123	Minimal number of screen lines to keep above and below the cursor.
6124	This will make some context visible around where you are working.  If
6125	you set it to a very large value (999) the cursor line will always be
6126	in the middle of the window (except at the start or end of the file or
6127	when long lines wrap).
6128	For scrolling horizontally see 'sidescrolloff'.
6129	NOTE: This option is set to 0 when 'compatible' is set.
6130
6131						*'scrollopt'* *'sbo'*
6132'scrollopt' 'sbo'	string	(default "ver,jump")
6133			global
6134			{not available when compiled without the |+scrollbind|
6135			feature}
6136			{not in Vi}
6137	This is a comma-separated list of words that specifies how
6138	'scrollbind' windows should behave.  'sbo' stands for ScrollBind
6139	Options.
6140	The following words are available:
6141	    ver		Bind vertical scrolling for 'scrollbind' windows
6142	    hor		Bind horizontal scrolling for 'scrollbind' windows
6143	    jump	Applies to the offset between two windows for vertical
6144			scrolling.  This offset is the difference in the first
6145			displayed line of the bound windows.  When moving
6146			around in a window, another 'scrollbind' window may
6147			reach a position before the start or after the end of
6148			the buffer.  The offset is not changed though, when
6149			moving back the 'scrollbind' window will try to scroll
6150			to the desired position when possible.
6151			When now making that window the current one, two
6152			things can be done with the relative offset:
6153			1. When "jump" is not included, the relative offset is
6154			   adjusted for the scroll position in the new current
6155			   window.  When going back to the other window, the
6156			   new relative offset will be used.
6157			2. When "jump" is included, the other windows are
6158			   scrolled to keep the same relative offset.  When
6159			   going back to the other window, it still uses the
6160			   same relative offset.
6161	Also see |scroll-binding|.
6162	When 'diff' mode is active there always is vertical scroll binding,
6163	even when "ver" isn't there.
6164
6165						*'sections'* *'sect'*
6166'sections' 'sect'	string	(default "SHNHH HUnhsh")
6167			global
6168	Specifies the nroff macros that separate sections.  These are pairs of
6169	two letters (See |object-motions|).  The default makes a section start
6170	at the nroff macros ".SH", ".NH", ".H", ".HU", ".nh" and ".sh".
6171
6172						*'secure'* *'nosecure'* *E523*
6173'secure'		boolean	(default off)
6174			global
6175			{not in Vi}
6176	When on, ":autocmd", shell and write commands are not allowed in
6177	".vimrc" and ".exrc" in the current directory and map commands are
6178	displayed.  Switch it off only if you know that you will not run into
6179	problems, or when the 'exrc' option is off.  On Unix this option is
6180	only used if the ".vimrc" or ".exrc" is not owned by you.  This can be
6181	dangerous if the systems allows users to do a "chown".  You better set
6182	'secure' at the end of your ~/.vimrc then.
6183	This option cannot be set from a |modeline| or in the |sandbox|, for
6184	security reasons.
6185
6186						*'selection'* *'sel'*
6187'selection' 'sel'	string	(default "inclusive")
6188			global
6189			{not in Vi}
6190	This option defines the behavior of the selection.  It is only used
6191	in Visual and Select mode.
6192	Possible values:
6193	   value	past line     inclusive ~
6194	   old		   no		yes
6195	   inclusive	   yes		yes
6196	   exclusive	   yes		no
6197	"past line" means that the cursor is allowed to be positioned one
6198	character past the line.
6199	"inclusive" means that the last character of the selection is included
6200	in an operation.  For example, when "x" is used to delete the
6201	selection.
6202	Note that when "exclusive" is used and selecting from the end
6203	backwards, you cannot include the last character of a line, when
6204	starting in Normal mode and 'virtualedit' empty.
6205
6206	The 'selection' option is set by the |:behave| command.
6207
6208						*'selectmode'* *'slm'*
6209'selectmode' 'slm'	string	(default "")
6210			global
6211			{not in Vi}
6212	This is a comma separated list of words, which specifies when to start
6213	Select mode instead of Visual mode, when a selection is started.
6214	Possible values:
6215	   mouse	when using the mouse
6216	   key		when using shifted special keys
6217	   cmd		when using "v", "V" or CTRL-V
6218	See |Select-mode|.
6219	The 'selectmode' option is set by the |:behave| command.
6220
6221						*'sessionoptions'* *'ssop'*
6222'sessionoptions' 'ssop'	string	(default: "blank,buffers,curdir,folds,
6223					       help,options,tabpages,winsize")
6224			global
6225			{not in Vi}
6226			{not available when compiled without the |+mksession|
6227			feature}
6228	Changes the effect of the |:mksession| command.  It is a comma
6229	separated list of words.  Each word enables saving and restoring
6230	something:
6231	   word		save and restore ~
6232	   blank	empty windows
6233	   buffers	hidden and unloaded buffers, not just those in windows
6234	   curdir	the current directory
6235	   folds	manually created folds, opened/closed folds and local
6236			fold options
6237	   globals	global variables that start with an uppercase letter
6238			and contain at least one lowercase letter.  Only
6239			String and Number types are stored.
6240	   help		the help window
6241	   localoptions	options and mappings local to a window or buffer (not
6242			global values for local options)
6243	   options	all options and mappings (also global values for local
6244			options)
6245	   resize	size of the Vim window: 'lines' and 'columns'
6246	   sesdir	the directory in which the session file is located
6247			will become the current directory (useful with
6248			projects accessed over a network from different
6249			systems)
6250	   slash	backslashes in file names replaced with forward
6251			slashes
6252	   tabpages	all tab pages; without this only the current tab page
6253			is restored, so that you can make a session for each
6254			tab page separately
6255	   unix		with Unix end-of-line format (single <NL>), even when
6256			on Windows or DOS
6257	   winpos	position of the whole Vim window
6258	   winsize	window sizes
6259
6260	Don't include both "curdir" and "sesdir".
6261	When neither "curdir" nor "sesdir" is included, file names are stored
6262	with absolute paths.
6263	"slash" and "unix" are useful on Windows when sharing session files
6264	with Unix.  The Unix version of Vim cannot source dos format scripts,
6265	but the Windows version of Vim can source unix format scripts.
6266
6267						*'shell'* *'sh'* *E91*
6268'shell' 'sh'		string	(default $SHELL or "sh",
6269					MS-DOS and Win32: "command.com" or
6270					"cmd.exe", OS/2: "cmd")
6271			global
6272	Name of the shell to use for ! and :! commands.  When changing the
6273	value also check these options: 'shelltype', 'shellpipe', 'shellslash'
6274	'shellredir', 'shellquote', 'shellxquote' and 'shellcmdflag'.
6275	It is allowed to give an argument to the command, e.g.  "csh -f".
6276	See |option-backslash| about including spaces and backslashes.
6277	Environment variables are expanded |:set_env|.
6278	If the name of the shell contains a space, you might need to enclose
6279	it in quotes.  Example: >
6280		:set shell=\"c:\program\ files\unix\sh.exe\"\ -f
6281<	Note the backslash before each quote (to avoid starting a comment) and
6282	each space (to avoid ending the option value).  Also note that the
6283	"-f" is not inside the quotes, because it is not part of the command
6284	name.  And Vim automagically recognizes the backslashes that are path
6285	separators.
6286	For Dos 32 bits (DJGPP), you can set the $DJSYSFLAGS environment
6287	variable to change the way external commands are executed.  See the
6288	libc.inf file of DJGPP.
6289	Under MS-Windows, when the executable ends in ".com" it must be
6290	included.  Thus setting the shell to "command.com" or "4dos.com"
6291	works, but "command" and "4dos" do not work for all commands (e.g.,
6292	filtering).
6293	For unknown reasons, when using "4dos.com" the current directory is
6294	changed to "C:\".  To avoid this set 'shell' like this: >
6295		:set shell=command.com\ /c\ 4dos
6296<	This option cannot be set from a |modeline| or in the |sandbox|, for
6297	security reasons.
6298
6299						*'shellcmdflag'* *'shcf'*
6300'shellcmdflag' 'shcf'	string	(default: "-c";
6301				 MS-DOS and Win32, when 'shell' does not
6302				 contain "sh" somewhere: "/c")
6303			global
6304			{not in Vi}
6305	Flag passed to the shell to execute "!" and ":!" commands; e.g.,
6306	"bash.exe -c ls" or "command.com /c dir".  For the MS-DOS-like
6307	systems, the default is set according to the value of 'shell', to
6308	reduce the need to set this option by the user.  It's not used for
6309	OS/2 (EMX figures this out itself).
6310	On Unix it can have more than one flag.  Each white space separated
6311	part is passed as an argument to the shell command.
6312	See |option-backslash| about including spaces and backslashes.
6313	Also see |dos-shell| for MS-DOS and MS-Windows.
6314	This option cannot be set from a |modeline| or in the |sandbox|, for
6315	security reasons.
6316
6317						*'shellpipe'* *'sp'*
6318'shellpipe' 'sp'	string	(default ">", "| tee", "|& tee" or "2>&1| tee")
6319			global
6320			{not in Vi}
6321			{not available when compiled without the |+quickfix|
6322			feature}
6323	String to be used to put the output of the ":make" command in the
6324	error file.  See also |:make_makeprg|.  See |option-backslash| about
6325	including spaces and backslashes.
6326	The name of the temporary file can be represented by "%s" if necessary
6327	(the file name is appended automatically if no %s appears in the value
6328	of this option).
6329	For the Amiga and MS-DOS the default is ">".  The output is directly
6330	saved in a file and not echoed to the screen.
6331	For Unix the default it "| tee".  The stdout of the compiler is saved
6332	in a file and echoed to the screen.  If the 'shell' option is "csh" or
6333	"tcsh" after initializations, the default becomes "|& tee".  If the
6334	'shell' option is "sh", "ksh", "mksh", "pdksh", "zsh" or "bash" the
6335	default becomes "2>&1| tee".  This means that stderr is also included.
6336	Before using the 'shell' option a path is removed, thus "/bin/sh" uses
6337	"sh".
6338	The initialization of this option is done after reading the ".vimrc"
6339	and the other initializations, so that when the 'shell' option is set
6340	there, the 'shellpipe' option changes automatically, unless it was
6341	explicitly set before.
6342	When 'shellpipe' is set to an empty string, no redirection of the
6343	":make" output will be done.  This is useful if you use a 'makeprg'
6344	that writes to 'makeef' by itself.  If you want no piping, but do
6345	want to include the 'makeef', set 'shellpipe' to a single space.
6346	Don't forget to precede the space with a backslash: ":set sp=\ ".
6347	In the future pipes may be used for filtering and this option will
6348	become obsolete (at least for Unix).
6349	This option cannot be set from a |modeline| or in the |sandbox|, for
6350	security reasons.
6351
6352						*'shellquote'* *'shq'*
6353'shellquote' 'shq'	string	(default: ""; MS-DOS and Win32, when 'shell'
6354					contains "sh" somewhere: "\"")
6355			global
6356			{not in Vi}
6357	Quoting character(s), put around the command passed to the shell, for
6358	the "!" and ":!" commands.  The redirection is kept outside of the
6359	quoting.  See 'shellxquote' to include the redirection.  It's
6360	probably not useful to set both options.
6361	This is an empty string by default.  Only known to be useful for
6362	third-party shells on MS-DOS-like systems, such as the MKS Korn Shell
6363	or bash, where it should be "\"".  The default is adjusted according
6364	the value of 'shell', to reduce the need to set this option by the
6365	user.  See |dos-shell|.
6366	This option cannot be set from a |modeline| or in the |sandbox|, for
6367	security reasons.
6368
6369						*'shellredir'* *'srr'*
6370'shellredir' 'srr'	string	(default ">", ">&" or ">%s 2>&1")
6371			global
6372			{not in Vi}
6373	String to be used to put the output of a filter command in a temporary
6374	file.  See also |:!|.  See |option-backslash| about including spaces
6375	and backslashes.
6376	The name of the temporary file can be represented by "%s" if necessary
6377	(the file name is appended automatically if no %s appears in the value
6378	of this option).
6379	The default is ">".  For Unix, if the 'shell' option is "csh", "tcsh"
6380	or "zsh" during initializations, the default becomes ">&".  If the
6381	'shell' option is "sh", "ksh" or "bash" the default becomes
6382	">%s 2>&1".  This means that stderr is also included.
6383	For Win32, the Unix checks are done and additionally "cmd" is checked
6384	for, which makes the default ">%s 2>&1".  Also, the same names with
6385	".exe" appended are checked for.
6386	The initialization of this option is done after reading the ".vimrc"
6387	and the other initializations, so that when the 'shell' option is set
6388	there, the 'shellredir' option changes automatically unless it was
6389	explicitly set before.
6390	In the future pipes may be used for filtering and this option will
6391	become obsolete (at least for Unix).
6392	This option cannot be set from a |modeline| or in the |sandbox|, for
6393	security reasons.
6394
6395			*'shellslash'* *'ssl'* *'noshellslash'* *'nossl'*
6396'shellslash' 'ssl'	boolean	(default off)
6397			global
6398			{not in Vi} {only for MSDOS, MS-Windows and OS/2}
6399	When set, a forward slash is used when expanding file names.  This is
6400	useful when a Unix-like shell is used instead of command.com or
6401	cmd.exe.  Backward slashes can still be typed, but they are changed to
6402	forward slashes by Vim.
6403	Note that setting or resetting this option has no effect for some
6404	existing file names, thus this option needs to be set before opening
6405	any file for best results.  This might change in the future.
6406	'shellslash' only works when a backslash can be used as a path
6407	separator.  To test if this is so use: >
6408		if exists('+shellslash')
6409<
6410			*'shelltemp'* *'stmp'* *'noshelltemp'* *'nostmp'*
6411'shelltemp' 'stmp'	boolean	(Vi default off, Vim default on)
6412			global
6413			{not in Vi}
6414	When on, use temp files for shell commands.  When off use a pipe.
6415	When using a pipe is not possible temp files are used anyway.
6416	Currently a pipe is only supported on Unix and MS-Windows 2K and
6417	later.  You can check it with: >
6418		:if has("filterpipe")
6419<	The advantage of using a pipe is that nobody can read the temp file
6420	and the 'shell' command does not need to support redirection.
6421	The advantage of using a temp file is that the file type and encoding
6422	can be detected.
6423	The |FilterReadPre|, |FilterReadPost| and |FilterWritePre|,
6424	|FilterWritePost| autocommands event are not triggered when
6425	'shelltemp' is off.
6426
6427						*'shelltype'* *'st'*
6428'shelltype' 'st'	number	(default 0)
6429			global
6430			{not in Vi} {only for the Amiga}
6431	On the Amiga this option influences the way how the commands work
6432	which use a shell.
6433	0 and 1: always use the shell
6434	2 and 3: use the shell only to filter lines
6435	4 and 5: use shell only for ':sh' command
6436	When not using the shell, the command is executed directly.
6437
6438	0 and 2: use "shell 'shellcmdflag' cmd" to start external commands
6439	1 and 3: use "shell cmd" to start external commands
6440
6441						*'shellxescape'* *'sxe'*
6442'shellxescape' 'sxe'	string	(default: "";
6443				 for MS-DOS and MS-Windows: "\"&|<>()@^")
6444			global
6445			{not in Vi}
6446	When 'shellxquote' is set to "(" then the characters listed in this
6447	option will be escaped with a '^' character.  This makes it possible
6448	to execute most external commands with cmd.exe.
6449
6450						*'shellxquote'* *'sxq'*
6451'shellxquote' 'sxq'	string	(default: "";
6452					for Win32, when 'shell' is cmd.exe: "("
6453					for Win32, when 'shell' contains "sh"
6454					somewhere: "\""
6455					for Unix, when using system(): "\"")
6456			global
6457			{not in Vi}
6458	Quoting character(s), put around the command passed to the shell, for
6459	the "!" and ":!" commands.  Includes the redirection.  See
6460	'shellquote' to exclude the redirection.  It's probably not useful
6461	to set both options.
6462	When the value is '(' then ')' is appended. When the value is '"('
6463	then ')"' is appended.
6464	When the value is '(' then also see 'shellxescape'.
6465	This is an empty string by default on most systems, but is known to be
6466	useful for on Win32 version, either for cmd.exe which automatically
6467	strips off the first and last quote on a command, or 3rd-party shells
6468	such as the MKS Korn Shell or bash, where it should be "\"".  The
6469	default is adjusted according the value of 'shell', to reduce the need
6470	to set this option by the user.  See |dos-shell|.
6471	This option cannot be set from a |modeline| or in the |sandbox|, for
6472	security reasons.
6473
6474			*'shiftround'* *'sr'* *'noshiftround'* *'nosr'*
6475'shiftround' 'sr'	boolean	(default off)
6476			global
6477			{not in Vi}
6478	Round indent to multiple of 'shiftwidth'.  Applies to > and <
6479	commands.  CTRL-T and CTRL-D in Insert mode always round the indent to
6480	a multiple of 'shiftwidth' (this is Vi compatible).
6481	NOTE: This option is reset when 'compatible' is set.
6482
6483						*'shiftwidth'* *'sw'*
6484'shiftwidth' 'sw'	number	(default 8)
6485			local to buffer
6486	Number of spaces to use for each step of (auto)indent.  Used for
6487	|'cindent'|, |>>|, |<<|, etc.
6488	When zero the 'ts' value will be used.  Use the |shiftwidth()|
6489	function to get the effective shiftwidth value.
6490
6491						*'shortmess'* *'shm'*
6492'shortmess' 'shm'	string	(Vim default "filnxtToO", Vi default: "",
6493							POSIX default: "A")
6494			global
6495			{not in Vi}
6496	This option helps to avoid all the |hit-enter| prompts caused by file
6497	messages, for example  with CTRL-G, and to avoid some other messages.
6498	It is a list of flags:
6499	 flag	meaning when present	~
6500	  f	use "(3 of 5)" instead of "(file 3 of 5)"
6501	  i	use "[noeol]" instead of "[Incomplete last line]"
6502	  l	use "999L, 888C" instead of "999 lines, 888 characters"
6503	  m	use "[+]" instead of "[Modified]"
6504	  n	use "[New]" instead of "[New File]"
6505	  r	use "[RO]" instead of "[readonly]"
6506	  w	use "[w]" instead of "written" for file write message
6507		and "[a]" instead of "appended" for ':w >> file' command
6508	  x	use "[dos]" instead of "[dos format]", "[unix]" instead of
6509		"[unix format]" and "[mac]" instead of "[mac format]".
6510	  a	all of the above abbreviations
6511
6512	  o	overwrite message for writing a file with subsequent message
6513		for reading a file (useful for ":wn" or when 'autowrite' on)
6514	  O	message for reading a file overwrites any previous message.
6515		Also for quickfix message (e.g., ":cn").
6516	  s	don't give "search hit BOTTOM, continuing at TOP" or "search
6517		hit TOP, continuing at BOTTOM" messages
6518	  t	truncate file message at the start if it is too long to fit
6519		on the command-line, "<" will appear in the left most column.
6520		Ignored in Ex mode.
6521	  T	truncate other messages in the middle if they are too long to
6522		fit on the command line.  "..." will appear in the middle.
6523		Ignored in Ex mode.
6524	  W	don't give "written" or "[w]" when writing a file
6525	  A	don't give the "ATTENTION" message when an existing swap file
6526		is found.
6527	  I	don't give the intro message when starting Vim |:intro|.
6528	  c	don't give |ins-completion-menu| messages.  For example,
6529		"-- XXX completion (YYY)", "match 1 of 2", "The only match",
6530		"Pattern not found", "Back at original", etc.
6531	  q     use "recording" instead of "recording @a"
6532
6533	This gives you the opportunity to avoid that a change between buffers
6534	requires you to hit <Enter>, but still gives as useful a message as
6535	possible for the space available.  To get the whole message that you
6536	would have got with 'shm' empty, use ":file!"
6537	Useful values:
6538	    shm=	No abbreviation of message.
6539	    shm=a	Abbreviation, but no loss of information.
6540	    shm=at	Abbreviation, and truncate message when necessary.
6541
6542	NOTE: This option is set to the Vi default value when 'compatible' is
6543	set and to the Vim default value when 'compatible' is reset.
6544
6545				 *'shortname'* *'sn'* *'noshortname'* *'nosn'*
6546'shortname' 'sn'	boolean	(default off)
6547			local to buffer
6548			{not in Vi, not in MS-DOS versions}
6549	Filenames are assumed to be 8 characters plus one extension of 3
6550	characters.  Multiple dots in file names are not allowed.  When this
6551	option is on, dots in file names are replaced with underscores when
6552	adding an extension (".~" or ".swp").  This option is not available
6553	for MS-DOS, because then it would always be on.  This option is useful
6554	when editing files on an MS-DOS compatible filesystem, e.g., messydos
6555	or crossdos.  When running the Win32 GUI version under Win32s, this
6556	option is always on by default.
6557
6558						*'showbreak'* *'sbr'* *E595*
6559'showbreak' 'sbr'	string	(default "")
6560			global
6561			{not in Vi}
6562			{not available when compiled without the |+linebreak|
6563			feature}
6564	String to put at the start of lines that have been wrapped.  Useful
6565	values are "> " or "+++ ": >
6566		:set showbreak=>\
6567<	Note the backslash to escape the trailing space.  It's easier like
6568	this: >
6569		:let &showbreak = '+++ '
6570<	Only printable single-cell characters are allowed, excluding <Tab> and
6571	comma (in a future version the comma might be used to separate the
6572	part that is shown at the end and at the start of a line).
6573	The characters are highlighted according to the '@' flag in
6574	'highlight'.
6575	Note that tabs after the showbreak will be displayed differently.
6576	If you want the 'showbreak' to appear in between line numbers, add the
6577	"n" flag to 'cpoptions'.
6578
6579				     *'showcmd'* *'sc'* *'noshowcmd'* *'nosc'*
6580'showcmd' 'sc'		boolean	(Vim default: on, off for Unix, Vi default:
6581				 off)
6582			global
6583			{not in Vi}
6584			{not available when compiled without the
6585			|+cmdline_info| feature}
6586	Show (partial) command in the last line of the screen.  Set this
6587	option off if your terminal is slow.
6588	In Visual mode the size of the selected area is shown:
6589	- When selecting characters within a line, the number of characters.
6590	  If the number of bytes is different it is also displayed: "2-6"
6591	  means two characters and six bytes.
6592	- When selecting more than one line, the number of lines.
6593	- When selecting a block, the size in screen characters:
6594	  {lines}x{columns}.
6595	NOTE: This option is set to the Vi default value when 'compatible' is
6596	set and to the Vim default value when 'compatible' is reset.
6597
6598			*'showfulltag'* *'sft'* *'noshowfulltag'* *'nosft'*
6599'showfulltag' 'sft'	boolean (default off)
6600			global
6601			{not in Vi}
6602	When completing a word in insert mode (see |ins-completion|) from the
6603	tags file, show both the tag name and a tidied-up form of the search
6604	pattern (if there is one) as possible matches.  Thus, if you have
6605	matched a C function, you can see a template for what arguments are
6606	required (coding style permitting).
6607	Note that this doesn't work well together with having "longest" in
6608	'completeopt', because the completion from the search pattern may not
6609	match the typed text.
6610
6611				 *'showmatch'* *'sm'* *'noshowmatch'* *'nosm'*
6612'showmatch' 'sm'	boolean	(default off)
6613			global
6614	When a bracket is inserted, briefly jump to the matching one.  The
6615	jump is only done if the match can be seen on the screen.  The time to
6616	show the match can be set with 'matchtime'.
6617	A Beep is given if there is no match (no matter if the match can be
6618	seen or not).
6619	This option is reset when 'paste' is set and restored when 'paste' is
6620	reset.
6621	When the 'm' flag is not included in 'cpoptions', typing a character
6622	will immediately move the cursor back to where it belongs.
6623	See the "sm" field in 'guicursor' for setting the cursor shape and
6624	blinking when showing the match.
6625	The 'matchpairs' option can be used to specify the characters to show
6626	matches for.  'rightleft' and 'revins' are used to look for opposite
6627	matches.
6628	Also see the matchparen plugin for highlighting the match when moving
6629	around |pi_paren.txt|.
6630	Note: Use of the short form is rated PG.
6631
6632				 *'showmode'* *'smd'* *'noshowmode'* *'nosmd'*
6633'showmode' 'smd'	boolean	(Vim default: on, Vi default: off)
6634			global
6635	If in Insert, Replace or Visual mode put a message on the last line.
6636	Use the 'M' flag in 'highlight' to set the type of highlighting for
6637	this message.
6638	When |XIM| may be used the message will include "XIM".  But this
6639	doesn't mean XIM is really active, especially when 'imactivatekey' is
6640	not set.
6641	NOTE: This option is set to the Vi default value when 'compatible' is
6642	set and to the Vim default value when 'compatible' is reset.
6643
6644						*'showtabline'* *'stal'*
6645'showtabline' 'stal'	number	(default 1)
6646			global
6647			{not in Vi}
6648			{not available when compiled without the |+windows|
6649			feature}
6650	The value of this option specifies when the line with tab page labels
6651	will be displayed:
6652		0: never
6653		1: only if there are at least two tab pages
6654		2: always
6655	This is both for the GUI and non-GUI implementation of the tab pages
6656	line.
6657	See |tab-page| for more information about tab pages.
6658
6659						*'sidescroll'* *'ss'*
6660'sidescroll' 'ss'	number	(default 0)
6661			global
6662			{not in Vi}
6663	The minimal number of columns to scroll horizontally.  Used only when
6664	the 'wrap' option is off and the cursor is moved off of the screen.
6665	When it is zero the cursor will be put in the middle of the screen.
6666	When using a slow terminal set it to a large number or 0.  When using
6667	a fast terminal use a small number or 1.  Not used for "zh" and "zl"
6668	commands.
6669
6670						*'sidescrolloff'* *'siso'*
6671'sidescrolloff' 'siso'	number (default 0)
6672			global
6673			{not in Vi}
6674	The minimal number of screen columns to keep to the left and to the
6675	right of the cursor if 'nowrap' is set.  Setting this option to a
6676	value greater than 0 while having |'sidescroll'| also at a non-zero
6677	value makes some context visible in the line you are scrolling in
6678	horizontally (except at beginning of the line).  Setting this option
6679	to a large value (like 999) has the effect of keeping the cursor
6680	horizontally centered in the window, as long as one does not come too
6681	close to the beginning of the line.
6682	NOTE: This option is set to 0 when 'compatible' is set.
6683
6684	Example: Try this together with 'sidescroll' and 'listchars' as
6685		 in the following example to never allow the cursor to move
6686		 onto the "extends" character:
6687
6688		 :set nowrap sidescroll=1 listchars=extends:>,precedes:<
6689		 :set sidescrolloff=1
6690
6691
6692			*'smartcase'* *'scs'* *'nosmartcase'* *'noscs'*
6693'smartcase' 'scs'	boolean	(default off)
6694			global
6695			{not in Vi}
6696	Override the 'ignorecase' option if the search pattern contains upper
6697	case characters.  Only used when the search pattern is typed and
6698	'ignorecase' option is on.  Used for the commands "/", "?", "n", "N",
6699	":g" and ":s".  Not used for "*", "#", "gd", tag search, etc.  After
6700	"*" and "#" you can make 'smartcase' used by doing a "/" command,
6701	recalling the search pattern from history and hitting <Enter>.
6702	NOTE: This option is reset when 'compatible' is set.
6703
6704			     *'smartindent'* *'si'* *'nosmartindent'* *'nosi'*
6705'smartindent' 'si'	boolean	(default off)
6706			local to buffer
6707			{not in Vi}
6708			{not available when compiled without the
6709			|+smartindent| feature}
6710	Do smart autoindenting when starting a new line.  Works for C-like
6711	programs, but can also be used for other languages.  'cindent' does
6712	something like this, works better in most cases, but is more strict,
6713	see |C-indenting|.  When 'cindent' is on or 'indentexpr' is set,
6714	setting 'si' has no effect.  'indentexpr' is a more advanced
6715	alternative.
6716	Normally 'autoindent' should also be on when using 'smartindent'.
6717	An indent is automatically inserted:
6718	- After a line ending in '{'.
6719	- After a line starting with a keyword from 'cinwords'.
6720	- Before a line starting with '}' (only with the "O" command).
6721	When typing '}' as the first character in a new line, that line is
6722	given the same indent as the matching '{'.
6723	When typing '#' as the first character in a new line, the indent for
6724	that line is removed, the '#' is put in the first column.  The indent
6725	is restored for the next line.  If you don't want this, use this
6726	mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H.
6727	When using the ">>" command, lines starting with '#' are not shifted
6728	right.
6729	NOTE: 'smartindent' is reset when 'compatible' is set.
6730	This option is reset when 'paste' is set and restored when 'paste' is
6731	reset.
6732
6733				 *'smarttab'* *'sta'* *'nosmarttab'* *'nosta'*
6734'smarttab' 'sta'	boolean	(default off)
6735			global
6736			{not in Vi}
6737	When on, a <Tab> in front of a line inserts blanks according to
6738	'shiftwidth'.  'tabstop' or 'softtabstop' is used in other places.  A
6739	<BS> will delete a 'shiftwidth' worth of space at the start of the
6740	line.
6741	When off, a <Tab> always inserts blanks according to 'tabstop' or
6742	'softtabstop'.  'shiftwidth' is only used for shifting text left or
6743	right |shift-left-right|.
6744	What gets inserted (a <Tab> or spaces) depends on the 'expandtab'
6745	option.  Also see |ins-expandtab|.  When 'expandtab' is not set, the
6746	number of spaces is minimized by using <Tab>s.
6747	This option is reset when 'paste' is set and restored when 'paste' is
6748	reset.
6749	NOTE: This option is reset when 'compatible' is set.
6750
6751					*'softtabstop'* *'sts'*
6752'softtabstop' 'sts'	number	(default 0)
6753			local to buffer
6754			{not in Vi}
6755	Number of spaces that a <Tab> counts for while performing editing
6756	operations, like inserting a <Tab> or using <BS>.  It "feels" like
6757	<Tab>s are being inserted, while in fact a mix of spaces and <Tab>s is
6758	used.  This is useful to keep the 'ts' setting at its standard value
6759	of 8, while being able to edit like it is set to 'sts'.  However,
6760	commands like "x" still work on the actual characters.
6761	When 'sts' is zero, this feature is off.
6762	When 'sts' is negative, the value of 'shiftwidth' is used.
6763	'softtabstop' is set to 0 when the 'paste' option is set and restored
6764	when 'paste' is reset.
6765	See also |ins-expandtab|.  When 'expandtab' is not set, the number of
6766	spaces is minimized by using <Tab>s.
6767	The 'L' flag in 'cpoptions' changes how tabs are used when 'list' is
6768	set.
6769	NOTE: This option is set to 0 when 'compatible' is set.
6770
6771						*'spell'* *'nospell'*
6772'spell'			boolean	(default off)
6773			local to window
6774			{not in Vi}
6775			{not available when compiled without the |+syntax|
6776			feature}
6777	When on spell checking will be done.  See |spell|.
6778	The languages are specified with 'spelllang'.
6779
6780						*'spellcapcheck'* *'spc'*
6781'spellcapcheck' 'spc'	string	(default "[.?!]\_[\])'" \t]\+")
6782			local to buffer
6783			{not in Vi}
6784			{not available when compiled without the |+syntax|
6785			feature}
6786	Pattern to locate the end of a sentence.  The following word will be
6787	checked to start with a capital letter.  If not then it is highlighted
6788	with SpellCap |hl-SpellCap| (unless the word is also badly spelled).
6789	When this check is not wanted make this option empty.
6790	Only used when 'spell' is set.
6791	Be careful with special characters, see |option-backslash| about
6792	including spaces and backslashes.
6793	To set this option automatically depending on the language, see
6794	|set-spc-auto|.
6795
6796						*'spellfile'* *'spf'*
6797'spellfile' 'spf'	string	(default empty)
6798			local to buffer
6799			{not in Vi}
6800			{not available when compiled without the |+syntax|
6801			feature}
6802	Name of the word list file where words are added for the |zg| and |zw|
6803	commands.  It must end in ".{encoding}.add".  You need to include the
6804	path, otherwise the file is placed in the current directory.
6805								*E765*
6806	It may also be a comma separated list of names.  A count before the
6807	|zg| and |zw| commands can be used to access each.  This allows using
6808	a personal word list file and a project word list file.
6809	When a word is added while this option is empty Vim will set it for
6810	you: Using the first directory in 'runtimepath' that is writable.  If
6811	there is no "spell" directory yet it will be created.  For the file
6812	name the first language name that appears in 'spelllang' is used,
6813	ignoring the region.
6814	The resulting ".spl" file will be used for spell checking, it does not
6815	have to appear in 'spelllang'.
6816	Normally one file is used for all regions, but you can add the region
6817	name if you want to.  However, it will then only be used when
6818	'spellfile' is set to it, for entries in 'spelllang' only files
6819	without region name will be found.
6820	This option cannot be set from a |modeline| or in the |sandbox|, for
6821	security reasons.
6822
6823						*'spelllang'* *'spl'*
6824'spelllang' 'spl'	string	(default "en")
6825			local to buffer
6826			{not in Vi}
6827			{not available when compiled without the |+syntax|
6828			feature}
6829	A comma separated list of word list names.  When the 'spell' option is
6830	on spellchecking will be done for these languages.  Example: >
6831		set spelllang=en_us,nl,medical
6832<	This means US English, Dutch and medical words are recognized.  Words
6833	that are not recognized will be highlighted.
6834	The word list name must not include a comma or dot.  Using a dash is
6835	recommended to separate the two letter language name from a
6836	specification.  Thus "en-rare" is used for rare English words.
6837	A region name must come last and have the form "_xx", where "xx" is
6838	the two-letter, lower case region name.  You can use more than one
6839	region by listing them: "en_us,en_ca" supports both US and Canadian
6840	English, but not words specific for Australia, New Zealand or Great
6841	Britain.
6842	If the name "cjk" is included East Asian characters are excluded from
6843	spell checking.  This is useful when editing text that also has Asian
6844	words.
6845							*E757*
6846	As a special case the name of a .spl file can be given as-is.  The
6847	first "_xx" in the name is removed and used as the region name
6848	(_xx is an underscore, two letters and followed by a non-letter).
6849	This is mainly for testing purposes.  You must make sure the correct
6850	encoding is used, Vim doesn't check it.
6851	When 'encoding' is set the word lists are reloaded.  Thus it's a good
6852	idea to set 'spelllang' after setting 'encoding' to avoid loading the
6853	files twice.
6854	How the related spell files are found is explained here: |spell-load|.
6855
6856	If the |spellfile.vim| plugin is active and you use a language name
6857	for which Vim cannot find the .spl file in 'runtimepath' the plugin
6858	will ask you if you want to download the file.
6859
6860	After this option has been set successfully, Vim will source the files
6861	"spell/LANG.vim" in 'runtimepath'.  "LANG" is the value of 'spelllang'
6862	up to the first comma, dot or underscore.
6863	Also see |set-spc-auto|.
6864
6865
6866						*'spellsuggest'* *'sps'*
6867'spellsuggest' 'sps'	string	(default "best")
6868			global
6869			{not in Vi}
6870			{not available when compiled without the |+syntax|
6871			feature}
6872	Methods used for spelling suggestions.  Both for the |z=| command and
6873	the |spellsuggest()| function.  This is a comma-separated list of
6874	items:
6875
6876	best		Internal method that works best for English.  Finds
6877			changes like "fast" and uses a bit of sound-a-like
6878			scoring to improve the ordering.
6879
6880	double		Internal method that uses two methods and mixes the
6881			results.  The first method is "fast", the other method
6882			computes how much the suggestion sounds like the bad
6883			word.  That only works when the language specifies
6884			sound folding.  Can be slow and doesn't always give
6885			better results.
6886
6887	fast		Internal method that only checks for simple changes:
6888			character inserts/deletes/swaps.  Works well for
6889			simple typing mistakes.
6890
6891	{number}	The maximum number of suggestions listed for |z=|.
6892			Not used for |spellsuggest()|.  The number of
6893			suggestions is never more than the value of 'lines'
6894			minus two.
6895
6896	file:{filename} Read file {filename}, which must have two columns,
6897			separated by a slash.  The first column contains the
6898			bad word, the second column the suggested good word.
6899			Example:
6900				theribal/terrible ~
6901			Use this for common mistakes that do not appear at the
6902			top of the suggestion list with the internal methods.
6903			Lines without a slash are ignored, use this for
6904			comments.
6905			The word in the second column must be correct,
6906			otherwise it will not be used.  Add the word to an
6907			".add" file if it is currently flagged as a spelling
6908			mistake.
6909			The file is used for all languages.
6910
6911	expr:{expr}	Evaluate expression {expr}.  Use a function to avoid
6912			trouble with spaces.  |v:val| holds the badly spelled
6913			word.  The expression must evaluate to a List of
6914			Lists, each with a suggestion and a score.
6915			Example:
6916				[['the', 33], ['that', 44]]
6917			Set 'verbose' and use |z=| to see the scores that the
6918			internal methods use.  A lower score is better.
6919			This may invoke |spellsuggest()| if you temporarily
6920			set 'spellsuggest' to exclude the "expr:" part.
6921			Errors are silently ignored, unless you set the
6922			'verbose' option to a non-zero value.
6923
6924	Only one of "best", "double" or "fast" may be used.  The others may
6925	appear several times in any order.  Example: >
6926		:set sps=file:~/.vim/sugg,best,expr:MySuggest()
6927<
6928	This option cannot be set from a |modeline| or in the |sandbox|, for
6929	security reasons.
6930
6931
6932			*'splitbelow'* *'sb'* *'nosplitbelow'* *'nosb'*
6933'splitbelow' 'sb'	boolean	(default off)
6934			global
6935			{not in Vi}
6936			{not available when compiled without the |+windows|
6937			feature}
6938	When on, splitting a window will put the new window below the current
6939	one. |:split|
6940
6941			*'splitright'* *'spr'* *'nosplitright'* *'nospr'*
6942'splitright' 'spr'	boolean	(default off)
6943			global
6944			{not in Vi}
6945			{not available when compiled without the |+vertsplit|
6946			feature}
6947	When on, splitting a window will put the new window right of the
6948	current one. |:vsplit|
6949
6950			   *'startofline'* *'sol'* *'nostartofline'* *'nosol'*
6951'startofline' 'sol'	boolean	(default on)
6952			global
6953			{not in Vi}
6954	When "on" the commands listed below move the cursor to the first
6955	non-blank of the line.  When off the cursor is kept in the same column
6956	(if possible).  This applies to the commands: CTRL-D, CTRL-U, CTRL-B,
6957	CTRL-F, "G", "H", "M", "L", gg, and to the commands "d", "<<" and ">>"
6958	with a linewise operator, with "%" with a count and to buffer changing
6959	commands (CTRL-^, :bnext, :bNext, etc.).  Also for an Ex command that
6960	only has a line number, e.g., ":25" or ":+".
6961	In case of buffer changing commands the cursor is placed at the column
6962	where it was the last time the buffer was edited.
6963	NOTE: This option is set when 'compatible' is set.
6964
6965			   *'statusline'* *'stl'* *E540* *E542*
6966'statusline' 'stl'	string	(default empty)
6967			global or local to window |global-local|
6968			{not in Vi}
6969			{not available when compiled without the |+statusline|
6970			feature}
6971	When nonempty, this option determines the content of the status line.
6972	Also see |status-line|.
6973
6974	The option consists of printf style '%' items interspersed with
6975	normal text.  Each status line item is of the form:
6976	  %-0{minwid}.{maxwid}{item}
6977	All fields except the {item} is optional.  A single percent sign can
6978	be given as "%%".  Up to 80 items can be specified.  *E541*
6979
6980	When the option starts with "%!" then it is used as an expression,
6981	evaluated and the result is used as the option value.  Example: >
6982		:set statusline=%!MyStatusLine()
6983<	The result can contain %{} items that will be evaluated too.
6984	Note that the "%!" expression is evaluated in the context of the
6985	current window and buffer, while %{} items are evaluated in the
6986	context of the window that the statusline belongs to.
6987
6988	When there is error while evaluating the option then it will be made
6989	empty to avoid further errors.  Otherwise screen updating would loop.
6990
6991	Note that the only effect of 'ruler' when this option is set (and
6992	'laststatus' is 2) is controlling the output of |CTRL-G|.
6993
6994	field	    meaning ~
6995	-	    Left justify the item.  The default is right justified
6996		    when minwid is larger than the length of the item.
6997	0	    Leading zeroes in numeric items.  Overridden by '-'.
6998	minwid	    Minimum width of the item, padding as set by '-' & '0'.
6999		    Value must be 50 or less.
7000	maxwid	    Maximum width of the item.  Truncation occurs with a '<'
7001		    on the left for text items.  Numeric items will be
7002		    shifted down to maxwid-2 digits followed by '>'number
7003		    where number is the amount of missing digits, much like
7004		    an exponential notation.
7005	item	    A one letter code as described below.
7006
7007	Following is a description of the possible statusline items.  The
7008	second character in "item" is the type:
7009		N for number
7010		S for string
7011		F for flags as described below
7012		- not applicable
7013
7014	item  meaning ~
7015	f S   Path to the file in the buffer, as typed or relative to current
7016	      directory.
7017	F S   Full path to the file in the buffer.
7018	t S   File name (tail) of file in the buffer.
7019	m F   Modified flag, text is "[+]"; "[-]" if 'modifiable' is off.
7020	M F   Modified flag, text is ",+" or ",-".
7021	r F   Readonly flag, text is "[RO]".
7022	R F   Readonly flag, text is ",RO".
7023	h F   Help buffer flag, text is "[help]".
7024	H F   Help buffer flag, text is ",HLP".
7025	w F   Preview window flag, text is "[Preview]".
7026	W F   Preview window flag, text is ",PRV".
7027	y F   Type of file in the buffer, e.g., "[vim]".  See 'filetype'.
7028	Y F   Type of file in the buffer, e.g., ",VIM".  See 'filetype'.
7029	      {not available when compiled without |+autocmd| feature}
7030	q S   "[Quickfix List]", "[Location List]" or empty.
7031	k S   Value of "b:keymap_name" or 'keymap' when |:lmap| mappings are
7032	      being used: "<keymap>"
7033	n N   Buffer number.
7034	b N   Value of character under cursor.
7035	B N   As above, in hexadecimal.
7036	o N   Byte number in file of byte under cursor, first byte is 1.
7037	      Mnemonic: Offset from start of file (with one added)
7038	      {not available when compiled without |+byte_offset| feature}
7039	O N   As above, in hexadecimal.
7040	N N   Printer page number.  (Only works in the 'printheader' option.)
7041	l N   Line number.
7042	L N   Number of lines in buffer.
7043	c N   Column number.
7044	v N   Virtual column number.
7045	V N   Virtual column number as -{num}.  Not displayed if equal to 'c'.
7046	p N   Percentage through file in lines as in |CTRL-G|.
7047	P S   Percentage through file of displayed window.  This is like the
7048	      percentage described for 'ruler'.  Always 3 in length, unless
7049	      translated.
7050	a S   Argument list status as in default title.  ({current} of {max})
7051	      Empty if the argument file count is zero or one.
7052	{ NF  Evaluate expression between '%{' and '}' and substitute result.
7053	      Note that there is no '%' before the closing '}'.
7054	( -   Start of item group.  Can be used for setting the width and
7055	      alignment of a section.  Must be followed by %) somewhere.
7056	) -   End of item group.  No width fields allowed.
7057	T N   For 'tabline': start of tab page N label.  Use %T after the last
7058	      label.  This information is used for mouse clicks.
7059	X N   For 'tabline': start of close tab N label.  Use %X after the
7060	      label, e.g.: %3Xclose%X.  Use %999X for a "close current tab"
7061	      mark.  This information is used for mouse clicks.
7062	< -   Where to truncate line if too long.  Default is at the start.
7063	      No width fields allowed.
7064	= -   Separation point between left and right aligned items.
7065	      No width fields allowed.
7066	# -   Set highlight group.  The name must follow and then a # again.
7067	      Thus use %#HLname# for highlight group HLname.  The same
7068	      highlighting is used, also for the statusline of non-current
7069	      windows.
7070	* -   Set highlight group to User{N}, where {N} is taken from the
7071	      minwid field, e.g. %1*.  Restore normal highlight with %* or %0*.
7072	      The difference between User{N} and StatusLine  will be applied
7073	      to StatusLineNC for the statusline of non-current windows.
7074	      The number N must be between 1 and 9.  See |hl-User1..9|
7075
7076	When displaying a flag, Vim removes the leading comma, if any, when
7077	that flag comes right after plaintext.  This will make a nice display
7078	when flags are used like in the examples below.
7079
7080	When all items in a group becomes an empty string (i.e. flags that are
7081	not set) and a minwid is not set for the group, the whole group will
7082	become empty.  This will make a group like the following disappear
7083	completely from the statusline when none of the flags are set. >
7084		:set statusline=...%(\ [%M%R%H]%)...
7085<							*g:actual_curbuf*
7086	Beware that an expression is evaluated each and every time the status
7087	line is displayed.  The current buffer and current window will be set
7088	temporarily to that of the window (and buffer) whose statusline is
7089	currently being drawn.  The expression will evaluate in this context.
7090	The variable "actual_curbuf" is set to the 'bufnr()' number of the
7091	real current buffer.
7092
7093	The 'statusline' option will be evaluated in the |sandbox| if set from
7094	a modeline, see |sandbox-option|.
7095
7096	It is not allowed to change text or jump to another window while
7097	evaluating 'statusline' |textlock|.
7098
7099	If the statusline is not updated when you want it (e.g., after setting
7100	a variable that's used in an expression), you can force an update by
7101	setting an option without changing its value.  Example: >
7102		:let &ro = &ro
7103
7104<	A result of all digits is regarded a number for display purposes.
7105	Otherwise the result is taken as flag text and applied to the rules
7106	described above.
7107
7108	Watch out for errors in expressions.  They may render Vim unusable!
7109	If you are stuck, hold down ':' or 'Q' to get a prompt, then quit and
7110	edit your .vimrc or whatever with "vim -u NONE" to get it right.
7111
7112	Examples:
7113	Emulate standard status line with 'ruler' set >
7114	  :set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P
7115<	Similar, but add ASCII value of char under the cursor (like "ga") >
7116	  :set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P
7117<	Display byte count and byte value, modified flag in red. >
7118	  :set statusline=%<%f%=\ [%1*%M%*%n%R%H]\ %-19(%3l,%02c%03V%)%O'%02b'
7119	  :hi User1 term=inverse,bold cterm=inverse,bold ctermfg=red
7120<	Display a ,GZ flag if a compressed file is loaded >
7121	  :set statusline=...%r%{VarExists('b:gzflag','\ [GZ]')}%h...
7122<	In the |:autocmd|'s: >
7123	  :let b:gzflag = 1
7124<	And: >
7125	  :unlet b:gzflag
7126<	And define this function: >
7127	  :function VarExists(var, val)
7128	  :    if exists(a:var) | return a:val | else | return '' | endif
7129	  :endfunction
7130<
7131						*'suffixes'* *'su'*
7132'suffixes' 'su'		string	(default ".bak,~,.o,.h,.info,.swp,.obj")
7133			global
7134			{not in Vi}
7135	Files with these suffixes get a lower priority when multiple files
7136	match a wildcard.  See |suffixes|.  Commas can be used to separate the
7137	suffixes.  Spaces after the comma are ignored.  A dot is also seen as
7138	the start of a suffix.  To avoid a dot or comma being recognized as a
7139	separator, precede it with a backslash (see |option-backslash| about
7140	including spaces and backslashes).
7141	See 'wildignore' for completely ignoring files.
7142	The use of |:set+=| and |:set-=| is preferred when adding or removing
7143	suffixes from the list.  This avoids problems when a future version
7144	uses another default.
7145
7146						*'suffixesadd'* *'sua'*
7147'suffixesadd' 'sua'	string	(default "")
7148			local to buffer
7149			{not in Vi}
7150			{not available when compiled without the
7151			|+file_in_path| feature}
7152	Comma separated list of suffixes, which are used when searching for a
7153	file for the "gf", "[I", etc. commands.  Example: >
7154		:set suffixesadd=.java
7155<
7156				*'swapfile'* *'swf'* *'noswapfile'* *'noswf'*
7157'swapfile' 'swf'	boolean (default on)
7158			local to buffer
7159			{not in Vi}
7160	Use a swapfile for the buffer.  This option can be reset when a
7161	swapfile is not wanted for a specific buffer.  For example, with
7162	confidential information that even root must not be able to access.
7163	Careful: All text will be in memory:
7164		- Don't use this for big files.
7165		- Recovery will be impossible!
7166	A swapfile will only be present when |'updatecount'| is non-zero and
7167	'swapfile' is set.
7168	When 'swapfile' is reset, the swap file for the current buffer is
7169	immediately deleted.  When 'swapfile' is set, and 'updatecount' is
7170	non-zero, a swap file is immediately created.
7171	Also see |swap-file| and |'swapsync'|.
7172	If you want to open a new buffer without creating a swap file for it,
7173	use the |:noswapfile| modifier.
7174
7175	This option is used together with 'bufhidden' and 'buftype' to
7176	specify special kinds of buffers.   See |special-buffers|.
7177
7178						*'swapsync'* *'sws'*
7179'swapsync' 'sws'	string	(default "fsync")
7180			global
7181			{not in Vi}
7182	When this option is not empty a swap file is synced to disk after
7183	writing to it.  This takes some time, especially on busy unix systems.
7184	When this option is empty parts of the swap file may be in memory and
7185	not written to disk.  When the system crashes you may lose more work.
7186	On Unix the system does a sync now and then without Vim asking for it,
7187	so the disadvantage of setting this option off is small.  On some
7188	systems the swap file will not be written at all.  For a unix system
7189	setting it to "sync" will use the sync() call instead of the default
7190	fsync(), which may work better on some systems.
7191	The 'fsync' option is used for the actual file.
7192
7193						*'switchbuf'* *'swb'*
7194'switchbuf' 'swb'	string	(default "")
7195			global
7196			{not in Vi}
7197	This option controls the behavior when switching between buffers.
7198	Possible values (comma separated list):
7199	   useopen	If included, jump to the first open window that
7200			contains the specified buffer (if there is one).
7201			Otherwise: Do not examine other windows.
7202			This setting is checked with |quickfix| commands, when
7203			jumping to errors (":cc", ":cn", "cp", etc.).  It is
7204			also used in all buffer related split commands, for
7205			example ":sbuffer", ":sbnext", or ":sbrewind".
7206	   usetab	Like "useopen", but also consider windows in other tab
7207			pages.
7208	   split	If included, split the current window before loading
7209			a buffer for a |quickfix| command that display errors.
7210			Otherwise: do not split, use current window.
7211	   vsplit	Just like "split" but split vertically.
7212	   newtab	Like "split", but open a new tab page.  Overrules
7213			"split" when both are present.
7214
7215						*'synmaxcol'* *'smc'*
7216'synmaxcol' 'smc'	number	(default 3000)
7217			local to buffer
7218			{not in Vi}
7219			{not available when compiled without the |+syntax|
7220			feature}
7221	Maximum column in which to search for syntax items.  In long lines the
7222	text after this column is not highlighted and following lines may not
7223	be highlighted correctly, because the syntax state is cleared.
7224	This helps to avoid very slow redrawing for an XML file that is one
7225	long line.
7226	Set to zero to remove the limit.
7227
7228						*'syntax'* *'syn'*
7229'syntax' 'syn'		string	(default empty)
7230			local to buffer
7231			{not in Vi}
7232			{not available when compiled without the |+syntax|
7233			feature}
7234	When this option is set, the syntax with this name is loaded, unless
7235	syntax highlighting has been switched off with ":syntax off".
7236	Otherwise this option does not always reflect the current syntax (the
7237	b:current_syntax variable does).
7238	This option is most useful in a modeline, for a file which syntax is
7239	not automatically recognized.  Example, in an IDL file:
7240		/* vim: set syntax=idl : */ ~
7241	When a dot appears in the value then this separates two filetype
7242	names.  Example:
7243		/* vim: set syntax=c.doxygen : */ ~
7244	This will use the "c" syntax first, then the "doxygen" syntax.
7245	Note that the second one must be prepared to be loaded as an addition,
7246	otherwise it will be skipped.  More than one dot may appear.
7247	To switch off syntax highlighting for the current file, use: >
7248		:set syntax=OFF
7249<	To switch syntax highlighting on according to the current value of the
7250	'filetype' option: >
7251		:set syntax=ON
7252<	What actually happens when setting the 'syntax' option is that the
7253	Syntax autocommand event is triggered with the value as argument.
7254	This option is not copied to another buffer, independent of the 's' or
7255	'S' flag in 'cpoptions'.
7256	Only normal file name characters can be used, "/\*?[|<>" are illegal.
7257
7258						*'tabline'* *'tal'*
7259'tabline' 'tal'		string	(default empty)
7260			global
7261			{not in Vi}
7262			{not available when compiled without the |+windows|
7263			feature}
7264	When nonempty, this option determines the content of the tab pages
7265	line at the top of the Vim window.  When empty Vim will use a default
7266	tab pages line.  See |setting-tabline| for more info.
7267
7268	The tab pages line only appears as specified with the 'showtabline'
7269	option and only when there is no GUI tab line.  When 'e' is in
7270	'guioptions' and the GUI supports a tab line 'guitablabel' is used
7271	instead.  Note that the two tab pages lines are very different.
7272
7273	The value is evaluated like with 'statusline'.  You can use
7274	|tabpagenr()|, |tabpagewinnr()| and |tabpagebuflist()| to figure out
7275	the text to be displayed.  Use "%1T" for the first label, "%2T" for
7276	the second one, etc.  Use "%X" items for closing labels.
7277
7278	Keep in mind that only one of the tab pages is the current one, others
7279	are invisible and you can't jump to their windows.
7280
7281
7282						*'tabpagemax'* *'tpm'*
7283'tabpagemax' 'tpm'	number	(default 10)
7284			global
7285			{not in Vi}
7286			{not available when compiled without the |+windows|
7287			feature}
7288	Maximum number of tab pages to be opened by the |-p| command line
7289	argument or the ":tab all" command. |tabpage|
7290
7291
7292						*'tabstop'* *'ts'*
7293'tabstop' 'ts'		number	(default 8)
7294			local to buffer
7295	Number of spaces that a <Tab> in the file counts for.  Also see
7296	|:retab| command, and 'softtabstop' option.
7297
7298	Note: Setting 'tabstop' to any other value than 8 can make your file
7299	appear wrong in many places (e.g., when printing it).
7300
7301	There are four main ways to use tabs in Vim:
7302	1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4
7303	   (or 3 or whatever you prefer) and use 'noexpandtab'.  Then Vim
7304	   will use a mix of tabs and spaces, but typing <Tab> and <BS> will
7305	   behave like a tab appears every 4 (or 3) characters.
7306	2. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use
7307	   'expandtab'.  This way you will always insert spaces.  The
7308	   formatting will never be messed up when 'tabstop' is changed.
7309	3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a
7310	   |modeline| to set these values when editing the file again.  Only
7311	   works when using Vim to edit the file.
7312	4. Always set 'tabstop' and 'shiftwidth' to the same value, and
7313	   'noexpandtab'.  This should then work (for initial indents only)
7314	   for any tabstop setting that people use.  It might be nice to have
7315	   tabs after the first non-blank inserted as spaces if you do this
7316	   though.  Otherwise aligned comments will be wrong when 'tabstop' is
7317	   changed.
7318
7319			*'tagbsearch'* *'tbs'* *'notagbsearch'* *'notbs'*
7320'tagbsearch' 'tbs'	boolean	(default on)
7321			global
7322			{not in Vi}
7323	When searching for a tag (e.g., for the |:ta| command), Vim can either
7324	use a binary search or a linear search in a tags file.  Binary
7325	searching makes searching for a tag a LOT faster, but a linear search
7326	will find more tags if the tags file wasn't properly sorted.
7327	Vim normally assumes that your tags files are sorted, or indicate that
7328	they are not sorted.  Only when this is not the case does the
7329	'tagbsearch' option need to be switched off.
7330
7331	When 'tagbsearch' is on, binary searching is first used in the tags
7332	files.  In certain situations, Vim will do a linear search instead for
7333	certain files, or retry all files with a linear search.  When
7334	'tagbsearch' is off, only a linear search is done.
7335
7336	Linear searching is done anyway, for one file, when Vim finds a line
7337	at the start of the file indicating that it's not sorted: >
7338   !_TAG_FILE_SORTED	0	/some comment/
7339<	[The whitespace before and after the '0' must be a single <Tab>]
7340
7341	When a binary search was done and no match was found in any of the
7342	files listed in 'tags', and case is ignored or a pattern is used
7343	instead of a normal tag name, a retry is done with a linear search.
7344	Tags in unsorted tags files, and matches with different case will only
7345	be found in the retry.
7346
7347	If a tag file indicates that it is case-fold sorted, the second,
7348	linear search can be avoided when case is ignored.  Use a value of '2'
7349	in the "!_TAG_FILE_SORTED" line for this.  A tag file can be case-fold
7350	sorted with the -f switch to "sort" in most unices, as in the command:
7351	"sort -f -o tags tags".  For "Exuberant ctags" version 5.x or higher
7352	(at least 5.5) the --sort=foldcase switch can be used for this as
7353	well.  Note that case must be folded to uppercase for this to work.
7354
7355	By default, tag searches are case-sensitive.  Case is ignored when
7356	'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
7357	"ignore".
7358
7359	When 'tagbsearch' is off, tags searching is slower when a full match
7360	exists, but faster when no full match exists.  Tags in unsorted tags
7361	files may only be found with 'tagbsearch' off.
7362	When the tags file is not sorted, or sorted in a wrong way (not on
7363	ASCII byte value), 'tagbsearch' should be off, or the line given above
7364	must be included in the tags file.
7365	This option doesn't affect commands that find all matching tags (e.g.,
7366	command-line completion and ":help").
7367	{Vi: always uses binary search in some versions}
7368
7369							*'tagcase'* *'tc'*
7370'tagcase' 'tc'		string	(default "followic")
7371			global or local to buffer |global-local|
7372			{not in Vi}
7373	This option specifies how case is handled when searching the tags
7374	file:
7375	   followic	Follow the 'ignorecase' option
7376	   ignore	Ignore case
7377	   match	Match case
7378
7379						*'taglength'* *'tl'*
7380'taglength' 'tl'	number	(default 0)
7381			global
7382	If non-zero, tags are significant up to this number of characters.
7383
7384			*'tagrelative'* *'tr'* *'notagrelative'* *'notr'*
7385'tagrelative' 'tr'	boolean	(Vim default: on, Vi default: off)
7386			global
7387			{not in Vi}
7388	If on and using a tags file in another directory, file names in that
7389	tags file are relative to the directory where the tags file is.
7390	NOTE: This option is set to the Vi default value when 'compatible' is
7391	set and to the Vim default value when 'compatible' is reset.
7392
7393						*'tags'* *'tag'* *E433*
7394'tags' 'tag'		string	(default "./tags,tags", when compiled with
7395				|+emacs_tags|: "./tags,./TAGS,tags,TAGS")
7396			global or local to buffer |global-local|
7397	Filenames for the tag command, separated by spaces or commas.  To
7398	include a space or comma in a file name, precede it with a backslash
7399	(see |option-backslash| about including spaces and backslashes).
7400	When a file name starts with "./", the '.' is replaced with the path
7401	of the current file.  But only when the 'd' flag is not included in
7402	'cpoptions'.  Environment variables are expanded |:set_env|.  Also see
7403	|tags-option|.
7404	"*", "**" and other wildcards can be used to search for tags files in
7405	a directory tree.  See |file-searching|.  E.g., "/lib/**/tags" will
7406	find all files named "tags" below "/lib".  The filename itself cannot
7407	contain wildcards, it is used as-is.  E.g., "/lib/**/tags?" will find
7408	files called "tags?".  {not available when compiled without the
7409	|+path_extra| feature}
7410	The |tagfiles()| function can be used to get a list of the file names
7411	actually used.
7412	If Vim was compiled with the |+emacs_tags| feature, Emacs-style tag
7413	files are also supported.  They are automatically recognized.  The
7414	default value becomes "./tags,./TAGS,tags,TAGS", unless case
7415	differences are ignored (MS-Windows).  |emacs-tags|
7416	The use of |:set+=| and |:set-=| is preferred when adding or removing
7417	file names from the list.  This avoids problems when a future version
7418	uses another default.
7419	{Vi: default is "tags /usr/lib/tags"}
7420
7421				*'tagstack'* *'tgst'* *'notagstack'* *'notgst'*
7422'tagstack' 'tgst'	boolean	(default on)
7423			global
7424			{not in all versions of Vi}
7425	When on, the |tagstack| is used normally.  When off, a ":tag" or
7426	":tselect" command with an argument will not push the tag onto the
7427	tagstack.  A following ":tag" without an argument, a ":pop" command or
7428	any other command that uses the tagstack will use the unmodified
7429	tagstack, but does change the pointer to the active entry.
7430	Resetting this option is useful when using a ":tag" command in a
7431	mapping which should not change the tagstack.
7432
7433						*'term'* *E529* *E530* *E531*
7434'term'			string	(default is $TERM, if that fails:
7435				      in the GUI: "builtin_gui"
7436					on Amiga: "amiga"
7437					 on BeOS: "beos-ansi"
7438					  on Mac: "mac-ansi"
7439					 on MiNT: "vt52"
7440				       on MS-DOS: "pcterm"
7441					 on OS/2: "os2ansi"
7442					 on Unix: "ansi"
7443					  on VMS: "ansi"
7444				       on Win 32: "win32")
7445			global
7446	Name of the terminal.  Used for choosing the terminal control
7447	characters.  Environment variables are expanded |:set_env|.
7448	For example: >
7449		:set term=$TERM
7450<	See |termcap|.
7451
7452						*'termbidi'* *'tbidi'*
7453						*'notermbidi'* *'notbidi'*
7454'termbidi' 'tbidi'	boolean (default off, on for "mlterm")
7455			global
7456			{not in Vi}
7457			{only available when compiled with the |+arabic|
7458			feature}
7459	The terminal is in charge of Bi-directionality of text (as specified
7460	by Unicode).  The terminal is also expected to do the required shaping
7461	that some languages (such as Arabic) require.
7462	Setting this option implies that 'rightleft' will not be set when
7463	'arabic' is set and the value of 'arabicshape' will be ignored.
7464	Note that setting 'termbidi' has the immediate effect that
7465	'arabicshape' is ignored, but 'rightleft' isn't changed automatically.
7466	This option is reset when the GUI is started.
7467	For further details see |arabic.txt|.
7468
7469					*'termencoding'* *'tenc'*
7470'termencoding' 'tenc'	string	(default ""; with GTK+ 2 GUI: "utf-8"; with
7471						    Macintosh GUI: "macroman")
7472			global
7473			{only available when compiled with the |+multi_byte|
7474			feature}
7475			{not in Vi}
7476	Encoding used for the terminal.  This specifies what character
7477	encoding the keyboard produces and the display will understand.  For
7478	the GUI it only applies to the keyboard ( 'encoding' is used for the
7479	display).  Except for the Mac when 'macatsui' is off, then
7480	'termencoding' should be "macroman".
7481								*E617*
7482	Note: This does not apply to the GTK+ 2 GUI.  After the GUI has been
7483	successfully initialized, 'termencoding' is forcibly set to "utf-8".
7484	Any attempts to set a different value will be rejected, and an error
7485	message is shown.
7486	For the Win32 GUI and console versions 'termencoding' is not used,
7487	because the Win32 system always passes Unicode characters.
7488	When empty, the same encoding is used as for the 'encoding' option.
7489	This is the normal value.
7490	Not all combinations for 'termencoding' and 'encoding' are valid.  See
7491	|encoding-table|.
7492	The value for this option must be supported by internal conversions or
7493	iconv().  When this is not possible no conversion will be done and you
7494	will probably experience problems with non-ASCII characters.
7495	Example: You are working with the locale set to euc-jp (Japanese) and
7496	want to edit a UTF-8 file: >
7497		:let &termencoding = &encoding
7498		:set encoding=utf-8
7499<	You need to do this when your system has no locale support for UTF-8.
7500
7501						*'terse'* *'noterse'*
7502'terse'			boolean	(default off)
7503			global
7504	When set: Add 's' flag to 'shortmess' option (this makes the message
7505	for a search that hits the start or end of the file not being
7506	displayed).  When reset: Remove 's' flag from 'shortmess' option.  {Vi
7507	shortens a lot of messages}
7508
7509				   *'textauto'* *'ta'* *'notextauto'* *'nota'*
7510'textauto' 'ta'		boolean	(Vim default: on, Vi default: off)
7511			global
7512			{not in Vi}
7513	This option is obsolete.  Use 'fileformats'.
7514	For backwards compatibility, when 'textauto' is set, 'fileformats' is
7515	set to the default value for the current system.  When 'textauto' is
7516	reset, 'fileformats' is made empty.
7517	NOTE: This option is set to the Vi default value when 'compatible' is
7518	set and to the Vim default value when 'compatible' is reset.
7519
7520				   *'textmode'* *'tx'* *'notextmode'* *'notx'*
7521'textmode' 'tx'		boolean	(MS-DOS, Win32 and OS/2: default on,
7522				 others: default off)
7523			local to buffer
7524			{not in Vi}
7525	This option is obsolete.  Use 'fileformat'.
7526	For backwards compatibility, when 'textmode' is set, 'fileformat' is
7527	set to "dos".  When 'textmode' is reset, 'fileformat' is set to
7528	"unix".
7529
7530						*'textwidth'* *'tw'*
7531'textwidth' 'tw'	number	(default 0)
7532			local to buffer
7533			{not in Vi}
7534	Maximum width of text that is being inserted.  A longer line will be
7535	broken after white space to get this width.  A zero value disables
7536	this.
7537	'textwidth' is set to 0 when the 'paste' option is set and restored
7538	when 'paste' is reset.
7539	When 'textwidth' is zero, 'wrapmargin' may be used.  See also
7540	'formatoptions' and |ins-textwidth|.
7541	When 'formatexpr' is set it will be used to break the line.
7542	NOTE: This option is set to 0 when 'compatible' is set.
7543
7544						*'thesaurus'* *'tsr'*
7545'thesaurus' 'tsr'	string	(default "")
7546			global or local to buffer |global-local|
7547			{not in Vi}
7548	List of file names, separated by commas, that are used to lookup words
7549	for thesaurus completion commands |i_CTRL-X_CTRL-T|.  Each line in
7550	the file should contain words with similar meaning, separated by
7551	non-keyword characters (white space is preferred).  Maximum line
7552	length is 510 bytes.
7553	To obtain a file to be used here, check out this ftp site:
7554	ftp://ftp.ox.ac.uk/pub/wordlists/  First get the README file.
7555	To include a comma in a file name precede it with a backslash.  Spaces
7556	after a comma are ignored, otherwise spaces are included in the file
7557	name.  See |option-backslash| about using backslashes.
7558	The use of |:set+=| and |:set-=| is preferred when adding or removing
7559	directories from the list.  This avoids problems when a future version
7560	uses another default.
7561	Backticks cannot be used in this option for security reasons.
7562
7563			     *'tildeop'* *'top'* *'notildeop'* *'notop'*
7564'tildeop' 'top'		boolean	(default off)
7565			global
7566			{not in Vi}
7567	When on: The tilde command "~" behaves like an operator.
7568	NOTE: This option is reset when 'compatible' is set.
7569
7570				*'timeout'* *'to'* *'notimeout'* *'noto'*
7571'timeout' 'to'		boolean (default on)
7572			global
7573						*'ttimeout'* *'nottimeout'*
7574'ttimeout'		boolean (default off)
7575			global
7576			{not in Vi}
7577	These two options together determine the behavior when part of a
7578	mapped key sequence or keyboard code has been received:
7579
7580	'timeout'    'ttimeout'		action	~
7581	   off		off		do not time out
7582	   on		on or off	time out on :mappings and key codes
7583	   off		on		time out on key codes
7584
7585	If both options are off, Vim will wait until either the complete
7586	mapping or key sequence has been received, or it is clear that there
7587	is no mapping or key sequence for the received characters.  For
7588	example: if you have mapped "vl" and Vim has received 'v', the next
7589	character is needed to see if the 'v' is followed by an 'l'.
7590	When one of the options is on, Vim will wait for about 1 second for
7591	the next character to arrive.  After that the already received
7592	characters are interpreted as single characters.  The waiting time can
7593	be changed with the 'timeoutlen' option.
7594	On slow terminals or very busy systems timing out may cause
7595	malfunctioning cursor keys.  If both options are off, Vim waits
7596	forever after an entered <Esc> if there are key codes that start
7597	with <Esc>.  You will have to type <Esc> twice.  If you do not have
7598	problems with key codes, but would like to have :mapped key
7599	sequences not timing out in 1 second, set the 'ttimeout' option and
7600	reset the 'timeout' option.
7601
7602	NOTE: 'ttimeout' is reset when 'compatible' is set.
7603
7604						*'timeoutlen'* *'tm'*
7605'timeoutlen' 'tm'	number	(default 1000)
7606			global
7607			{not in all versions of Vi}
7608						*'ttimeoutlen'* *'ttm'*
7609'ttimeoutlen' 'ttm'	number	(default -1)
7610			global
7611			{not in Vi}
7612	The time in milliseconds that is waited for a key code or mapped key
7613	sequence to complete.  Also used for CTRL-\ CTRL-N and CTRL-\ CTRL-G
7614	when part of a command has been typed.
7615	Normally only 'timeoutlen' is used and 'ttimeoutlen' is -1.  When a
7616	different timeout value for key codes is desired set 'ttimeoutlen' to
7617	a non-negative number.
7618
7619		ttimeoutlen	mapping delay	   key code delay	~
7620		   < 0		'timeoutlen'	   'timeoutlen'
7621		  >= 0		'timeoutlen'	   'ttimeoutlen'
7622
7623	The timeout only happens when the 'timeout' and 'ttimeout' options
7624	tell so.  A useful setting would be >
7625		:set timeout timeoutlen=3000 ttimeoutlen=100
7626<	(time out on mapping after three seconds, time out on key codes after
7627	a tenth of a second).
7628
7629						*'title'* *'notitle'*
7630'title'			boolean	(default off, on when title can be restored)
7631			global
7632			{not in Vi}
7633			{not available when compiled without the |+title|
7634			feature}
7635	When on, the title of the window will be set to the value of
7636	'titlestring' (if it is not empty), or to:
7637		filename [+=-] (path) - VIM
7638	Where:
7639		filename	the name of the file being edited
7640		-		indicates the file cannot be modified, 'ma' off
7641		+		indicates the file was modified
7642		=		indicates the file is read-only
7643		=+		indicates the file is read-only and modified
7644		(path)		is the path of the file being edited
7645		- VIM		the server name |v:servername| or "VIM"
7646	Only works if the terminal supports setting window titles
7647	(currently Amiga console, Win32 console, all GUI versions and
7648	terminals with a non- empty 't_ts' option - these are Unix xterm and
7649	iris-ansi by default, where 't_ts' is taken from the builtin termcap).
7650								*X11*
7651	When Vim was compiled with HAVE_X11 defined, the original title will
7652	be restored if possible.  The output of ":version" will include "+X11"
7653	when HAVE_X11 was defined, otherwise it will be "-X11".  This also
7654	works for the icon name |'icon'|.
7655	But: When Vim was started with the |-X| argument, restoring the title
7656	will not work (except in the GUI).
7657	If the title cannot be restored, it is set to the value of 'titleold'.
7658	You might want to restore the title outside of Vim then.
7659	When using an xterm from a remote machine you can use this command:
7660	    rsh machine_name xterm -display $DISPLAY &
7661	then the WINDOWID environment variable should be inherited and the
7662	title of the window should change back to what it should be after
7663	exiting Vim.
7664
7665								*'titlelen'*
7666'titlelen'		number	(default 85)
7667			global
7668			{not in Vi}
7669			{not available when compiled without the |+title|
7670			feature}
7671	Gives the percentage of 'columns' to use for the length of the window
7672	title.  When the title is longer, only the end of the path name is
7673	shown.  A '<' character before the path name is used to indicate this.
7674	Using a percentage makes this adapt to the width of the window.  But
7675	it won't work perfectly, because the actual number of characters
7676	available also depends on the font used and other things in the title
7677	bar.  When 'titlelen' is zero the full path is used.  Otherwise,
7678	values from 1 to 30000 percent can be used.
7679	'titlelen' is also used for the 'titlestring' option.
7680
7681						*'titleold'*
7682'titleold'		string	(default "Thanks for flying Vim")
7683			global
7684			{not in Vi}
7685			{only available when compiled with the |+title|
7686			feature}
7687	This option will be used for the window title when exiting Vim if the
7688	original title cannot be restored.  Only happens if 'title' is on or
7689	'titlestring' is not empty.
7690	This option cannot be set from a |modeline| or in the |sandbox|, for
7691	security reasons.
7692						*'titlestring'*
7693'titlestring'		string	(default "")
7694			global
7695			{not in Vi}
7696			{not available when compiled without the |+title|
7697			feature}
7698	When this option is not empty, it will be used for the title of the
7699	window.  This happens only when the 'title' option is on.
7700	Only works if the terminal supports setting window titles (currently
7701	Amiga console, Win32 console, all GUI versions and terminals with a
7702	non-empty 't_ts' option).
7703	When Vim was compiled with HAVE_X11 defined, the original title will
7704	be restored if possible |X11|.
7705	When this option contains printf-style '%' items, they will be
7706	expanded according to the rules used for 'statusline'.
7707	Example: >
7708    :auto BufEnter * let &titlestring = hostname() . "/" . expand("%:p")
7709    :set title titlestring=%<%F%=%l/%L-%P titlelen=70
7710<	The value of 'titlelen' is used to align items in the middle or right
7711	of the available space.
7712	Some people prefer to have the file name first: >
7713    :set titlestring=%t%(\ %M%)%(\ (%{expand(\"%:~:.:h\")})%)%(\ %a%)
7714<	Note the use of "%{ }" and an expression to get the path of the file,
7715	without the file name.  The "%( %)" constructs are used to add a
7716	separating space only when needed.
7717	NOTE: Use of special characters in 'titlestring' may cause the display
7718	to be garbled (e.g., when it contains a CR or NL character).
7719	{not available when compiled without the |+statusline| feature}
7720
7721				*'toolbar'* *'tb'*
7722'toolbar' 'tb'		string	(default "icons,tooltips")
7723			global
7724			{only for |+GUI_GTK|, |+GUI_Athena|, |+GUI_Motif| and
7725			|+GUI_Photon|}
7726	The contents of this option controls various toolbar settings.  The
7727	possible values are:
7728		icons		Toolbar buttons are shown with icons.
7729		text		Toolbar buttons shown with text.
7730		horiz		Icon and text of a toolbar button are
7731				horizontally arranged.  {only in GTK+ 2 GUI}
7732		tooltips	Tooltips are active for toolbar buttons.
7733	Tooltips refer to the popup help text which appears after the mouse
7734	cursor is placed over a toolbar button for a brief moment.
7735
7736	If you want the toolbar to be shown with icons as well as text, do the
7737	following: >
7738		:set tb=icons,text
7739<	Motif and Athena cannot display icons and text at the same time.  They
7740	will show icons if both are requested.
7741
7742	If none of the strings specified in 'toolbar' are valid or if
7743	'toolbar' is empty, this option is ignored.  If you want to disable
7744	the toolbar, you need to set the 'guioptions' option.  For example: >
7745		:set guioptions-=T
7746<	Also see |gui-toolbar|.
7747
7748						*'toolbariconsize'* *'tbis'*
7749'toolbariconsize' 'tbis'	string	(default "small")
7750				global
7751				{not in Vi}
7752				{only in the GTK+ 2 GUI}
7753	Controls the size of toolbar icons.  The possible values are:
7754		tiny		Use tiny toolbar icons.
7755		small		Use small toolbar icons (default).
7756		medium		Use medium-sized toolbar icons.
7757		large		Use large toolbar icons.
7758	The exact dimensions in pixels of the various icon sizes depend on
7759	the current theme.  Common dimensions are large=32x32, medium=24x24,
7760	small=20x20 and tiny=16x16.
7761
7762	If 'toolbariconsize' is empty, the global default size as determined
7763	by user preferences or the current theme is used.
7764
7765			     *'ttybuiltin'* *'tbi'* *'nottybuiltin'* *'notbi'*
7766'ttybuiltin' 'tbi'	boolean	(default on)
7767			global
7768			{not in Vi}
7769	When on, the builtin termcaps are searched before the external ones.
7770	When off the builtin termcaps are searched after the external ones.
7771	When this option is changed, you should set the 'term' option next for
7772	the change to take effect, for example: >
7773		:set notbi term=$TERM
7774<	See also |termcap|.
7775	Rationale: The default for this option is "on", because the builtin
7776	termcap entries are generally better (many systems contain faulty
7777	xterm entries...).
7778
7779				     *'ttyfast'* *'tf'* *'nottyfast'* *'notf'*
7780'ttyfast' 'tf'		boolean	(default off, on when 'term' is xterm, hpterm,
7781					sun-cmd, screen, rxvt, dtterm or
7782					iris-ansi; also on when running Vim in
7783					a DOS console)
7784			global
7785			{not in Vi}
7786	Indicates a fast terminal connection.  More characters will be sent to
7787	the screen for redrawing, instead of using insert/delete line
7788	commands.  Improves smoothness of redrawing when there are multiple
7789	windows and the terminal does not support a scrolling region.
7790	Also enables the extra writing of characters at the end of each screen
7791	line for lines that wrap.  This helps when using copy/paste with the
7792	mouse in an xterm and other terminals.
7793
7794						*'ttymouse'* *'ttym'*
7795'ttymouse' 'ttym'	string	(default depends on 'term')
7796			global
7797			{not in Vi}
7798			{only in Unix and VMS, doesn't work in the GUI; not
7799			available when compiled without |+mouse|}
7800	Name of the terminal type for which mouse codes are to be recognized.
7801	Currently these strings are valid:
7802							*xterm-mouse*
7803	   xterm	xterm-like mouse handling.  The mouse generates
7804			"<Esc>[Mscr", where "scr" is three bytes:
7805				"s"  = button state
7806				"c"  = column plus 33
7807				"r"  = row plus 33
7808			This only works up to 223 columns!  See "dec",
7809			"urxvt", and "sgr" for solutions.
7810	   xterm2	Works like "xterm", but with the xterm reporting the
7811			mouse position while the mouse is dragged.  This works
7812			much faster and more precise.  Your xterm must at
7813			least at patchlevel 88 / XFree 3.3.3 for this to
7814			work.  See below for how Vim detects this
7815			automatically.
7816							*netterm-mouse*
7817	   netterm	NetTerm mouse handling.  The mouse generates
7818			"<Esc>}r,c<CR>", where "r,c" are two decimal numbers
7819			for the row and column.
7820							*dec-mouse*
7821	   dec		DEC terminal mouse handling.  The mouse generates a
7822			rather complex sequence, starting with "<Esc>[".
7823			This is also available for an Xterm, if it was
7824			configured with "--enable-dec-locator".
7825							*jsbterm-mouse*
7826	   jsbterm	JSB term mouse handling.
7827							*pterm-mouse*
7828	   pterm	QNX pterm mouse handling.
7829							*urxvt-mouse*
7830	   urxvt	Mouse handling for the urxvt (rxvt-unicode) terminal.
7831			The mouse works only if the terminal supports this
7832			encoding style, but it does not have 223 columns limit
7833			unlike "xterm" or "xterm2".
7834							*sgr-mouse*
7835	   sgr		Mouse handling for the terminal that emits SGR-styled
7836			mouse reporting.  The mouse works even in columns
7837			beyond 223.  This option is backward compatible with
7838			"xterm2" because it can also decode "xterm2" style
7839			mouse codes.
7840
7841	The mouse handling must be enabled at compile time |+mouse_xterm|
7842	|+mouse_dec| |+mouse_netterm| |+mouse_jsbterm| |+mouse_urxvt|
7843	|+mouse_sgr|.
7844	Only "xterm"(2) is really recognized.  NetTerm mouse codes are always
7845	recognized, if enabled at compile time.  DEC terminal mouse codes
7846	are recognized if enabled at compile time, and 'ttymouse' is not
7847	"xterm", "xterm2", "urxvt" or "sgr" (because dec mouse codes conflict
7848	with them).
7849	This option is automatically set to "xterm", when the 'term' option is
7850	set to a name that starts with "xterm", "mlterm", or "screen", and
7851	'ttymouse' is not set already.
7852	Additionally, if vim is compiled with the |+termresponse| feature and
7853	|t_RV| is set to the escape sequence to request the xterm version
7854	number, more intelligent detection process runs.
7855	The "xterm2" value will be set if the xterm version is reported to be
7856	from 95 to 276.  The "sgr" value will be set if the xterm version is
7857	277 or highter.
7858	If you do not want 'ttymouse' to be set to "xterm2" or "sgr"
7859	automatically, set t_RV to an empty string: >
7860		:set t_RV=
7861<
7862						*'ttyscroll'* *'tsl'*
7863'ttyscroll' 'tsl'	number	(default 999)
7864			global
7865	Maximum number of lines to scroll the screen.  If there are more lines
7866	to scroll the window is redrawn.  For terminals where scrolling is
7867	very slow and redrawing is not slow this can be set to a small number,
7868	e.g., 3, to speed up displaying.
7869
7870						*'ttytype'* *'tty'*
7871'ttytype' 'tty'		string	(default from $TERM)
7872			global
7873	Alias for 'term', see above.
7874
7875						*'undodir'* *'udir'*
7876'undodir' 'udir'	string	(default ".")
7877			global
7878			{not in Vi}
7879			{only when compiled with the |+persistent_undo| feature}
7880	List of directory names for undo files, separated with commas.
7881	See |'backupdir'| for details of the format.
7882	"." means using the directory of the file.  The undo file name for
7883	"file.txt" is ".file.txt.un~".
7884	For other directories the file name is the full path of the edited
7885	file, with path separators replaced with "%".
7886	When writing: The first directory that exists is used. "." always
7887	works, no directories after "." will be used for writing.
7888	When reading all entries are tried to find an undo file.  The first
7889	undo file that exists is used.  When it cannot be read an error is
7890	given, no further entry is used.
7891	See |undo-persistence|.
7892
7893				*'undofile'* *'noundofile'* *'udf'* *'noudf'*
7894'undofile' 'udf'	boolean	(default off)
7895			local to buffer
7896			{not in Vi}
7897			{only when compiled with the |+persistent_undo| feature}
7898	When on, Vim automatically saves undo history to an undo file when
7899	writing a buffer to a file, and restores undo history from the same
7900	file on buffer read.
7901	The directory where the undo file is stored is specified by 'undodir'.
7902	For more information about this feature see |undo-persistence|.
7903	The undo file is not read when 'undoreload' causes the buffer from
7904	before a reload to be saved for undo.
7905	When 'undofile' is turned off the undo file is NOT deleted.
7906
7907						*'undolevels'* *'ul'*
7908'undolevels' 'ul'	number	(default 100, 1000 for Unix, VMS,
7909						Win32 and OS/2)
7910			global or local to buffer |global-local|
7911			{not in Vi}
7912	Maximum number of changes that can be undone.  Since undo information
7913	is kept in memory, higher numbers will cause more memory to be used
7914	(nevertheless, a single change can use an unlimited amount of memory).
7915	Set to 0 for Vi compatibility: One level of undo and "u" undoes
7916	itself: >
7917		set ul=0
7918<	But you can also get Vi compatibility by including the 'u' flag in
7919	'cpoptions', and still be able to use CTRL-R to repeat undo.
7920	Also see |undo-two-ways|.
7921	Set to -1 for no undo at all.  You might want to do this only for the
7922	current buffer: >
7923		setlocal ul=-1
7924<	This helps when you run out of memory for a single change.
7925
7926	The local value is set to -123456 when the global value is to be used.
7927
7928	Also see |clear-undo|.
7929
7930						*'undoreload'* *'ur'*
7931'undoreload' 'ur'	number	(default 10000)
7932			global
7933			{not in Vi}
7934	Save the whole buffer for undo when reloading it.  This applies to the
7935	":e!" command and reloading for when the buffer changed outside of
7936	Vim. |FileChangedShell|
7937	The save only happens when this options is negative or when the number
7938	of lines is smaller than the value of this option.
7939	Set this option to zero to disable undo for a reload.
7940
7941	When saving undo for a reload, any undo file is not read.
7942
7943	Note that this causes the whole buffer to be stored in memory.  Set
7944	this option to a lower value if you run out of memory.
7945
7946						*'updatecount'* *'uc'*
7947'updatecount' 'uc'	number	(default: 200)
7948			global
7949			{not in Vi}
7950	After typing this many characters the swap file will be written to
7951	disk.  When zero, no swap file will be created at all (see chapter on
7952	recovery |crash-recovery|).  'updatecount' is set to zero by starting
7953	Vim with the "-n" option, see |startup|.  When editing in readonly
7954	mode this option will be initialized to 10000.
7955	The swapfile can be disabled per buffer with |'swapfile'|.
7956	When 'updatecount' is set from zero to non-zero, swap files are
7957	created for all buffers that have 'swapfile' set.  When 'updatecount'
7958	is set to zero, existing swap files are not deleted.
7959	Also see |'swapsync'|.
7960	This option has no meaning in buffers where |'buftype'| is "nofile"
7961	or "nowrite".
7962
7963						*'updatetime'* *'ut'*
7964'updatetime' 'ut'	number	(default 4000)
7965			global
7966			{not in Vi}
7967	If this many milliseconds nothing is typed the swap file will be
7968	written to disk (see |crash-recovery|).  Also used for the
7969	|CursorHold| autocommand event.
7970
7971						*'verbose'* *'vbs'*
7972'verbose' 'vbs'		number	(default 0)
7973			global
7974			{not in Vi, although some versions have a boolean
7975			verbose option}
7976	When bigger than zero, Vim will give messages about what it is doing.
7977	Currently, these messages are given:
7978	>= 1	When the viminfo file is read or written.
7979	>= 2	When a file is ":source"'ed.
7980	>= 5	Every searched tags file and include file.
7981	>= 8	Files for which a group of autocommands is executed.
7982	>= 9	Every executed autocommand.
7983	>= 12	Every executed function.
7984	>= 13	When an exception is thrown, caught, finished, or discarded.
7985	>= 14	Anything pending in a ":finally" clause.
7986	>= 15	Every executed Ex command (truncated at 200 characters).
7987
7988	This option can also be set with the "-V" argument.  See |-V|.
7989	This option is also set by the |:verbose| command.
7990
7991	When the 'verbosefile' option is set then the verbose messages are not
7992	displayed.
7993
7994						*'verbosefile'* *'vfile'*
7995'verbosefile' 'vfile'	string	(default empty)
7996			global
7997			{not in Vi}
7998	When not empty all messages are written in a file with this name.
7999	When the file exists messages are appended.
8000	Writing to the file ends when Vim exits or when 'verbosefile' is made
8001	empty.  Writes are buffered, thus may not show up for some time.
8002	Setting 'verbosefile' to a new value is like making it empty first.
8003	The difference with |:redir| is that verbose messages are not
8004	displayed when 'verbosefile' is set.
8005
8006						*'viewdir'* *'vdir'*
8007'viewdir' 'vdir'	string	(default for Amiga, MS-DOS, OS/2 and Win32:
8008							 "$VIM/vimfiles/view",
8009				 for Unix: "~/.vim/view",
8010				 for Macintosh: "$VIM:vimfiles:view"
8011				 for VMS: "sys$login:vimfiles/view"
8012				 for RiscOS: "Choices:vimfiles/view")
8013			global
8014			{not in Vi}
8015			{not available when compiled without the |+mksession|
8016			feature}
8017	Name of the directory where to store files for |:mkview|.
8018	This option cannot be set from a |modeline| or in the |sandbox|, for
8019	security reasons.
8020
8021						*'viewoptions'* *'vop'*
8022'viewoptions' 'vop'	string	(default: "folds,options,cursor")
8023			global
8024			{not in Vi}
8025			{not available when compiled without the |+mksession|
8026			feature}
8027	Changes the effect of the |:mkview| command.  It is a comma separated
8028	list of words.  Each word enables saving and restoring something:
8029	   word		save and restore ~
8030	   cursor	cursor position in file and in window
8031	   folds	manually created folds, opened/closed folds and local
8032			fold options
8033	   options	options and mappings local to a window or buffer (not
8034			global values for local options)
8035	   localoptions same as "options"
8036	   slash	backslashes in file names replaced with forward
8037			slashes
8038	   unix		with Unix end-of-line format (single <NL>), even when
8039			on Windows or DOS
8040
8041	"slash" and "unix" are useful on Windows when sharing view files
8042	with Unix.  The Unix version of Vim cannot source dos format scripts,
8043	but the Windows version of Vim can source unix format scripts.
8044
8045				*'viminfo'* *'vi'* *E526* *E527* *E528*
8046'viminfo' 'vi'		string	(Vi default: "", Vim default for MS-DOS,
8047				   Windows and OS/2: '100,<50,s10,h,rA:,rB:,
8048				   for Amiga: '100,<50,s10,h,rdf0:,rdf1:,rdf2:
8049				   for others: '100,<50,s10,h)
8050			global
8051			{not in Vi}
8052			{not available when compiled without the |+viminfo|
8053			feature}
8054	When non-empty, the viminfo file is read upon startup and written
8055	when exiting Vim (see |viminfo-file|).  The string should be a comma
8056	separated list of parameters, each consisting of a single character
8057	identifying the particular parameter, followed by a number or string
8058	which specifies the value of that parameter.  If a particular
8059	character is left out, then the default value is used for that
8060	parameter.  The following is a list of the identifying characters and
8061	the effect of their value.
8062	CHAR	VALUE	~
8063							*viminfo-!*
8064	!	When included, save and restore global variables that start
8065		with an uppercase letter, and don't contain a lowercase
8066		letter.  Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
8067		and "_K_L_M" are not.  Nested List and Dict items may not be
8068		read back correctly, you end up with an empty item.
8069							*viminfo-quote*
8070	"	Maximum number of lines saved for each register.  Old name of
8071		the '<' item, with the disadvantage that you need to put a
8072		backslash before the ", otherwise it will be recognized as the
8073		start of a comment!
8074							*viminfo-%*
8075	%	When included, save and restore the buffer list.  If Vim is
8076		started with a file name argument, the buffer list is not
8077		restored.  If Vim is started without a file name argument, the
8078		buffer list is restored from the viminfo file.  Quickfix
8079		('buftype'), unlisted ('buflisted'), unnamed and buffers on
8080		removable media (|viminfo-r|) are not saved.
8081		When followed by a number, the number specifies the maximum
8082		number of buffers that are stored.  Without a number all
8083		buffers are stored.
8084							*viminfo-'*
8085	'	Maximum number of previously edited files for which the marks
8086		are remembered.  This parameter must always be included when
8087		'viminfo' is non-empty.
8088		Including this item also means that the |jumplist| and the
8089		|changelist| are stored in the viminfo file.
8090							*viminfo-/*
8091	/	Maximum number of items in the search pattern history to be
8092		saved.  If non-zero, then the previous search and substitute
8093		patterns are also saved.  When not included, the value of
8094		'history' is used.
8095							*viminfo-:*
8096	:	Maximum number of items in the command-line history to be
8097		saved.  When not included, the value of 'history' is used.
8098							*viminfo-<*
8099	<	Maximum number of lines saved for each register.  If zero then
8100		registers are not saved.  When not included, all lines are
8101		saved.  '"' is the old name for this item.
8102		Also see the 's' item below: limit specified in Kbyte.
8103							*viminfo-@*
8104	@	Maximum number of items in the input-line history to be
8105		saved.  When not included, the value of 'history' is used.
8106							*viminfo-c*
8107	c	When included, convert the text in the viminfo file from the
8108		'encoding' used when writing the file to the current
8109		'encoding'.  See |viminfo-encoding|.
8110							*viminfo-f*
8111	f	Whether file marks need to be stored.  If zero, file marks ('0
8112		to '9, 'A to 'Z) are not stored.  When not present or when
8113		non-zero, they are all stored.  '0 is used for the current
8114		cursor position (when exiting or when doing ":wviminfo").
8115							*viminfo-h*
8116	h	Disable the effect of 'hlsearch' when loading the viminfo
8117		file.  When not included, it depends on whether ":nohlsearch"
8118		has been used since the last search command.
8119							*viminfo-n*
8120	n	Name of the viminfo file.  The name must immediately follow
8121		the 'n'.  Must be the last one!  If the "-i" argument was
8122		given when starting Vim, that file name overrides the one
8123		given here with 'viminfo'.  Environment variables are expanded
8124		when opening the file, not when setting the option.
8125							*viminfo-r*
8126	r	Removable media.  The argument is a string (up to the next
8127		',').  This parameter can be given several times.  Each
8128		specifies the start of a path for which no marks will be
8129		stored.  This is to avoid removable media.  For MS-DOS you
8130		could use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:".  You can
8131		also use it for temp files, e.g., for Unix: "r/tmp".  Case is
8132		ignored.  Maximum length of each 'r' argument is 50
8133		characters.
8134							*viminfo-s*
8135	s	Maximum size of an item in Kbyte.  If zero then registers are
8136		not saved.  Currently only applies to registers.  The default
8137		"s10" will exclude registers with more than 10 Kbyte of text.
8138		Also see the '<' item above: line count limit.
8139
8140	Example: >
8141	    :set viminfo='50,<1000,s100,:0,n~/vim/viminfo
8142<
8143	'50		Marks will be remembered for the last 50 files you
8144			edited.
8145	<1000		Contents of registers (up to 1000 lines each) will be
8146			remembered.
8147	s100		Registers with more than 100 Kbyte text are skipped.
8148	:0		Command-line history will not be saved.
8149	n~/vim/viminfo	The name of the file to use is "~/vim/viminfo".
8150	no /		Since '/' is not specified, the default will be used,
8151			that is, save all of the search history, and also the
8152			previous search and substitute patterns.
8153	no %		The buffer list will not be saved nor read back.
8154	no h		'hlsearch' highlighting will be restored.
8155
8156	When setting 'viminfo' from an empty value you can use |:rviminfo| to
8157	load the contents of the file, this is not done automatically.
8158
8159	This option cannot be set from a |modeline| or in the |sandbox|, for
8160	security reasons.
8161
8162					    *'virtualedit'* *'ve'*
8163'virtualedit' 've'	string	(default "")
8164			global
8165			{not in Vi}
8166			{not available when compiled without the
8167			|+virtualedit| feature}
8168	A comma separated list of these words:
8169	    block	Allow virtual editing in Visual block mode.
8170	    insert	Allow virtual editing in Insert mode.
8171	    all		Allow virtual editing in all modes.
8172	    onemore	Allow the cursor to move just past the end of the line
8173
8174	Virtual editing means that the cursor can be positioned where there is
8175	no actual character.  This can be halfway into a tab or beyond the end
8176	of the line.  Useful for selecting a rectangle in Visual mode and
8177	editing a table.
8178	"onemore" is not the same, it will only allow moving the cursor just
8179	after the last character of the line.  This makes some commands more
8180	consistent.  Previously the cursor was always past the end of the line
8181	if the line was empty.  But it is far from Vi compatible.  It may also
8182	break some plugins or Vim scripts.  For example because |l| can move
8183	the cursor after the last character.  Use with care!
8184	Using the `$` command will move to the last character in the line, not
8185	past it.  This may actually move the cursor to the left!
8186	The `g$` command will move to the end of the screen line.
8187	It doesn't make sense to combine "all" with "onemore", but you will
8188	not get a warning for it.
8189
8190			*'visualbell'* *'vb'* *'novisualbell'* *'novb'* *beep*
8191'visualbell' 'vb'	boolean	(default off)
8192			global
8193			{not in Vi}
8194	Use visual bell instead of beeping.  The terminal code to display the
8195	visual bell is given with 't_vb'.  When no beep or flash is wanted,
8196	use ":set vb t_vb=".
8197	Note: When the GUI starts, 't_vb' is reset to its default value.  You
8198	might want to set it again in your |gvimrc|.
8199	In the GUI, 't_vb' defaults to "<Esc>|f", which inverts the display
8200	for 20 msec.  If you want to use a different time, use "<Esc>|40f",
8201	where 40 is the time in msec.
8202	Does not work on the Amiga, you always get a screen flash.
8203	Also see 'errorbells'.
8204
8205						*'warn'* *'nowarn'*
8206'warn'			boolean	(default on)
8207			global
8208	Give a warning message when a shell command is used while the buffer
8209	has been changed.
8210
8211		     *'weirdinvert'* *'wiv'* *'noweirdinvert'* *'nowiv'*
8212'weirdinvert' 'wiv'	boolean	(default off)
8213			global
8214			{not in Vi}
8215	This option has the same effect as the 't_xs' terminal option.
8216	It is provided for backwards compatibility with version 4.x.
8217	Setting 'weirdinvert' has the effect of making 't_xs' non-empty, and
8218	vice versa.  Has no effect when the GUI is running.
8219
8220						*'whichwrap'* *'ww'*
8221'whichwrap' 'ww'	string	(Vim default: "b,s", Vi default: "")
8222			global
8223			{not in Vi}
8224	Allow specified keys that move the cursor left/right to move to the
8225	previous/next line when the cursor is on the first/last character in
8226	the line.  Concatenate characters to allow this for these keys:
8227		char   key	  mode	~
8228		 b    <BS>	 Normal and Visual
8229		 s    <Space>	 Normal and Visual
8230		 h    "h"	 Normal and Visual (not recommended)
8231		 l    "l"	 Normal and Visual (not recommended)
8232		 <    <Left>	 Normal and Visual
8233		 >    <Right>	 Normal and Visual
8234		 ~    "~"	 Normal
8235		 [    <Left>	 Insert and Replace
8236		 ]    <Right>	 Insert and Replace
8237	For example: >
8238		:set ww=<,>,[,]
8239<	allows wrap only when cursor keys are used.
8240	When the movement keys are used in combination with a delete or change
8241	operator, the <EOL> also counts for a character.  This makes "3h"
8242	different from "3dh" when the cursor crosses the end of a line.  This
8243	is also true for "x" and "X", because they do the same as "dl" and
8244	"dh".  If you use this, you may also want to use the mapping
8245	":map <BS> X" to make backspace delete the character in front of the
8246	cursor.
8247	When 'l' is included and it is used after an operator at the end of a
8248	line then it will not move to the next line.  This makes "dl", "cl",
8249	"yl" etc. work normally.
8250	NOTE: This option is set to the Vi default value when 'compatible' is
8251	set and to the Vim default value when 'compatible' is reset.
8252
8253						*'wildchar'* *'wc'*
8254'wildchar' 'wc'		number	(Vim default: <Tab>, Vi default: CTRL-E)
8255			global
8256			{not in Vi}
8257	Character you have to type to start wildcard expansion in the
8258	command-line, as specified with 'wildmode'.
8259	More info here: |cmdline-completion|.
8260	The character is not recognized when used inside a macro.  See
8261	'wildcharm' for that.
8262	Although 'wc' is a number option, you can set it to a special key: >
8263		:set wc=<Esc>
8264<	NOTE: This option is set to the Vi default value when 'compatible' is
8265	set and to the Vim default value when 'compatible' is reset.
8266
8267						*'wildcharm'* *'wcm'*
8268'wildcharm' 'wcm'	number	(default: none (0))
8269			global
8270			{not in Vi}
8271	'wildcharm' works exactly like 'wildchar', except that it is
8272	recognized when used inside a macro.  You can find "spare" command-line
8273	keys suitable for this option by looking at |ex-edit-index|.  Normally
8274	you'll never actually type 'wildcharm', just use it in mappings that
8275	automatically invoke completion mode, e.g.: >
8276		:set wcm=<C-Z>
8277		:cnoremap ss so $vim/sessions/*.vim<C-Z>
8278<	Then after typing :ss you can use CTRL-P & CTRL-N.
8279
8280						*'wildignore'* *'wig'*
8281'wildignore' 'wig'	string	(default "")
8282			global
8283			{not in Vi}
8284			{not available when compiled without the |+wildignore|
8285			feature}
8286	A list of file patterns.  A file that matches with one of these
8287	patterns is ignored when expanding |wildcards|, completing file or
8288	directory names, and influences the result of |expand()|, |glob()| and
8289	|globpath()| unless a flag is passed to disable this.
8290	The pattern is used like with |:autocmd|, see |autocmd-patterns|.
8291	Also see 'suffixes'.
8292	Example: >
8293		:set wildignore=*.o,*.obj
8294<	The use of |:set+=| and |:set-=| is preferred when adding or removing
8295	a pattern from the list.  This avoids problems when a future version
8296	uses another default.
8297
8298
8299			*'wildignorecase'* *'wic'* *'nowildignorecase'* *'nowic'*
8300'wildignorecase' 'wic'	boolean	(default off)
8301			global
8302			{not in Vi}
8303	When set case is ignored when completing file names and directories.
8304	Has no effect when 'fileignorecase' is set.
8305	Does not apply when the shell is used to expand wildcards, which
8306	happens when there are special characters.
8307
8308
8309				*'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
8310'wildmenu' 'wmnu'	boolean	(default off)
8311			global
8312			{not in Vi}
8313			{not available if compiled without the |+wildmenu|
8314			feature}
8315	When 'wildmenu' is on, command-line completion operates in an enhanced
8316	mode.  On pressing 'wildchar' (usually <Tab>) to invoke completion,
8317	the possible matches are shown just above the command line, with the
8318	first match highlighted (overwriting the status line, if there is
8319	one).  Keys that show the previous/next match, such as <Tab> or
8320	CTRL-P/CTRL-N, cause the highlight to move to the appropriate match.
8321	When 'wildmode' is used, "wildmenu" mode is used where "full" is
8322	specified.  "longest" and "list" do not start "wildmenu" mode.
8323	You can check the current mode with |wildmenumode()|.
8324	If there are more matches than can fit in the line, a ">" is shown on
8325	the right and/or a "<" is shown on the left.  The status line scrolls
8326	as needed.
8327	The "wildmenu" mode is abandoned when a key is hit that is not used
8328	for selecting a completion.
8329	While the "wildmenu" is active the following keys have special
8330	meanings:
8331
8332	<Left> <Right>	- select previous/next match (like CTRL-P/CTRL-N)
8333	<Down>		- in filename/menu name completion: move into a
8334			  subdirectory or submenu.
8335	<CR>		- in menu completion, when the cursor is just after a
8336			  dot: move into a submenu.
8337	<Up>		- in filename/menu name completion: move up into
8338			  parent directory or parent menu.
8339
8340	This makes the menus accessible from the console |console-menus|.
8341
8342	If you prefer the <Left> and <Right> keys to move the cursor instead
8343	of selecting a different match, use this: >
8344		:cnoremap <Left> <Space><BS><Left>
8345		:cnoremap <Right> <Space><BS><Right>
8346<
8347	The "WildMenu" highlighting is used for displaying the current match
8348	|hl-WildMenu|.
8349
8350						*'wildmode'* *'wim'*
8351'wildmode' 'wim'	string	(Vim default: "full")
8352			global
8353			{not in Vi}
8354	Completion mode that is used for the character specified with
8355	'wildchar'.  It is a comma separated list of up to four parts.  Each
8356	part specifies what to do for each consecutive use of 'wildchar'.  The
8357	first part specifies the behavior for the first use of 'wildchar',
8358	The second part for the second use, etc.
8359	These are the possible values for each part:
8360	""		Complete only the first match.
8361	"full"		Complete the next full match.  After the last match,
8362			the original string is used and then the first match
8363			again.
8364	"longest"	Complete till longest common string.  If this doesn't
8365			result in a longer string, use the next part.
8366	"longest:full"	Like "longest", but also start 'wildmenu' if it is
8367			enabled.
8368	"list"		When more than one match, list all matches.
8369	"list:full"	When more than one match, list all matches and
8370			complete first match.
8371	"list:longest"	When more than one match, list all matches and
8372			complete till longest common string.
8373	When there is only a single match, it is fully completed in all cases.
8374
8375	Examples: >
8376		:set wildmode=full
8377<	Complete first full match, next match, etc.  (the default) >
8378		:set wildmode=longest,full
8379<	Complete longest common string, then each full match >
8380		:set wildmode=list:full
8381<	List all matches and complete each full match >
8382		:set wildmode=list,full
8383<	List all matches without completing, then each full match >
8384		:set wildmode=longest,list
8385<	Complete longest common string, then list alternatives.
8386	More info here: |cmdline-completion|.
8387
8388						*'wildoptions'* *'wop'*
8389'wildoptions' 'wop'	string	(default "")
8390			global
8391			{not in Vi}
8392			{not available when compiled without the |+wildignore|
8393			feature}
8394	A list of words that change how command line completion is done.
8395	Currently only one word is allowed:
8396	  tagfile	When using CTRL-D to list matching tags, the kind of
8397			tag and the file of the tag is listed.	Only one match
8398			is displayed per line.  Often used tag kinds are:
8399				d	#define
8400				f	function
8401	Also see |cmdline-completion|.
8402
8403						*'winaltkeys'* *'wak'*
8404'winaltkeys' 'wak'	string	(default "menu")
8405			global
8406			{not in Vi}
8407			{only used in Win32, Motif, GTK and Photon GUI}
8408	Some GUI versions allow the access to menu entries by using the ALT
8409	key in combination with a character that appears underlined in the
8410	menu.  This conflicts with the use of the ALT key for mappings and
8411	entering special characters.  This option tells what to do:
8412	  no	Don't use ALT keys for menus.  ALT key combinations can be
8413		mapped, but there is no automatic handling.  This can then be
8414		done with the |:simalt| command.
8415	  yes	ALT key handling is done by the windowing system.  ALT key
8416		combinations cannot be mapped.
8417	  menu	Using ALT in combination with a character that is a menu
8418		shortcut key, will be handled by the windowing system.  Other
8419		keys can be mapped.
8420	If the menu is disabled by excluding 'm' from 'guioptions', the ALT
8421	key is never used for the menu.
8422	This option is not used for <F10>; on Win32 and with GTK <F10> will
8423	select the menu, unless it has been mapped.
8424
8425						*'window'* *'wi'*
8426'window' 'wi'		number  (default screen height - 1)
8427			global
8428	Window height.  Do not confuse this with the height of the Vim window,
8429	use 'lines' for that.
8430	Used for |CTRL-F| and |CTRL-B| when there is only one window and the
8431	value is smaller than 'lines' minus one.  The screen will scroll
8432	'window' minus two lines, with a minimum of one.
8433	When 'window' is equal to 'lines' minus one CTRL-F and CTRL-B scroll
8434	in a much smarter way, taking care of wrapping lines.
8435	When resizing the Vim window, the value is smaller than 1 or more than
8436	or equal to 'lines' it will be set to 'lines' minus 1.
8437	{Vi also uses the option to specify the number of displayed lines}
8438
8439						*'winheight'* *'wh'* *E591*
8440'winheight' 'wh'	number	(default 1)
8441			global
8442			{not in Vi}
8443			{not available when compiled without the |+windows|
8444			feature}
8445	Minimal number of lines for the current window.  This is not a hard
8446	minimum, Vim will use fewer lines if there is not enough room.  If the
8447	focus goes to a window that is smaller, its size is increased, at the
8448	cost of the height of other windows.
8449	Set 'winheight' to a small number for normal editing.
8450	Set it to 999 to make the current window fill most of the screen.
8451	Other windows will be only 'winminheight' high.  This has the drawback
8452	that ":all" will create only two windows.  To avoid "vim -o 1 2 3 4"
8453	to create only two windows, set the option after startup is done,
8454	using the |VimEnter| event: >
8455		au VimEnter * set winheight=999
8456<	Minimum value is 1.
8457	The height is not adjusted after one of the commands that change the
8458	height of the current window.
8459	'winheight' applies to the current window.  Use 'winminheight' to set
8460	the minimal height for other windows.
8461
8462			*'winfixheight'* *'wfh'* *'nowinfixheight'* *'nowfh'*
8463'winfixheight' 'wfh'	boolean	(default off)
8464			local to window
8465			{not in Vi}
8466			{not available when compiled without the |+windows|
8467			feature}
8468	Keep the window height when windows are opened or closed and
8469	'equalalways' is set.  Also for |CTRL-W_=|.  Set by default for the
8470	|preview-window| and |quickfix-window|.
8471	The height may be changed anyway when running out of room.
8472
8473			*'winfixwidth'* *'wfw'* *'nowinfixwidth'* *'nowfw'*
8474'winfixwidth' 'wfw'	boolean	(default off)
8475			local to window
8476			{not in Vi}
8477			{not available when compiled without the |+windows|
8478			feature}
8479	Keep the window width when windows are opened or closed and
8480	'equalalways' is set.  Also for |CTRL-W_=|.
8481	The width may be changed anyway when running out of room.
8482
8483						*'winminheight'* *'wmh'*
8484'winminheight' 'wmh'	number	(default 1)
8485			global
8486			{not in Vi}
8487			{not available when compiled without the |+windows|
8488			feature}
8489	The minimal height of a window, when it's not the current window.
8490	This is a hard minimum, windows will never become smaller.
8491	When set to zero, windows may be "squashed" to zero lines (i.e. just a
8492	status bar) if necessary.  They will return to at least one line when
8493	they become active (since the cursor has to have somewhere to go.)
8494	Use 'winheight' to set the minimal height of the current window.
8495	This option is only checked when making a window smaller.  Don't use a
8496	large number, it will cause errors when opening more than a few
8497	windows.  A value of 0 to 3 is reasonable.
8498
8499						*'winminwidth'* *'wmw'*
8500'winminwidth' 'wmw'	number	(default 1)
8501			global
8502			{not in Vi}
8503			{not available when compiled without the |+vertsplit|
8504			feature}
8505	The minimal width of a window, when it's not the current window.
8506	This is a hard minimum, windows will never become smaller.
8507	When set to zero, windows may be "squashed" to zero columns (i.e. just
8508	a vertical separator) if necessary.  They will return to at least one
8509	line when they become active (since the cursor has to have somewhere
8510	to go.)
8511	Use 'winwidth' to set the minimal width of the current window.
8512	This option is only checked when making a window smaller.  Don't use a
8513	large number, it will cause errors when opening more than a few
8514	windows.  A value of 0 to 12 is reasonable.
8515
8516						*'winwidth'* *'wiw'* *E592*
8517'winwidth' 'wiw'	number	(default 20)
8518			global
8519			{not in Vi}
8520			{not available when compiled without the |+vertsplit|
8521			feature}
8522	Minimal number of columns for the current window.  This is not a hard
8523	minimum, Vim will use fewer columns if there is not enough room.  If
8524	the current window is smaller, its size is increased, at the cost of
8525	the width of other windows.  Set it to 999 to make the current window
8526	always fill the screen.  Set it to a small number for normal editing.
8527	The width is not adjusted after one of the commands to change the
8528	width of the current window.
8529	'winwidth' applies to the current window.  Use 'winminwidth' to set
8530	the minimal width for other windows.
8531
8532						*'wrap'* *'nowrap'*
8533'wrap'			boolean	(default on)
8534			local to window
8535			{not in Vi}
8536	This option changes how text is displayed.  It doesn't change the text
8537	in the buffer, see 'textwidth' for that.
8538	When on, lines longer than the width of the window will wrap and
8539	displaying continues on the next line.  When off lines will not wrap
8540	and only part of long lines will be displayed.  When the cursor is
8541	moved to a part that is not shown, the screen will scroll
8542	horizontally.
8543	The line will be broken in the middle of a word if necessary.  See
8544	'linebreak' to get the break at a word boundary.
8545	To make scrolling horizontally a bit more useful, try this: >
8546		:set sidescroll=5
8547		:set listchars+=precedes:<,extends:>
8548<	See 'sidescroll', 'listchars' and |wrap-off|.
8549	This option can't be set from a |modeline| when the 'diff' option is
8550	on.
8551
8552						*'wrapmargin'* *'wm'*
8553'wrapmargin' 'wm'	number	(default 0)
8554			local to buffer
8555	Number of characters from the right window border where wrapping
8556	starts.  When typing text beyond this limit, an <EOL> will be inserted
8557	and inserting continues on the next line.
8558	Options that add a margin, such as 'number' and 'foldcolumn', cause
8559	the text width to be further reduced.  This is Vi compatible.
8560	When 'textwidth' is non-zero, this option is not used.
8561	This option is set to 0 when 'paste' is set and restored when 'paste'
8562	is reset.
8563	See also 'formatoptions' and |ins-textwidth|.  {Vi: works differently
8564	and less usefully}
8565
8566				   *'wrapscan'* *'ws'* *'nowrapscan'* *'nows'*
8567'wrapscan' 'ws'		boolean	(default on)			*E384* *E385*
8568			global
8569	Searches wrap around the end of the file.  Also applies to |]s| and
8570	|[s|, searching for spelling mistakes.
8571
8572						   *'write'* *'nowrite'*
8573'write'			boolean	(default on)
8574			global
8575			{not in Vi}
8576	Allows writing files.  When not set, writing a file is not allowed.
8577	Can be used for a view-only mode, where modifications to the text are
8578	still allowed.  Can be reset with the |-m| or |-M| command line
8579	argument.  Filtering text is still possible, even though this requires
8580	writing a temporary file.
8581
8582				   *'writeany'* *'wa'* *'nowriteany'* *'nowa'*
8583'writeany' 'wa'		boolean	(default off)
8584			global
8585	Allows writing to any file with no need for "!" override.
8586
8587			     *'writebackup'* *'wb'* *'nowritebackup'* *'nowb'*
8588'writebackup' 'wb'	boolean	(default on with |+writebackup| feature, off
8589					otherwise)
8590			global
8591			{not in Vi}
8592	Make a backup before overwriting a file.  The backup is removed after
8593	the file was successfully written, unless the 'backup' option is
8594	also on.
8595	WARNING: Switching this option off means that when Vim fails to write
8596	your buffer correctly and then, for whatever reason, Vim exits, you
8597	lose both the original file and what you were writing.  Only reset
8598	this option if your file system is almost full and it makes the write
8599	fail (and make sure not to exit Vim until the write was successful).
8600	See |backup-table| for another explanation.
8601	When the 'backupskip' pattern matches, a backup is not made anyway.
8602	NOTE: This option is set to the default value when 'compatible' is
8603	set.
8604
8605						*'writedelay'* *'wd'*
8606'writedelay' 'wd'	number	(default 0)
8607			global
8608			{not in Vi}
8609	The number of microseconds to wait for each character sent to the
8610	screen.  When non-zero, characters are sent to the terminal one by
8611	one.  For MS-DOS pcterm this does not work.  For debugging purposes.
8612
8613 vim:tw=78:ts=8:ft=help:norl:
8614