diff options
Diffstat (limited to 'runtime/doc/options.txt')
-rw-r--r-- | runtime/doc/options.txt | 1480 |
1 files changed, 707 insertions, 773 deletions
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 2bdff2fbb2..c6fe18eb04 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -52,14 +52,16 @@ achieve special effects. These options come in three forms: 'lines' Warning: This may have a lot of side effects. - *:set-args* *E487* *E521* + *:set-args* *:set=* *E487* *E521* :se[t] {option}={value} or :se[t] {option}:{value} Set string or number option to {value}. For numeric options the value can be given in decimal, hex (preceded with 0x) or octal (preceded with '0'). The old value can be inserted by typing 'wildchar' (by - default this is a <Tab>). See |cmdline-completion|. + default this is a <Tab>). Many string options with + fixed syntax also support completing known values. + See |cmdline-completion| and |complete-set-option|. White space between {option} and '=' is allowed and will be ignored. White space between '=' and {value} is not allowed. @@ -93,6 +95,9 @@ achieve special effects. These options come in three forms: When the option is a list of flags, {value} must be exactly as they appear in the option. Remove flags one by one to avoid problems. + The individual values from a comma separated list or + list of flags can be inserted by typing 'wildchar'. + See |complete-set-option|. Also see |:set-args| above. The {option} arguments to ":set" may be repeated. For example: > @@ -131,10 +136,26 @@ To include white space in a string option value it has to be preceded with a backslash. To include a backslash you have to use two. Effectively this means that the number of backslashes in an option value is halved (rounded down). +In options 'path', 'cdpath', and 'tags', spaces have to be preceded with three +backslashes instead because they can be separated by either commas or spaces. +Comma-separated options like 'backupdir' and 'tags' will also require commas +to be escaped with two backslashes, whereas this is not needed for +non-comma-separated ones like 'makeprg'. +When setting options using |:let| and |literal-string|, you need to use one +fewer layer of backslash. A few examples: > - :set tags=tags\ /usr/tags results in "tags /usr/tags" - :set tags=tags\\,file results in "tags\,file" - :set tags=tags\\\ file results in "tags\ file" + :set makeprg=make\ file results in "make file" + :let &makeprg='make file' (same as above) + :set makeprg=make\\\ file results in "make\ file" + :set tags=tags\ /usr/tags results in "tags" and "/usr/tags" + :set tags=tags\\\ file results in "tags file" + :let &tags='tags\ file' (same as above) + + :set makeprg=make,file results in "make,file" + :set makeprg=make\\,file results in "make\,file" + :set tags=tags,file results in "tags" and "file" + :set tags=tags\\,file results in "tags,file" + :let &tags='tags\,file' (same as above) The "|" character separates a ":set" command from a following command. To include the "|" in the option value, use "\|" instead. This example sets the @@ -189,6 +210,8 @@ opt+=val" the expansion is done before the adding or removing. Handling of local options *local-options* +Note: The following also applies to |global-local| options. + Some of the options only apply to a window or buffer. Each window or buffer has its own copy of this option, thus each can have its own value. This allows you to set 'list' in one window but not in another. And set @@ -238,6 +261,30 @@ The options local to a window are remembered for each buffer. This also happens when the buffer is not loaded, but they are lost when the buffer is wiped out |:bwipe|. +Special local window options *local-noglobal* + +The following local window options won't be copied over when new windows are +created, thus they behave slightly differently: + + Option Reason ~ + 'previewwindow' there can only be a single one + 'scroll' specific to existing window + 'winfixheight' specific to existing window + 'winfixwidth' specific to existing window + +Special local buffer options + +The following local buffer options won't be copied over when new buffers are +created, thus they behave slightly differently: + + Option Reason ~ + 'filetype' explicitly set by autocommands + 'syntax' explicitly set by autocommands + 'bufhidden' denote |special-buffers| + 'buftype' denote |special-buffers| + 'readonly' will be detected automatically + 'modified' will be detected automatically + *:setl* *:setlocal* :setl[ocal][!] ... Like ":set" but set only the value local to the current buffer or window. Not all options have a @@ -311,7 +358,6 @@ used. Thus it does the same as: > Note: In the future more global options can be made |global-local|. Using ":setlocal" on a global option might work differently then. - *option-value-function* Some options ('completefunc', 'omnifunc', 'operatorfunc', 'quickfixtextfunc', 'tagfunc' and 'thesaurusfunc') are set to a function name or a function @@ -401,20 +447,15 @@ the system, mostly it is something like 256 or 1024 characters. ============================================================================== 2. Automatically setting options *auto-setting* -Besides changing options with the ":set" command, there are three alternatives -to set options automatically for one or more files: - -1. When starting Vim initializations are read from various places. See - |initialization|. Most of them are performed for all editing sessions, - and some of them depend on the directory where Vim is started. - You can create an initialization file with |:mkvimrc|, |:mkview| and - |:mksession|. -2. If you start editing a new file, the automatic commands are executed. - This can be used to set options for files matching a particular pattern and - many other things. See |autocommand|. -3. If you start editing a new file, and the 'modeline' option is on, a - number of lines at the beginning and end of the file are checked for - modelines. This is explained here. +Besides changing options with the ":set" command, you can set options +automatically in various ways: + +1. With a |config| file or a |startup| argument. You can create an + initialization file with |:mkvimrc|, |:mkview| and |:mksession|. +2. |autocommand|s executed when you edit a file. +3. ".nvim.lua" files in the current directory, if 'exrc' is enabled. +4. |editorconfig| in the current buffer's directory or ancestors. +5. 'modeline' settings found at the beginning or end of the file. See below. *modeline* *vim:* *vi:* *ex:* *E520* There are two forms of modelines. The first form: @@ -580,16 +621,6 @@ supported use something like this: > *E355* A jump table for the options with a short description can be found at |Q_op|. - *'aleph'* *'al'* *aleph* *Aleph* -'aleph' 'al' number (default 224) - global - The ASCII code for the first letter of the Hebrew alphabet. The - routine that maps the keyboard in Hebrew mode, both in Insert mode - (when hkmap is set) and on the command-line (when hitting CTRL-_) - outputs the Hebrew characters in the range [aleph..aleph+26]. - aleph=128 applies to PC code, and aleph=224 applies to ISO 8859-8. - See |rileft.txt|. - *'allowrevins'* *'ari'* *'noallowrevins'* *'noari'* 'allowrevins' 'ari' boolean (default off) global @@ -599,7 +630,7 @@ A jump table for the options with a short description can be found at |Q_op|. 'revins'. *'ambiwidth'* *'ambw'* -'ambiwidth' 'ambw' string (default: "single") +'ambiwidth' 'ambw' string (default "single") global Tells Vim what to do with characters with East Asian Width Class Ambiguous (such as Euro, Registered Sign, Copyright Sign, Greek @@ -632,18 +663,8 @@ A jump table for the options with a short description can be found at |Q_op|. set to one of CJK locales. See Unicode Standard Annex #11 (https://www.unicode.org/reports/tr11). - *'autochdir'* *'acd'* *'noautochdir'* *'noacd'* -'autochdir' 'acd' boolean (default off) - global - When on, Vim will change the current working directory whenever you - open a file, switch buffers, delete a buffer or open/close a window. - It will change to the directory containing the file which was opened - or selected. When a buffer has no name it also has no directory, thus - the current directory won't change when navigating to it. - Note: When this option is on some plugins may not work. - *'arabic'* *'arab'* *'noarabic'* *'noarab'* -'arabic' 'arab' boolean (default off) +'arabic' 'arab' boolean (default off) local to window This option can be set to start editing Arabic text. Setting this option will: @@ -660,9 +681,8 @@ A jump table for the options with a short description can be found at |Q_op|. option). Also see |arabic.txt|. - *'arabicshape'* *'arshape'* - *'noarabicshape'* *'noarshape'* -'arabicshape' 'arshape' boolean (default on) + *'arabicshape'* *'arshape'* *'noarabicshape'* *'noarshape'* +'arabicshape' 'arshape' boolean (default on) global When on and 'termbidi' is off, the required visual character corrections that need to take place for displaying the Arabic language @@ -677,6 +697,16 @@ A jump table for the options with a short description can be found at |Q_op|. Arabic is a complex language which requires other settings, for further details see |arabic.txt|. + *'autochdir'* *'acd'* *'noautochdir'* *'noacd'* +'autochdir' 'acd' boolean (default off) + global + When on, Vim will change the current working directory whenever you + open a file, switch buffers, delete a buffer or open/close a window. + It will change to the directory containing the file which was opened + or selected. When a buffer has no name it also has no directory, thus + the current directory won't change when navigating to it. + Note: When this option is on some plugins may not work. + *'autoindent'* *'ai'* *'noautoindent'* *'noai'* 'autoindent' 'ai' boolean (default on) local to buffer @@ -691,13 +721,8 @@ A jump table for the options with a short description can be found at |Q_op|. line. When 'smartindent' or 'cindent' is on the indent is changed in a different way. - The 'autoindent' option is reset when the 'paste' option is set and - restored when 'paste' is reset. - {small difference from Vi: After the indent is deleted when typing - <Esc> or <CR>, the cursor position when moving up or down is after the - deleted indent; Vi puts the cursor somewhere in the deleted indent}. - *'autoread'* *'ar'* *'noautoread'* *'noar'* + *'autoread'* *'ar'* *'noautoread'* *'noar'* 'autoread' 'ar' boolean (default on) global or local to buffer |global-local| When a file has been detected to have been changed outside of Vim and @@ -709,7 +734,8 @@ A jump table for the options with a short description can be found at |Q_op|. using the global value: > :set autoread< < - *'autowrite'* *'aw'* *'noautowrite'* *'noaw'* + + *'autowrite'* *'aw'* *'noautowrite'* *'noaw'* 'autowrite' 'aw' boolean (default off) global Write the contents of the file, if it has been modified, on each @@ -723,8 +749,11 @@ A jump table for the options with a short description can be found at |Q_op|. 'autowriteall' for that. Some buffers will not be written, specifically when 'buftype' is "nowrite", "nofile", "terminal" or "prompt". + USE WITH CARE: If you make temporary changes to a buffer that you + don't want to be saved this option may cause it to be saved anyway. + Renaming the buffer with ":file {name}" may help avoid this. - *'autowriteall'* *'awa'* *'noautowriteall'* *'noawa'* + *'autowriteall'* *'awa'* *'noautowriteall'* *'noawa'* 'autowriteall' 'awa' boolean (default off) global Like 'autowrite', but also used for commands ":edit", ":enew", ":quit", @@ -732,7 +761,7 @@ A jump table for the options with a short description can be found at |Q_op|. Setting this option also implies that Vim behaves like 'autowrite' has been set. - *'background'* *'bg'* + *'background'* *'bg'* 'background' 'bg' string (default "dark") global When set to "dark" or "light", adjusts the default color groups for @@ -762,7 +791,7 @@ A jump table for the options with a short description can be found at |Q_op|. option, you must load syntax.vim again to see the result. This can be done with ":syntax on". - *'backspace'* *'bs'* + *'backspace'* *'bs'* 'backspace' 'bs' string (default "indent,eol,start") global Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert @@ -779,13 +808,6 @@ A jump table for the options with a short description can be found at |Q_op|. When the value is empty, Vi compatible backspacing is used, none of the ways mentioned for the items above are possible. - For backwards compatibility with version 5.4 and earlier: - value effect ~ - 0 same as ":set backspace=" (Vi compatible) - 1 same as ":set backspace=indent,eol" - 2 same as ":set backspace=indent,eol,start" - 3 same as ":set backspace=indent,eol,nostop" - *'backup'* *'bk'* *'nobackup'* *'nobk'* 'backup' 'bk' boolean (default off) global @@ -801,7 +823,7 @@ A jump table for the options with a short description can be found at |Q_op|. oldest version of a file. *'backupcopy'* *'bkc'* -'backupcopy' 'bkc' string (default: "auto") +'backupcopy' 'bkc' string (default "auto") global or local to buffer |global-local| When writing a file and a backup is made, this option tells how it's done. This is a comma-separated list of words. @@ -897,8 +919,7 @@ A jump table for the options with a short description can be found at |Q_op|. - Careful with '\' characters, type one before a space, type two to get one in the option (see |option-backslash|), for example: > :set bdir=c:\\tmp,\ dir\\,with\\,commas,\\\ dir\ with\ spaces -< - For backwards compatibility with Vim version 3.0 a '>' at the start - of the option is removed. +< See also 'backup' and 'writebackup' options. If you want to hide your backup files on Unix, consider this value: > :set backupdir=./.backup,~/.backup,.,/tmp @@ -910,7 +931,7 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'backupext'* *'bex'* *E589* + *'backupext'* *'bex'* *E589* 'backupext' 'bex' string (default "~") global String which is appended to a file name to make the name of the @@ -918,7 +939,7 @@ A jump table for the options with a short description can be found at |Q_op|. accidentally overwriting existing files with a backup file. You might prefer using ".bak", but make sure that you don't have files with ".bak" that you want to keep. - Only normal file name characters can be used; "/\*?[|<>" are illegal. + Only normal file name characters can be used; `/\*?[|<>` are illegal. If you like to keep a lot of backups, you could use a BufWritePre autocommand to change 'backupext' just before writing the file to @@ -927,9 +948,9 @@ A jump table for the options with a short description can be found at |Q_op|. < Use 'backupdir' to put the backup in a different directory. *'backupskip'* *'bsk'* -'backupskip' 'bsk' string (default: "$TMPDIR/*,$TMP/*,$TEMP/*" - Unix: "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*" - Mac: "/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*") +'backupskip' 'bsk' string (default "$TMPDIR/*,$TMP/*,$TEMP/*" + Unix: "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*" + Mac: "/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*") global A list of file patterns. When one of the patterns matches with the name of the file which is written, no backup file is created. Both @@ -945,7 +966,7 @@ A jump table for the options with a short description can be found at |Q_op|. backups if you don't care about losing the file. Note that environment variables are not expanded. If you want to use - $HOME you must expand it explicitly, e.g.: > + $HOME you must expand it explicitly, e.g.: >vim :let &backupskip = escape(expand('$HOME'), '\') .. '/tmp/*' < Note that the default also makes sure that "crontab -e" works (when a @@ -990,7 +1011,7 @@ A jump table for the options with a short description can be found at |Q_op|. indicate that an error occurred. It can be silenced by adding the "error" keyword. - *'binary'* *'bin'* *'nobinary'* *'nobin'* + *'binary'* *'bin'* *'nobinary'* *'nobin'* 'binary' 'bin' boolean (default off) local to buffer This option should be set before editing a binary file. You can also @@ -1020,7 +1041,7 @@ A jump table for the options with a short description can be found at |Q_op|. the last line if there is none; this would make the file longer). See the 'endofline' option. - *'bomb'* *'nobomb'* + *'bomb'* *'nobomb'* 'bomb' boolean (default off) local to buffer When writing a file and the following conditions are met, a BOM (Byte @@ -1046,14 +1067,14 @@ A jump table for the options with a short description can be found at |Q_op|. break if 'linebreak' is on. Only works for ASCII characters. *'breakindent'* *'bri'* *'nobreakindent'* *'nobri'* -'breakindent' 'bri' boolean (default off) +'breakindent' 'bri' boolean (default off) local to window Every wrapped line will continue visually indented (same amount of space as the beginning of that line), thus preserving horizontal blocks of text. - *'breakindentopt'* *'briopt'* -'breakindentopt' 'briopt' string (default empty) + *'breakindentopt'* *'briopt'* +'breakindentopt' 'briopt' string (default "") local to window Settings for 'breakindent'. It can consist of the following optional items and must be separated by a comma: @@ -1084,7 +1105,7 @@ A jump table for the options with a short description can be found at |Q_op|. (default: off) *'browsedir'* *'bsdir'* -'browsedir' 'bsdir' string (default: "last") +'browsedir' 'bsdir' string (default "last") global Which directory to use for the file browser: last Use same directory as with last file browser, where a @@ -1094,8 +1115,8 @@ A jump table for the options with a short description can be found at |Q_op|. {path} Use the specified directory *'bufhidden'* *'bh'* -'bufhidden' 'bh' string (default: "") - local to buffer +'bufhidden' 'bh' string (default "") + local to buffer |local-noglobal| This option specifies what happens when a buffer is no longer displayed in a window: <empty> follow the global 'hidden' option @@ -1117,7 +1138,7 @@ A jump table for the options with a short description can be found at |Q_op|. special kinds of buffers. See |special-buffers|. *'buflisted'* *'bl'* *'nobuflisted'* *'nobl'* *E85* -'buflisted' 'bl' boolean (default: on) +'buflisted' 'bl' boolean (default on) local to buffer When this option is set, the buffer shows up in the buffer list. If it is reset it is not used for ":bnext", "ls", the Buffers menu, etc. @@ -1126,8 +1147,8 @@ A jump table for the options with a short description can be found at |Q_op|. But not when moving to a buffer with ":buffer". *'buftype'* *'bt'* *E382* -'buftype' 'bt' string (default: "") - local to buffer +'buftype' 'bt' string (default "") + local to buffer |local-noglobal| The value of this option specifies the type of a buffer: <empty> normal buffer acwrite buffer will always be written with |BufWriteCmd|s @@ -1174,7 +1195,7 @@ A jump table for the options with a short description can be found at |Q_op|. |FileWriteCmd| or |FileAppendCmd| autocommands. *'casemap'* *'cmp'* -'casemap' 'cmp' string (default: "internal,keepascii") +'casemap' 'cmp' string (default "internal,keepascii") global Specifies details about changing the case of letters. It may contain these words, separated by a comma: @@ -1186,16 +1207,18 @@ A jump table for the options with a short description can be found at |Q_op|. case mapping, the current locale is not effective. This probably only matters for Turkish. - *'cdhome'* *'cdh'* -'cdhome' 'cdh' boolean (default: off) + *'cdhome'* *'cdh'* *'nocdhome'* *'nocdh'* +'cdhome' 'cdh' boolean (default off) global When on, |:cd|, |:tcd| and |:lcd| without an argument changes the current working directory to the |$HOME| directory like in Unix. When off, those commands just print the current directory name. On Unix this option has no effect. + This option cannot be set from a |modeline| or in the |sandbox|, for + security reasons. - *'cdpath'* *'cd'* *E344* *E346* -'cdpath' 'cd' string (default: equivalent to $CDPATH or ",,") + *'cdpath'* *'cd'* *E344* *E346* +'cdpath' 'cd' string (default equivalent to $CDPATH or ",,") global This is a list of directories which will be searched when using the |:cd|, |:tcd| and |:lcd| commands, provided that the directory being @@ -1213,8 +1236,8 @@ A jump table for the options with a short description can be found at |Q_op|. security reasons. (parts of 'cdpath' can be passed to the shell to expand file names). - *'cedit'* -'cedit' string (default: CTRL-F) + *'cedit'* +'cedit' string (default CTRL-F) global The key used in Command-line Mode to open the command-line window. Only non-printable keys are allowed. @@ -1225,15 +1248,15 @@ A jump table for the options with a short description can be found at |Q_op|. < |Nvi| also has this option, but it only uses the first character. See |cmdwin|. - *'channel'* -'channel' number (default: 0) + *'channel'* +'channel' number (default 0) local to buffer |channel| connected to the buffer, or 0 if no channel is connected. In a |:terminal| buffer this is the terminal channel. Read-only. *'charconvert'* *'ccv'* *E202* *E214* *E513* -'charconvert' 'ccv' string (default "") +'charconvert' 'ccv' string (default "") global An expression that is used for character encoding conversion. It is evaluated when a file that is to be read or has been written has a @@ -1268,7 +1291,7 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'cindent'* *'cin'* *'nocindent'* *'nocin'* + *'cindent'* *'cin'* *'nocindent'* *'nocin'* 'cindent' 'cin' boolean (default off) local to buffer Enables automatic C program indenting. See 'cinkeys' to set the keys @@ -1281,9 +1304,8 @@ A jump table for the options with a short description can be found at |Q_op|. See |C-indenting|. When you don't like the way 'cindent' works, try the 'smartindent' option or 'indentexpr'. - This option is not used when 'paste' is set. - *'cinkeys'* *'cink'* + *'cinkeys'* *'cink'* 'cinkeys' 'cink' string (default "0{,0},0),0],:,0#,!^F,o,O,e") local to buffer A list of keys that, when typed in Insert mode, cause reindenting of @@ -1299,6 +1321,14 @@ A jump table for the options with a short description can be found at |Q_op|. program. See |cinoptions-values| for the values of this option, and |C-indenting| for info on C indenting in general. + *'cinscopedecls'* *'cinsd'* +'cinscopedecls' 'cinsd' string (default "public,protected,private") + local to buffer + Keywords that are interpreted as a C++ scope declaration by |cino-g|. + Useful e.g. for working with the Qt framework that defines additional + scope declarations "signals", "public slots" and "private slots": > + set cinscopedecls+=signals,public\ slots,private\ slots +< *'cinwords'* *'cinw'* 'cinwords' 'cinw' string (default "if,else,while,do,for,switch") @@ -1310,15 +1340,7 @@ A jump table for the options with a short description can be found at |Q_op|. matter, include the keyword both the uppercase and lowercase: "if,If,IF". - *'cinscopedecls'* *'cinsd'* -'cinscopedecls' 'cinsd' string (default "public,protected,private") - local to buffer - Keywords that are interpreted as a C++ scope declaration by |cino-g|. - Useful e.g. for working with the Qt framework that defines additional - scope declarations "signals", "public slots" and "private slots": > - set cinscopedecls+=signals,public\ slots,private\ slots - -< *'clipboard'* *'cb'* + *'clipboard'* *'cb'* 'clipboard' 'cb' string (default "") global This option is a list of comma-separated names. @@ -1342,11 +1364,11 @@ A jump table for the options with a short description can be found at |Q_op|. register. When "unnamed" is also included to the option, yank and delete operations (but not put) will additionally copy the text into register - '*'. See |clipboard|. + "*". See |clipboard|. *'cmdheight'* *'ch'* 'cmdheight' 'ch' number (default 1) - global or local to tab page + global or local to tab page |global-local| Number of screen lines to use for the command-line. Helps avoiding |hit-enter| prompts. The value of this option is stored with the tab page, so that each tab @@ -1377,7 +1399,7 @@ A jump table for the options with a short description can be found at |Q_op|. The screen column can be an absolute number, or a number preceded with '+' or '-', which is added to or subtracted from 'textwidth'. > - :set cc=+1 " highlight column after 'textwidth' + :set cc=+1 " highlight column after 'textwidth' :set cc=+1,+2,+3 " highlight three columns after 'textwidth' :hi ColorColumn ctermbg=lightgrey guibg=lightgrey < @@ -1401,22 +1423,21 @@ A jump table for the options with a short description can be found at |Q_op|. < Minimum value is 12, maximum value is 10000. *'comments'* *'com'* *E524* *E525* -'comments' 'com' string (default - "s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-") +'comments' 'com' string (default "s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-,fb:•") local to buffer A comma-separated list of strings that can start a comment line. See |format-comments|. See |option-backslash| about using backslashes to insert a space. *'commentstring'* *'cms'* *E537* -'commentstring' 'cms' string (default "/*%s*/") +'commentstring' 'cms' string (default "") local to buffer A template for a comment. The "%s" in the value is replaced with the - comment text. Currently only used to add markers for folding, see - |fold-marker|. + comment text. For example, C uses "/*%s*/". Currently only used to + add markers for folding, see |fold-marker|. *'complete'* *'cpt'* *E535* -'complete' 'cpt' string (default: ".,w,b,u,t") +'complete' 'cpt' string (default ".,w,b,u,t") local to buffer This option specifies how keyword completion |ins-completion| works when CTRL-P or CTRL-N are used. It is also used for whole-line @@ -1440,6 +1461,7 @@ A jump table for the options with a short description can be found at |Q_op|. |i_CTRL-X_CTRL-D| ] tag completion t same as "]" + f scan the buffer names (as opposed to buffer contents) Unloaded buffers are not loaded, thus their autocmds |:autocmd| are not executed, this may lead to unexpected completions from some files @@ -1451,7 +1473,7 @@ A jump table for the options with a short description can be found at |Q_op|. |i_CTRL-X_CTRL-I|, tags |i_CTRL-X_CTRL-]| and normal expansions). *'completefunc'* *'cfu'* -'completefunc' 'cfu' string (default: empty) +'completefunc' 'cfu' string (default "") local to buffer This option specifies a function to be used for Insert mode completion with CTRL-X CTRL-U. |i_CTRL-X_CTRL-U| @@ -1462,23 +1484,8 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'completeslash'* *'csl'* -'completeslash' 'csl' string (default: "") - local to buffer - {only for MS-Windows} - When this option is set it overrules 'shellslash' for completion: - - When this option is set to "slash", a forward slash is used for path - completion in insert mode. This is useful when editing HTML tag, or - Makefile with 'noshellslash' on MS-Windows. - - When this option is set to "backslash", backslash is used. This is - useful when editing a batch file with 'shellslash' set on MS-Windows. - - When this option is empty, same character is used as for - 'shellslash'. - For Insert mode completion the buffer-local value is used. For - command line completion the global value is used. - *'completeopt'* *'cot'* -'completeopt' 'cot' string (default: "menu,preview") +'completeopt' 'cot' string (default "menu,preview") global A comma-separated list of options for Insert mode completion |ins-completion|. The supported values are: @@ -1509,9 +1516,23 @@ A jump table for the options with a short description can be found at |Q_op|. select one from the menu. Only works in combination with "menu" or "menuone". + *'completeslash'* *'csl'* +'completeslash' 'csl' string (default "") + local to buffer + only for MS-Windows + When this option is set it overrules 'shellslash' for completion: + - When this option is set to "slash", a forward slash is used for path + completion in insert mode. This is useful when editing HTML tag, or + Makefile with 'noshellslash' on MS-Windows. + - When this option is set to "backslash", backslash is used. This is + useful when editing a batch file with 'shellslash' set on MS-Windows. + - When this option is empty, same character is used as for + 'shellslash'. + For Insert mode completion the buffer-local value is used. For + command line completion the global value is used. - *'concealcursor'* *'cocu'* -'concealcursor' 'cocu' string (default: "") + *'concealcursor'* *'cocu'* +'concealcursor' 'cocu' string (default "") local to window Sets the modes in which text in the cursor line can also be concealed. When the current mode is listed then concealing happens just like in @@ -1529,9 +1550,8 @@ A jump table for the options with a short description can be found at |Q_op|. Keep in mind that the cursor position is not always where it's displayed. E.g., when moving vertically it may change column. - *'conceallevel'* *'cole'* -'conceallevel' 'cole' number (default 0) +'conceallevel' 'cole' number (default 0) local to window Determine how text with the "conceal" syntax attribute |:syn-conceal| is shown: @@ -1553,7 +1573,7 @@ A jump table for the options with a short description can be found at |Q_op|. option. *'confirm'* *'cf'* *'noconfirm'* *'nocf'* -'confirm' 'cf' boolean (default off) +'confirm' 'cf' boolean (default off) global When 'confirm' is on, certain operations that would normally fail because of unsaved changes to a buffer, e.g. ":q" and ":e", @@ -1578,7 +1598,7 @@ A jump table for the options with a short description can be found at |Q_op|. See 'preserveindent'. *'cpoptions'* *'cpo'* *cpo* -'cpoptions' 'cpo' string (default: "aABceFs_") +'cpoptions' 'cpo' string (default "aABceFs_") global A sequence of single character flags. When a character is present this indicates Vi-compatible behavior. This is used for things where @@ -1812,7 +1832,7 @@ A jump table for the options with a short description can be found at |Q_op|. whitespace following the word in the motion. *'cursorbind'* *'crb'* *'nocursorbind'* *'nocrb'* -'cursorbind' 'crb' boolean (default off) +'cursorbind' 'crb' boolean (default off) local to window When this option is set, as the cursor in the current window moves other cursorbound windows (windows that also have @@ -1822,7 +1842,6 @@ A jump table for the options with a short description can be found at |Q_op|. inserted and deleted lines (though not characters within a line) are taken into account. - *'cursorcolumn'* *'cuc'* *'nocursorcolumn'* *'nocuc'* 'cursorcolumn' 'cuc' boolean (default off) local to window @@ -1843,9 +1862,8 @@ A jump table for the options with a short description can be found at |Q_op|. When Visual mode is active the highlighting isn't used to make it easier to see the selected text. - - *'cursorlineopt'* *'culopt'* -'cursorlineopt' 'culopt' string (default: "number,line") + *'cursorlineopt'* *'culopt'* +'cursorlineopt' 'culopt' string (default "both") local to window Comma-separated list of settings for how 'cursorline' is displayed. Valid values: @@ -1861,8 +1879,7 @@ A jump table for the options with a short description can be found at |Q_op|. "line" and "screenline" cannot be used together. - - *'debug'* + *'debug'* 'debug' string (default "") global These values can be used: @@ -1877,17 +1894,16 @@ A jump table for the options with a short description can be found at |Q_op|. 'indentexpr'. *'define'* *'def'* -'define' 'def' string (default "^\s*#\s*define") +'define' 'def' string (default "") global or local to buffer |global-local| Pattern to be used to find a macro definition. It is a search pattern, just like for the "/" command. This option is used for the commands like "[i" and "[d" |include-search|. The 'isident' option is - used to recognize the defined name after the match: + used to recognize the defined name after the match: > {match with 'define'}{non-ID chars}{defined name}{non-ID char} - See |option-backslash| about inserting backslashes to include a space +< See |option-backslash| about inserting backslashes to include a space or backslash. - The default value is for C programs. For C++ this value would be - useful, to include const type declarations: > + For C++ this value would be useful, to include const type declarations: > ^\(#\s*define\|[a-z]*\s*const\s*[a-z]*\) < You can also use "\ze" just before the name and continue the pattern to check what is following. E.g. for Javascript, if a function is @@ -1901,7 +1917,7 @@ A jump table for the options with a short description can be found at |Q_op|. < *'delcombine'* *'deco'* *'nodelcombine'* *'nodeco'* -'delcombine' 'deco' boolean (default off) +'delcombine' 'deco' boolean (default off) global If editing Unicode and this option is set, backspace and Normal mode "x" delete each combining character on its own. When it is off (the @@ -1939,13 +1955,13 @@ A jump table for the options with a short description can be found at |Q_op|. uses another default. Backticks cannot be used in this option for security reasons. - *'diff'* *'nodiff'* + *'diff'* *'nodiff'* 'diff' boolean (default off) local to window Join the current window in the group of windows that shows differences between files. See |diff-mode|. - *'dex'* *'diffexpr'* + *'diffexpr'* *'dex'* 'diffexpr' 'dex' string (default "") global Expression which is evaluated to obtain a diff file (either ed-style @@ -1953,7 +1969,7 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'dip'* *'diffopt'* + *'diffopt'* *'dip'* 'diffopt' 'dip' string (default "internal,filler,closeoff") global Option settings for diff mode. It can consist of the following items. @@ -1970,7 +1986,8 @@ A jump table for the options with a short description can be found at |Q_op|. When omitted a context of six lines is used. When using zero the context is actually one, since folds require a line in between, also - for a deleted line. + for a deleted line. Set it to a very large + value (999999) to disable folding completely. See |fold-diff|. iblank Ignore changes where lines are all blank. Adds @@ -2046,7 +2063,7 @@ A jump table for the options with a short description can be found at |Q_op|. hunks of up to 30 lines each, or a 3 buffer diff with hunks of up to 20 lines each. - algorithm:{text} Use the specified diff algorithm with the + algorithm:{text} Use the specified diff algorithm with the internal diff engine. Currently supported algorithms are: myers the default algorithm @@ -2061,7 +2078,8 @@ A jump table for the options with a short description can be found at |Q_op|. :set diffopt=internal,filler,foldcolumn:3 :set diffopt-=internal " do NOT use the internal diff parser < - *'digraph'* *'dg'* *'nodigraph'* *'nodg'* + + *'digraph'* *'dg'* *'nodigraph'* *'nodg'* 'digraph' 'dg' boolean (default off) global Enable the entering of digraphs in Insert mode with {char1} <BS> @@ -2074,7 +2092,7 @@ A jump table for the options with a short description can be found at |Q_op|. Possible items: - The swap file will be created in the first directory where this is - possible. If it is not possible in any directory, but last + possible. If it is not possible in any directory, but last directory listed in the option does not exist, it is created. - Empty means that no swap file will be used (recovery is impossible!) and no |E303| error will be given. @@ -2103,23 +2121,17 @@ A jump table for the options with a short description can be found at |Q_op|. - Careful with '\' characters, type one before a space, type two to get one in the option (see |option-backslash|), for example: > :set dir=c:\\tmp,\ dir\\,with\\,commas,\\\ dir\ with\ spaces -< - For backwards compatibility with Vim version 3.0 a '>' at the start - of the option is removed. - Using "." first in the list is recommended. This means that editing - the same file twice will result in a warning. Using "/tmp" on Unix is - discouraged: When the system crashes you lose the swap file. - "/var/tmp" is often not cleared when rebooting, thus is a better - choice than "/tmp". But others on the computer may be able to see the - files, and it can contain a lot of files, your swap files get lost in - the crowd. That is why a "tmp" directory in your home directory is - tried first. - The use of |:set+=| and |:set-=| is preferred when adding or removing - directories from the list. This avoids problems when a future version - uses another default. +< + Editing the same file twice will result in a warning. Using "/tmp" on + is discouraged: if the system crashes you lose the swap file. And + others on the computer may be able to see the files. + Use |:set+=| and |:set-=| when adding or removing directories from the + list, this avoids problems if the Nvim default is changed. + This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'display'* *'dy'* + *'display'* *'dy'* 'display' 'dy' string (default "lastline") global Change the way text is displayed. This is a comma-separated list of @@ -2148,8 +2160,8 @@ A jump table for the options with a short description can be found at |Q_op|. hor horizontally, height of windows is not affected both width and height of windows is affected - *'emoji'* *'emo'* *'noemoji'* *'noemo'* -'emoji' 'emo' boolean (default: on) + *'emoji'* *'emo'* *'noemoji'* *'noemo'* +'emoji' 'emo' boolean (default on) global When on all Unicode emoji characters are considered to be full width. This excludes "text emoji" characters, which are normally displayed as @@ -2157,8 +2169,9 @@ A jump table for the options with a short description can be found at |Q_op|. and it has been determined on trial-and-error basis. Use the |setcellwidths()| function to change the behavior. - *'encoding'* *'enc'* *E543* -'encoding' 'enc' + *'encoding'* *'enc'* +'encoding' 'enc' string (default "utf-8") + global String-encoding used internally and for |RPC| communication. Always UTF-8. @@ -2190,7 +2203,7 @@ A jump table for the options with a short description can be found at |Q_op|. be kept. But you can change it if you want to. See |eol-and-eof| for example settings. - *'equalalways'* *'ea'* *'noequalalways'* *'noea'* + *'equalalways'* *'ea'* *'noequalalways'* *'noea'* 'equalalways' 'ea' boolean (default on) global When on, all the windows are automatically made the same size after @@ -2229,7 +2242,7 @@ A jump table for the options with a short description can be found at |Q_op|. or do nothing. See 'belloff' to finetune when to ring the bell. *'errorfile'* *'ef'* -'errorfile' 'ef' string (default: "errors.err") +'errorfile' 'ef' string (default "errors.err") global Name of the errorfile for the QuickFix mode (see |:cf|). When the "-q" command-line argument is used, 'errorfile' is set to the @@ -2255,34 +2268,31 @@ A jump table for the options with a short description can be found at |Q_op|. Otherwise this is a comma-separated list of event names. Example: > :set ei=WinEnter,WinLeave < - *'expandtab'* *'et'* *'noexpandtab'* *'noet'* + + *'expandtab'* *'et'* *'noexpandtab'* *'noet'* 'expandtab' 'et' boolean (default off) local to buffer In Insert mode: Use the appropriate number of spaces to insert a <Tab>. Spaces are used in indents with the '>' and '<' commands and when 'autoindent' is on. To insert a real tab when 'expandtab' is on, use CTRL-V<Tab>. See also |:retab| and |ins-expandtab|. - This option is reset when the 'paste' option is set and restored when - the 'paste' option is reset. *'exrc'* *'ex'* *'noexrc'* *'noex'* -'exrc' 'ex' boolean (default off) +'exrc' 'ex' boolean (default off) global - Enables the reading of .nvim.lua, .nvimrc, and .exrc files in the current - directory. - - The file is only sourced if the user indicates the file is trusted. If - it is, the SHA256 hash of the file contents and the full path of the - file are persisted to a trust database. The user is only prompted - again if the file contents change. See |vim.secure.read()|. + Automatically execute .nvim.lua, .nvimrc, and .exrc files in the + current directory, if the file is in the |trust| list. Use |:trust| to + manage trusted files. See also |vim.secure.read()|. - Use |:trust| to manage the trusted file database. + Compare 'exrc' to |editorconfig|: + - 'exrc' can execute any code; editorconfig only specifies settings. + - 'exrc' is Nvim-specific; editorconfig works in other editors. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'fileencoding'* *'fenc'* *E213* -'fileencoding' 'fenc' string (default: "") + *'fileencoding'* *'fenc'* *E213* +'fileencoding' 'fenc' string (default "") local to buffer File-content encoding for the current buffer. Conversion is done with iconv() or as specified with 'charconvert'. @@ -2323,7 +2333,7 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be changed when 'modifiable' is off. *'fileencodings'* *'fencs'* -'fileencodings' 'fencs' string (default: "ucs-bom,utf-8,default,latin1") +'fileencodings' 'fencs' string (default "ucs-bom,utf-8,default,latin1") global This is a list of character encodings considered when starting to edit an existing file. When a file is read, Vim tries to use the first @@ -2372,9 +2382,8 @@ A jump table for the options with a short description can be found at |Q_op|. Setting this option does not have an effect until the next time a file is read. - *'fileformat'* *'ff'* -'fileformat' 'ff' string (Windows default: "dos", - Unix default: "unix") + *'fileformat'* *'ff'* +'fileformat' 'ff' string (default Windows: "dos", Unix: "unix") local to buffer This gives the <EOL> of the current buffer, which is used for reading/writing the buffer from/to a file: @@ -2392,10 +2401,8 @@ A jump table for the options with a short description can be found at |Q_op|. option is set, because the file would be different when written. This option cannot be changed when 'modifiable' is off. - *'fileformats'* *'ffs'* -'fileformats' 'ffs' string (default: - Win32: "dos,unix", - Unix: "unix,dos") + *'fileformats'* *'ffs'* +'fileformats' 'ffs' string (default Windows: "dos,unix", Unix: "unix,dos") global This gives the end-of-line (<EOL>) formats that will be tried when starting to edit a new buffer and when reading a file into an existing @@ -2445,14 +2452,14 @@ A jump table for the options with a short description can be found at |Q_op|. *'fileignorecase'* *'fic'* *'nofileignorecase'* *'nofic'* 'fileignorecase' 'fic' boolean (default on for systems where case in file - names is normally ignored) + names is normally ignored) global When set case is ignored when using file names and directories. See 'wildignorecase' for only ignoring case when doing completion. - *'filetype'* *'ft'* -'filetype' 'ft' string (default: "") - local to buffer + *'filetype'* *'ft'* +'filetype' 'ft' string (default "") + local to buffer |local-noglobal| When this option is set, the FileType autocommand event is triggered. All autocommands that match with the value of this option will be executed. Thus the value of 'filetype' is used in place of the file @@ -2473,7 +2480,7 @@ A jump table for the options with a short description can be found at |Q_op|. one dot may appear. This option is not copied to another buffer, independent of the 's' or 'S' flag in 'cpoptions'. - Only normal file name characters can be used, "/\*?[|<>" are illegal. + Only normal file name characters can be used, `/\*?[|<>` are illegal. *'fillchars'* *'fcs'* 'fillchars' 'fcs' string (default "") @@ -2484,8 +2491,8 @@ A jump table for the options with a short description can be found at |Q_op|. and the value of that item: item default Used for ~ - stl ' ' or '^' statusline of the current window - stlnc ' ' or '=' statusline of the non-current windows + stl ' ' statusline of the current window + stlnc ' ' statusline of the non-current windows wbr ' ' window bar horiz '─' or '-' horizontal separators |:split| horizup '┴' or '-' upwards facing horizontal separator @@ -2505,9 +2512,7 @@ A jump table for the options with a short description can be found at |Q_op|. colorcol ' ' character to display in the colorcolumn lastline '@' 'display' contains lastline/truncate - Any one that is omitted will fall back to the default. For "stl" and - "stlnc" the space will be used when there is highlighting, '^' or '=' - otherwise. + Any one that is omitted will fall back to the default. Note that "horiz", "horizup", "horizdown", "vertleft", "vertright" and "verthoriz" are only used when 'laststatus' is 3, since only vertical @@ -2518,10 +2523,8 @@ A jump table for the options with a short description can be found at |Q_op|. default to single-byte alternatives. Example: > - :set fillchars=stl:^,stlnc:=,vert:│,fold:·,diff:- -< This is similar to the default, except that these characters will also - be used when there is highlighting. - + :set fillchars=stl:\ ,stlnc:\ ,vert:│,fold:·,diff:- +< For the "stl", "stlnc", "foldopen", "foldclose" and "foldsep" items single-byte and multibyte characters are supported. But double-width characters are not supported. @@ -2556,25 +2559,25 @@ A jump table for the options with a short description can be found at |Q_op|. See |eol-and-eof| for example settings. *'foldclose'* *'fcl'* -'foldclose' 'fcl' string (default "") +'foldclose' 'fcl' string (default "") global When set to "all", a fold is closed when the cursor isn't in it and its level is higher than 'foldlevel'. Useful if you want folds to automatically close when moving out of them. *'foldcolumn'* *'fdc'* -'foldcolumn' 'fdc' string (default "0") +'foldcolumn' 'fdc' string (default "0") local to window When and how to draw the foldcolumn. Valid values are: "auto": resize to the minimum amount of folds to display. "auto:[1-9]": resize to accommodate multiple folds up to the selected level - 0: to disable foldcolumn + "0": to disable foldcolumn "[1-9]": to display a fixed number of columns See |folding|. *'foldenable'* *'fen'* *'nofoldenable'* *'nofen'* -'foldenable' 'fen' boolean (default on) +'foldenable' 'fen' boolean (default on) local to window When off, all folds are open. This option can be used to quickly switch between showing all text unfolded and viewing the text with @@ -2585,10 +2588,12 @@ A jump table for the options with a short description can be found at |Q_op|. See |folding|. *'foldexpr'* *'fde'* -'foldexpr' 'fde' string (default: "0") +'foldexpr' 'fde' string (default "0") local to window The expression used for when 'foldmethod' is "expr". It is evaluated - for each line to obtain its fold level. See |fold-expr|. + for each line to obtain its fold level. The context is set to the + script where 'foldexpr' was set, script-local items can be accessed. + See |fold-expr| for the usage. The expression will be evaluated in the |sandbox| if set from a modeline, see |sandbox-option|. @@ -2599,7 +2604,7 @@ A jump table for the options with a short description can be found at |Q_op|. evaluating 'foldexpr' |textlock|. *'foldignore'* *'fdi'* -'foldignore' 'fdi' string (default: "#") +'foldignore' 'fdi' string (default "#") local to window Used only when 'foldmethod' is "indent". Lines starting with characters in 'foldignore' will get their fold level from surrounding @@ -2607,7 +2612,7 @@ A jump table for the options with a short description can be found at |Q_op|. The default "#" works well for C programs. See |fold-indent|. *'foldlevel'* *'fdl'* -'foldlevel' 'fdl' number (default: 0) +'foldlevel' 'fdl' number (default 0) local to window Sets the fold level: Folds with a higher level will be closed. Setting this option to zero will close all folds. Higher numbers will @@ -2615,8 +2620,8 @@ A jump table for the options with a short description can be found at |Q_op|. This option is set by commands like |zm|, |zM| and |zR|. See |fold-foldlevel|. - *'foldlevelstart'* *'fdls'* -'foldlevelstart' 'fdls' number (default: -1) + *'foldlevelstart'* *'fdls'* +'foldlevelstart' 'fdls' number (default -1) global Sets 'foldlevel' when starting to edit another buffer in a window. Useful to always start editing with all folds closed (value zero), @@ -2628,8 +2633,8 @@ A jump table for the options with a short description can be found at |Q_op|. overrule the 'foldlevel' value for specific files. When the value is negative, it is not used. - *'foldmarker'* *'fmr'* *E536* -'foldmarker' 'fmr' string (default: "{{{,}}}") + *'foldmarker'* *'fmr'* *E536* +'foldmarker' 'fmr' string (default "{{{,}}}") local to window The start and end marker used when 'foldmethod' is "marker". There must be one comma, which separates the start and end marker. The @@ -2637,7 +2642,7 @@ A jump table for the options with a short description can be found at |Q_op|. See |fold-marker|. *'foldmethod'* *'fdm'* -'foldmethod' 'fdm' string (default: "manual") +'foldmethod' 'fdm' string (default "manual") local to window The kind of folding used for the current window. Possible values: |fold-manual| manual Folds are created manually. @@ -2648,7 +2653,7 @@ A jump table for the options with a short description can be found at |Q_op|. |fold-diff| diff Fold text that is not changed. *'foldminlines'* *'fml'* -'foldminlines' 'fml' number (default: 1) +'foldminlines' 'fml' number (default 1) local to window Sets the number of screen lines above which a fold can be displayed closed. Also for manually closed folds. With the default value of @@ -2659,15 +2664,14 @@ A jump table for the options with a short description can be found at |Q_op|. than 'foldminlines', a following "zc" may close a containing fold. *'foldnestmax'* *'fdn'* -'foldnestmax' 'fdn' number (default: 20) +'foldnestmax' 'fdn' number (default 20) local to window Sets the maximum nesting of folds for the "indent" and "syntax" methods. This avoids that too many folds will be created. Using more than 20 doesn't work, because the internal limit is 20. *'foldopen'* *'fdo'* -'foldopen' 'fdo' string (default: "block,hor,mark,percent,quickfix, - search,tag,undo") +'foldopen' 'fdo' string (default "block,hor,mark,percent,quickfix,search,tag,undo") global Specifies for which type of commands folds will be opened, if the command moves the cursor into a closed fold. It is a comma-separated @@ -2678,7 +2682,7 @@ A jump table for the options with a short description can be found at |Q_op|. item commands ~ all any - block "(", "{", "[[", "[{", etc. + block (, {, [[, [{, etc. hor horizontal movements: "l", "w", "fx", etc. insert any command in Insert mode jump far jumps: "G", "gg", etc. @@ -2701,10 +2705,12 @@ A jump table for the options with a short description can be found at |Q_op|. set the 'foldclose' option to "all". *'foldtext'* *'fdt'* -'foldtext' 'fdt' string (default: "foldtext()") +'foldtext' 'fdt' string (default "foldtext()") local to window An expression which is used to specify the text displayed for a closed - fold. See |fold-foldtext|. + fold. The context is set to the script where 'foldexpr' was set, + script-local items can be accessed. See |fold-foldtext| for the + usage. The expression will be evaluated in the |sandbox| if set from a modeline, see |sandbox-option|. @@ -2714,7 +2720,7 @@ A jump table for the options with a short description can be found at |Q_op|. evaluating 'foldtext' |textlock|. *'formatexpr'* *'fex'* -'formatexpr' 'fex' string (default "") +'formatexpr' 'fex' string (default "") local to buffer Expression which is evaluated to format a range of lines for the |gq| operator or automatic formatting (see 'formatoptions'). When this @@ -2745,15 +2751,17 @@ A jump table for the options with a short description can be found at |Q_op|. the script ID (|local-function|). Example: > set formatexpr=s:MyFormatExpr() set formatexpr=<SID>SomeFormatExpr() -< +< Otherwise, the expression is evaluated in the context of the script + where the option was set, thus script-local items are available. + The expression will be evaluated in the |sandbox| when set from a modeline, see |sandbox-option|. That stops the option from working, since changing the buffer text is not allowed. This option cannot be set in a modeline when 'modelineexpr' is off. NOTE: This option is set to "" when 'compatible' is set. - *'formatlistpat'* *'flp'* -'formatlistpat' 'flp' string (default: "^\s*\d\+[\]:.)}\t ]\s*") + *'formatlistpat'* *'flp'* +'formatlistpat' 'flp' string (default "^\s*\d\+[\]:.)}\t ]\s*") local to buffer A pattern that is used to recognize a list header. This is used for the "n" flag in 'formatoptions'. @@ -2765,18 +2773,18 @@ A jump table for the options with a short description can be found at |Q_op|. The default recognizes a number, followed by an optional punctuation character and white space. - *'formatoptions'* *'fo'* -'formatoptions' 'fo' string (default: "tcqj") + *'formatoptions'* *'fo'* +'formatoptions' 'fo' string (default "tcqj") local to buffer This is a sequence of letters which describes how automatic - formatting is to be done. See |fo-table|. When the 'paste' option is - on, no formatting is done (like 'formatoptions' is empty). Commas can - be inserted for readability. + formatting is to be done. + See |fo-table| for possible values and |gq| for how to format text. + Commas can be inserted for readability. To avoid problems with flags that are added in the future, use the "+=" and "-=" feature of ":set" |add-option-flags|. *'formatprg'* *'fp'* -'formatprg' 'fp' string (default "") +'formatprg' 'fp' string (default "") global or local to buffer |global-local| The name of an external program that will be used to format the lines selected with the |gq| operator. The program must take the input on @@ -2791,11 +2799,11 @@ A jump table for the options with a short description can be found at |Q_op|. security reasons. *'fsync'* *'fs'* *'nofsync'* *'nofs'* -'fsync' 'fs' boolean (default off) +'fsync' 'fs' boolean (default on) global When on, the OS function fsync() will be called after saving a file - (|:write|, |writefile()|, …), |swap-file| and |shada-file|. This - flushes the file to disk, ensuring that it is safely written. + (|:write|, |writefile()|, …), |swap-file|, |undo-persistence| and |shada-file|. + This flushes the file to disk, ensuring that it is safely written. Slow on some systems: writing buffers, quitting Nvim, and other operations may sometimes take a few seconds. @@ -2808,7 +2816,7 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'gdefault'* *'gd'* *'nogdefault'* *'nogd'* + *'gdefault'* *'gd'* *'nogdefault'* *'nogd'* 'gdefault' 'gd' boolean (default off) global When on, the ":substitute" flag 'g' is default on. This means that @@ -2834,7 +2842,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'grepprg'* *'gp'* 'grepprg' 'gp' string (default "grep -n ", - Unix: "grep -n $* /dev/null") + Unix: "grep -n $* /dev/null") global or local to buffer |global-local| Program to use for the |:grep| command. This option may contain '%' and '#' characters, which are expanded like when used in a command- @@ -2852,7 +2860,7 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'guicursor'* *'gcr'* *E545* *E546* *E548* *E549* + *'guicursor'* *'gcr'* *E545* *E546* *E548* *E549* 'guicursor' 'gcr' string (default "n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20") global Configures the cursor style for each mode. Works in the GUI and many @@ -2918,10 +2926,10 @@ A jump table for the options with a short description can be found at |Q_op|. n-v-c-sm:block,i-ci-ve:ver25-Cursor,r-cr-o:hor20 In Normal et al. modes, use a block cursor with the default colors defined by the host - terminal. In Insert-likes modes, use + terminal. In Insert-like modes, use a vertical bar cursor with colors from - "Cursor" highlight group. In Replace-likes - modes, use a underline cursor with + "Cursor" highlight group. In Replace-like + modes, use an underline cursor with default colors. i-ci:ver30-iCursor-blinkwait300-blinkon200-blinkoff150 In Insert and Command-line Insert mode, use a @@ -2938,8 +2946,8 @@ A jump table for the options with a short description can be found at |Q_op|. :highlight Cursor gui=reverse guifg=NONE guibg=NONE :highlight Cursor gui=NONE guifg=bg guibg=fg < - *'guifont'* *'gfn'* - *E235* *E596* + + *'guifont'* *'gfn'* *E235* *E596* 'guifont' 'gfn' string (default "") global This is a list of fonts which will be used for the GUI version of Vim. @@ -2999,6 +3007,7 @@ A jump table for the options with a short description can be found at |Q_op|. :set guifont=courier_new:h12:w5:b:cRUSSIAN :set guifont=Andale_Mono:h7.5:w4.5 < + *'guifontwide'* *'gfw'* *E231* *E533* *E534* 'guifontwide' 'gfw' string (default "") global @@ -3114,7 +3123,7 @@ A jump table for the options with a short description can be found at |Q_op|. removing GUI components. *'guitablabel'* *'gtl'* -'guitablabel' 'gtl' string (default empty) +'guitablabel' 'gtl' string (default "") global When non-empty describes the text to use in a label of the GUI tab pages line. When empty and when the result is empty Vim will use a @@ -3131,7 +3140,7 @@ A jump table for the options with a short description can be found at |Q_op|. used. *'guitabtooltip'* *'gtt'* -'guitabtooltip' 'gtt' string (default empty) +'guitabtooltip' 'gtt' string (default "") global When non-empty describes the text to use in a tooltip for the GUI tab pages line. When empty Vim will use a default tooltip. @@ -3142,7 +3151,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'helpfile'* *'hf'* 'helpfile' 'hf' string (default (MS-Windows) "$VIMRUNTIME\doc\help.txt" - (others) "$VIMRUNTIME/doc/help.txt") + (others) "$VIMRUNTIME/doc/help.txt") global Name of the main help file. All distributed help files should be placed together in one directory. Additionally, all "doc" directories @@ -3164,7 +3173,7 @@ A jump table for the options with a short description can be found at |Q_op|. set to 'helpheight'. Set to zero to disable. *'helplang'* *'hlg'* -'helplang' 'hlg' string (default: messages language or empty) +'helplang' 'hlg' string (default messages language or empty) global Comma-separated list of languages. Vim will use the first language for which the desired help can be found. The English help will always @@ -3179,7 +3188,7 @@ A jump table for the options with a short description can be found at |Q_op|. try to find the tag in the current language before using this option. See |help-translated|. - *'hidden'* *'hid'* *'nohidden'* *'nohid'* + *'hidden'* *'hid'* *'nohidden'* *'nohid'* 'hidden' 'hid' boolean (default on) global When off a buffer is unloaded (including loss of undo information) @@ -3198,28 +3207,14 @@ A jump table for the options with a short description can be found at |Q_op|. 'hidden' is set for one command with ":hide {command}" |:hide|. *'history'* *'hi'* -'history' 'hi' number (default: 10000) +'history' 'hi' number (default 10000) global A history of ":" commands, and a history of previous search patterns is remembered. This option decides how many entries may be stored in each of these histories (see |cmdline-editing|). The maximum value is 10000. - *'hkmap'* *'hk'* *'nohkmap'* *'nohk'* -'hkmap' 'hk' boolean (default off) - global - When on, the keyboard is mapped for the Hebrew character set. - Normally you would set 'allowrevins' and use CTRL-_ in insert mode to - toggle this option. See |rileft.txt|. - - *'hkmapp'* *'hkp'* *'nohkmapp'* *'nohkp'* -'hkmapp' 'hkp' boolean (default off) - global - When on, phonetic keyboard mapping is used. 'hkmap' must also be on. - This is useful if you have a non-Hebrew keyboard. - See |rileft.txt|. - - *'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'* + *'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'* 'hlsearch' 'hls' boolean (default on) global When there is a previous search pattern, highlight all its matches. @@ -3251,7 +3246,7 @@ A jump table for the options with a short description can be found at |Q_op|. Overridden by the 'iconstring' option. Only works if the terminal supports setting window icons. - *'iconstring'* + *'iconstring'* 'iconstring' string (default "") global When this option is not empty, it will be used for the icon text of @@ -3265,14 +3260,14 @@ A jump table for the options with a short description can be found at |Q_op|. *'ignorecase'* *'ic'* *'noignorecase'* *'noic'* 'ignorecase' 'ic' boolean (default off) global - Ignore case in search patterns. Also used when searching in the tags - file. + Ignore case in search patterns, |cmdline-completion|, when + searching in the tags file, and |expr-==|. Also see 'smartcase' and 'tagcase'. Can be overruled by using "\c" or "\C" in the pattern, see |/ignorecase|. - *'imcmdline'* *'imc'* *'noimcmdline'* *'noimc'* -'imcmdline' 'imc' boolean (default off) + *'imcmdline'* *'imc'* *'noimcmdline'* *'noimc'* +'imcmdline' 'imc' boolean (default off) global When set the Input Method is always on when starting to edit a command line, unless entering a search pattern (see 'imsearch' for that). @@ -3280,8 +3275,8 @@ A jump table for the options with a short description can be found at |Q_op|. English characters directly, e.g., when it's used to type accented characters with dead keys. - *'imdisable'* *'imd'* *'noimdisable'* *'noimd'* -'imdisable' 'imd' boolean (default off, on for some systems (SGI)) + *'imdisable'* *'imd'* *'noimdisable'* *'noimd'* +'imdisable' 'imd' boolean (default off, on for some systems (SGI)) global When set the Input Method is never used. This is useful to disable the IM when it doesn't work properly. @@ -3289,7 +3284,7 @@ A jump table for the options with a short description can be found at |Q_op|. may change in later releases. *'iminsert'* *'imi'* -'iminsert' 'imi' number (default 0) +'iminsert' 'imi' number (default 0) local to buffer Specifies whether :lmap or an Input Method (IM) is to be used in Insert mode. Valid values: @@ -3307,7 +3302,7 @@ A jump table for the options with a short description can be found at |Q_op|. It is also used for the argument of commands like "r" and "f". *'imsearch'* *'ims'* -'imsearch' 'ims' number (default -1) +'imsearch' 'ims' number (default -1) local to buffer Specifies whether :lmap or an Input Method (IM) is to be used when entering a search pattern. Valid values: @@ -3324,7 +3319,6 @@ A jump table for the options with a short description can be found at |Q_op|. *'inccommand'* *'icm'* 'inccommand' 'icm' string (default "nosplit") global - When nonempty, shows the effects of |:substitute|, |:smagic|, |:snomagic| and user commands with the |:command-preview| flag as you type. @@ -3340,12 +3334,11 @@ A jump table for the options with a short description can be found at |Q_op|. |Command-line-mode| is done. *'include'* *'inc'* -'include' 'inc' string (default "^\s*#\s*include") +'include' 'inc' string (default "") global or local to buffer |global-local| Pattern to be used to find an include command. It is a search - pattern, just like for the "/" command (See |pattern|). The default - value is for C programs. This option is used for the commands "[i", - "]I", "[d", etc. + pattern, just like for the "/" command (See |pattern|). This option + is used for the commands "[i", "]I", "[d", etc. Normally the 'isfname' option is used to recognize the file name that comes after the matched pattern. But if "\zs" appears in the pattern then the text matched from "\zs" to the end, or until "\ze" if it @@ -3372,9 +3365,11 @@ A jump table for the options with a short description can be found at |Q_op|. If the expression starts with s: or |<SID>|, then it is replaced with the script ID (|local-function|). Example: > - set includeexpr=s:MyIncludeExpr(v:fname) - set includeexpr=<SID>SomeIncludeExpr(v:fname) -< + setlocal includeexpr=s:MyIncludeExpr(v:fname) + setlocal includeexpr=<SID>SomeIncludeExpr(v:fname) +< Otherwise, the expression is evaluated in the context of the script + where the option was set, thus script-local items are available. + The expression will be evaluated in the |sandbox| when set from a modeline, see |sandbox-option|. This option cannot be set in a modeline when 'modelineexpr' is off. @@ -3382,7 +3377,7 @@ A jump table for the options with a short description can be found at |Q_op|. It is not allowed to change text or jump to another window while evaluating 'includeexpr' |textlock|. - *'incsearch'* *'is'* *'noincsearch'* *'nois'* + *'incsearch'* *'is'* *'noincsearch'* *'nois'* 'incsearch' 'is' boolean (default on) global While typing a search command, show where the pattern, as it was typed @@ -3426,15 +3421,17 @@ A jump table for the options with a short description can be found at |Q_op|. When this option is not empty, it overrules the 'cindent' and 'smartindent' indenting. When 'lisp' is set, this option is is only used when 'lispoptions' contains "expr:1". - When 'paste' is set this option is not used for indenting. The expression is evaluated with |v:lnum| set to the line number for which the indent is to be computed. The cursor is also in this line when the expression is evaluated (but it may be moved around). + If the expression starts with s: or |<SID>|, then it is replaced with the script ID (|local-function|). Example: > set indentexpr=s:MyIndentExpr() set indentexpr=<SID>SomeIndentExpr() -< +< Otherwise, the expression is evaluated in the context of the script + where the option was set, thus script-local items are available. + The expression must return the number of spaces worth of indent. It can return "-1" to keep the current indent (this means 'autoindent' is used for the indent). @@ -3456,7 +3453,6 @@ A jump table for the options with a short description can be found at |Q_op|. It is not allowed to change text or jump to another window while evaluating 'indentexpr' |textlock|. - *'indentkeys'* *'indk'* 'indentkeys' 'indk' string (default "0{,0},0),0],:,0#,!^F,o,O,e") local to buffer @@ -3479,8 +3475,8 @@ A jump table for the options with a short description can be found at |Q_op|. *'isfname'* *'isf'* 'isfname' 'isf' string (default for Windows: - "@,48-57,/,\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,=" - otherwise: "@,48-57,/,.,-,_,+,,,#,$,%,~,=") + "@,48-57,/,\,.,-,_,+,,,#,$,%,{,},[,],@-@,!,~,=" + otherwise: "@,48-57,/,.,-,_,+,,,#,$,%,~,=") global The characters specified by this option are included in file names and path names. Filenames are used for commands like "gf", "[i" and in @@ -3530,8 +3526,8 @@ A jump table for the options with a short description can be found at |Q_op|. *'isident'* *'isi'* 'isident' 'isi' string (default for Windows: - "@,48-57,_,128-167,224-235" - otherwise: "@,48-57,_,192-255") + "@,48-57,_,128-167,224-235" + otherwise: "@,48-57,_,192-255") global The characters given by this option are included in identifiers. Identifiers are used in recognizing environment variables and after a @@ -3544,7 +3540,7 @@ A jump table for the options with a short description can be found at |Q_op|. change 'iskeyword' instead. *'iskeyword'* *'isk'* -'iskeyword' 'isk' string (default: @,48-57,_,192-255) +'iskeyword' 'isk' string (default "@,48-57,_,192-255") local to buffer Keywords are used in searching and recognizing with many commands: "w", "*", "[i", etc. It is also used for "\k" in a |pattern|. See @@ -3553,14 +3549,14 @@ A jump table for the options with a short description can be found at |Q_op|. that is not white space or punctuation). For C programs you could use "a-z,A-Z,48-57,_,.,-,>". For a help file it is set to all non-blank printable characters except - '*', '"' and '|' (so that CTRL-] on a command finds the help for that + "*", '"' and '|' (so that CTRL-] on a command finds the help for that command). When the 'lisp' option is on the '-' character is always included. This option also influences syntax highlighting, unless the syntax uses |:syn-iskeyword|. *'isprint'* *'isp'* -'isprint' 'isp' string (default: "@,161-255") +'isprint' 'isp' string (default "@,161-255") global The characters given by this option are displayed directly on the screen. It is also used for "\p" in a |pattern|. The characters from @@ -3589,37 +3585,36 @@ A jump table for the options with a short description can be found at |Q_op|. Unprintable and zero-width Unicode characters are displayed as <xxxx>. There is no option to specify these characters. + *'joinspaces'* *'js'* *'nojoinspaces'* *'nojs'* +'joinspaces' 'js' boolean (default off) + global + Insert two spaces after a '.', '?' and '!' with a join command. + Otherwise only one space is inserted. + *'jumpoptions'* *'jop'* 'jumpoptions' 'jop' string (default "") global List of words that change the behavior of the |jumplist|. - stack Make the jumplist behave like the tagstack or like a - web browser. Relative location of entries in the - jumplist is preserved at the cost of discarding - subsequent entries when navigating backwards in the - jumplist and then jumping to a location. - |jumplist-stack| + stack Make the jumplist behave like the tagstack. + Relative location of entries in the jumplist is + preserved at the cost of discarding subsequent entries + when navigating backwards in the jumplist and then + jumping to a location. |jumplist-stack| view When moving through the jumplist, |changelist|, |alternate-file| or using |mark-motions| try to restore the |mark-view| in which the action occurred. - *'joinspaces'* *'js'* *'nojoinspaces'* *'nojs'* -'joinspaces' 'js' boolean (default off) - global - Insert two spaces after a '.', '?' and '!' with a join command. - Otherwise only one space is inserted. - - *'keymap'* *'kmp'* *E544* + *'keymap'* *'kmp'* 'keymap' 'kmp' string (default "") local to buffer Name of a keyboard mapping. See |mbyte-keymap|. Setting this option to a valid keymap name has the side effect of setting 'iminsert' to one, so that the keymap becomes effective. 'imsearch' is also set to one, unless it was -1 - Only normal file name characters can be used, "/\*?[|<>" are illegal. + Only normal file name characters can be used, `/\*?[|<>` are illegal. - *'keymodel'* *'km'* + *'keymodel'* *'km'* 'keymodel' 'km' string (default "") global List of comma-separated words, which enable special things that keys @@ -3630,9 +3625,8 @@ A jump table for the options with a short description can be found at |Q_op|. stopsel Using a not-shifted special key stops selection. Special keys in this context are the cursor keys, <End>, <Home>, <PageUp> and <PageDown>. - The 'keymodel' option is set by the |:behave| command. - *'keywordprg'* *'kp'* + *'keywordprg'* *'kp'* 'keywordprg' 'kp' string (default ":Man", Windows: ":help") global or local to buffer |global-local| Program to use for the |K| command. Environment variables are @@ -3693,7 +3687,7 @@ A jump table for the options with a short description can be found at |Q_op|. allowing to switch between mappings for different languages/encodings. Use a mapping to avoid having to type it each time! - *'langmenu'* *'lm'* + *'langmenu'* *'lm'* 'langmenu' 'lm' string (default "") global Language to use for menu translation. Tells which file is loaded @@ -3703,7 +3697,7 @@ A jump table for the options with a short description can be found at |Q_op|. matter what $LANG is set to: > :set langmenu=nl_NL.ISO_8859-1 < When 'langmenu' is empty, |v:lang| is used. - Only normal file name characters can be used, "/\*?[|<>" are illegal. + Only normal file name characters can be used, `/\*?[|<>` are illegal. If your $LANG is set to a non-English language but you do want to use the English menus: > :set langmenu=none @@ -3716,13 +3710,13 @@ A jump table for the options with a short description can be found at |Q_op|. < Warning: This deletes all menus that you defined yourself! *'langremap'* *'lrm'* *'nolangremap'* *'nolrm'* -'langremap' 'lrm' boolean (default off) +'langremap' 'lrm' boolean (default off) global When off, setting 'langmap' does not apply to characters resulting from a mapping. If setting 'langmap' disables some of your mappings, make sure this option is off. - *'laststatus'* *'ls'* + *'laststatus'* *'ls'* 'laststatus' 'ls' number (default 2) global The value of this option influences when the last window will have a @@ -3758,7 +3752,7 @@ A jump table for the options with a short description can be found at |Q_op|. Note that <Tab> characters after an <EOL> are mostly not displayed with the right amount of white space. - *'lines'* *E593* + *'lines'* *E593* 'lines' number (default 24 or terminal height) global Number of lines of the Vim window. @@ -3775,7 +3769,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'linespace'* *'lsp'* 'linespace' 'lsp' number (default 0) global - {only in the GUI} + only in the GUI Number of pixel lines inserted between characters. Useful if the font uses the full character cell height, making lines touch each other. When non-zero there is room for underlining. @@ -3795,7 +3789,6 @@ A jump table for the options with a short description can be found at |Q_op|. The '-' character is included in keyword characters. Redefines the "=" operator to use this same indentation algorithm rather than calling an external program if 'equalprg' is empty. - This option is not used when 'paste' is set. *'lispoptions'* *'lop'* 'lispoptions' 'lop' string (default "") @@ -3825,14 +3818,14 @@ A jump table for the options with a short description can be found at |Q_op|. The cursor is displayed at the start of the space a Tab character occupies, not at the end as usual in Normal mode. To get this cursor position while displaying Tabs with spaces, use: > - :set list lcs=tab:\ \ + :set list lcs=tab:\ \ < Note that list mode will also affect formatting (set with 'textwidth' or 'wrapmargin') when 'cpoptions' includes 'L'. See 'listchars' for changing the way tabs are displayed. *'listchars'* *'lcs'* -'listchars' 'lcs' string (default: "tab:> ,trail:-,nbsp:+") +'listchars' 'lcs' string (default "tab:> ,trail:-,nbsp:+") global or local to window |global-local| Strings to use in 'list' mode and for the |:list| command. It is a comma-separated list of string settings. @@ -3867,8 +3860,8 @@ A jump table for the options with a short description can be found at |Q_op|. are left blank. *lcs-multispace* multispace:c... - One or more characters to use cyclically to show for - multiple consecutive spaces. Overrides the "space" + One or more characters to use cyclically to show for + multiple consecutive spaces. Overrides the "space" setting, except for single spaces. When omitted, the "space" setting is used. For example, `:set listchars=multispace:---+` shows ten consecutive @@ -3931,7 +3924,7 @@ A jump table for the options with a short description can be found at |Q_op|. "precedes". |hl-Whitespace| for "nbsp", "space", "tab", "multispace", "lead" and "trail". - *'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'* + *'loadplugins'* *'lpl'* *'noloadplugins'* *'nolpl'* 'loadplugins' 'lpl' boolean (default on) global When on the plugin scripts are loaded when starting up |load-plugins|. @@ -3952,7 +3945,7 @@ A jump table for the options with a short description can be found at |Q_op|. when you want to |/\M|. *'makeef'* *'mef'* -'makeef' 'mef' string (default: "") +'makeef' 'mef' string (default "") global Name of the errorfile for the |:make| command (see |:make_makeprg|) and the |:grep| command. @@ -3966,7 +3959,7 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'makeencoding'* *'menc'* + *'makeencoding'* *'menc'* 'makeencoding' 'menc' string (default "") global or local to buffer |global-local| Encoding used for reading the output of external commands. When empty, @@ -3980,6 +3973,7 @@ A jump table for the options with a short description can be found at |Q_op|. setting to the system locale encoding. Example: > :set makeencoding=char " system locale is used < + *'makeprg'* *'mp'* 'makeprg' 'mp' string (default "make") global or local to buffer |global-local| @@ -4036,7 +4030,7 @@ A jump table for the options with a short description can be found at |Q_op|. command recursion, see |E169|. See also |:function|. - *'maxmapdepth'* *'mmd'* *E223* + *'maxmapdepth'* *'mmd'* *E223* 'maxmapdepth' 'mmd' number (default 1000) global Maximum number of times a mapping is done without resulting in a @@ -4077,9 +4071,9 @@ A jump table for the options with a short description can be found at |Q_op|. per word depends very much on how similar the words are, that's why this tuning is complicated. - There are three numbers, separated by commas: + There are three numbers, separated by commas: > {start},{inc},{added} - +< For most languages the uncompressed word tree fits in memory. {start} gives the amount of memory in Kbyte that can be used before any compression is done. It should be a bit smaller than the amount of @@ -4104,17 +4098,18 @@ A jump table for the options with a short description can be found at |Q_op|. < If you have less than 512 Mbyte |:mkspell| may fail for some languages, no matter what you set 'mkspellmem' to. - This option cannot be set from a |modeline| or in the |sandbox|. + This option cannot be set from a |modeline| or in the |sandbox|, for + security reasons. - *'modeline'* *'ml'* *'nomodeline'* *'noml'* -'modeline' 'ml' boolean (default: on (off for root)) + *'modeline'* *'ml'* *'nomodeline'* *'noml'* +'modeline' 'ml' boolean (default on (off for root)) local to buffer If 'modeline' is on 'modelines' gives the number of lines that is checked for set commands. If 'modeline' is off or 'modelines' is zero no lines are checked. See |modeline|. - *'modelineexpr'* *'mle'* *'nomodelineexpr'* *'nomle'* -'modelineexpr' 'mle' boolean (default: off) + *'modelineexpr'* *'mle'* *'nomodelineexpr'* *'nomle'* +'modelineexpr' 'mle' boolean (default off) global When on allow some options that are an expression to be set in the modeline. Check the option for whether it is affected by @@ -4129,8 +4124,8 @@ A jump table for the options with a short description can be found at |Q_op|. checked for set commands. If 'modeline' is off or 'modelines' is zero no lines are checked. See |modeline|. - *'modifiable'* *'ma'* *'nomodifiable'* *'noma'* - *E21* + + *'modifiable'* *'ma'* *'nomodifiable'* *'noma'* *E21* 'modifiable' 'ma' boolean (default on) local to buffer When off the buffer contents cannot be changed. The 'fileformat' and @@ -4139,7 +4134,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'modified'* *'mod'* *'nomodified'* *'nomod'* 'modified' 'mod' boolean (default off) - local to buffer + local to buffer |local-noglobal| When on, the buffer is considered to be modified. This option is set when: 1. A change was made to the text since it was last written. Using the @@ -4163,16 +4158,15 @@ A jump table for the options with a short description can be found at |Q_op|. when using "rA" on an "A". *'more'* *'nomore'* -'more' boolean (default: on) +'more' boolean (default on) global When on, listings pause when the whole screen is filled. You will get the |more-prompt|. When this option is off there are no pauses, the listing continues until finished. - *'mouse'* + *'mouse'* 'mouse' string (default "nvi") global - Enables mouse support. For example, to enable the mouse in Normal mode and Visual mode: > :set mouse=nv @@ -4210,22 +4204,7 @@ A jump table for the options with a short description can be found at |Q_op|. 'mousehide' hide mouse pointer while typing text 'selectmode' whether to start Select mode or Visual mode - The :behave command provides some "profiles" for mouse behavior. - *:behave* *:be* - :be[have] {model} Set behavior for mouse and selection. Valid - arguments are: - mswin MS-Windows behavior - xterm Xterm behavior - - Using ":behave" changes these options: - option mswin xterm ~ - 'selectmode' "mouse,key" "" - 'mousemodel' "popup" "extend" - 'keymodel' "startsel,stopsel" "" - 'selection' "exclusive" "inclusive" - - - *'mousefocus'* *'mousef'* *'nomousefocus'* *'nomousef'* + *'mousefocus'* *'mousef'* *'nomousefocus'* *'nomousef'* 'mousefocus' 'mousef' boolean (default off) global The window that the mouse pointer is on is automatically activated. @@ -4234,10 +4213,10 @@ A jump table for the options with a short description can be found at |Q_op|. default because it makes using the pull down menus a little goofy, as a pointer transit may activate a window unintentionally. - *'mousehide'* *'mh'* *'nomousehide'* *'nomh'* + *'mousehide'* *'mh'* *'nomousehide'* *'nomh'* 'mousehide' 'mh' boolean (default on) global - {only works in the GUI} + only in the GUI When on, the mouse pointer is hidden when characters are typed. The mouse pointer is restored when the mouse is moved. @@ -4292,10 +4271,8 @@ A jump table for the options with a short description can be found at |Q_op|. "g<LeftMouse>" is "<C-LeftMouse> (jump to tag under mouse click) "g<RightMouse>" is "<C-RightMouse> ("CTRL-T") - The 'mousemodel' option is set by the |:behave| command. - - *'mousemoveevent'* *'mousemev'* -'mousemoveevent' 'mousemev' boolean (default off) + *'mousemoveevent'* *'mousemev'* *'nomousemoveevent'* *'nomousemev'* +'mousemoveevent' 'mousemev' boolean (default off) global When on, mouse move events are delivered to the input queue and are available for mapping. The default, off, avoids the mouse movement @@ -4303,12 +4280,13 @@ A jump table for the options with a short description can be found at |Q_op|. Warning: Setting this option can make pending mappings to be aborted when the mouse is moved. - *'mousescroll'* + *'mousescroll'* *E5080* 'mousescroll' string (default "ver:3,hor:6") global This option controls the number of lines / columns to scroll by when - scrolling with a mouse. The option is a comma separated list of parts. - Each part consists of a direction and a count as follows: + scrolling with a mouse wheel (|scroll-mouse-wheel|). The option is + a comma-separated list. Each part consists of a direction and a count + as follows: direction:count,direction:count Direction is one of either "hor" or "ver". "hor" controls horizontal scrolling and "ver" controls vertical scrolling. Count sets the amount @@ -4325,7 +4303,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'mouseshape'* *'mouses'* *E547* 'mouseshape' 'mouses' string (default "i:beam,r:beam,s:updown,sd:cross, - m:no,ml:up-arrow,v:rightup-arrow") + m:no,ml:up-arrow,v:rightup-arrow") global This option tells Vim what the mouse pointer should look like in different modes. The option is a comma-separated list of parts, much @@ -4392,7 +4370,7 @@ A jump table for the options with a short description can be found at |Q_op|. Defines the maximum time in msec between two mouse clicks for the second click to be recognized as a multi click. - *'nrformats'* *'nf'* + *'nrformats'* *'nf'* 'nrformats' 'nf' string (default "bin,hex") local to buffer This defines what bases Vim will consider for numbers when using the @@ -4440,14 +4418,15 @@ A jump table for the options with a short description can be found at |Q_op|. 'nonu' 'nu' 'nonu' 'nu' 'nornu' 'nornu' 'rnu' 'rnu' -> + > |apple | 1 apple | 2 apple | 2 apple |pear | 2 pear | 1 pear | 1 pear |nobody | 3 nobody | 0 nobody |3 nobody |there | 4 there | 1 there | 1 there < + *'numberwidth'* *'nuw'* -'numberwidth' 'nuw' number (default: 4) +'numberwidth' 'nuw' number (default 4) local to window Minimal number of columns to use for the line number. Only relevant when the 'number' or 'relativenumber' option is set or printing lines @@ -4461,7 +4440,7 @@ A jump table for the options with a short description can be found at |Q_op|. The minimum value is 1, the maximum value is 20. *'omnifunc'* *'ofu'* -'omnifunc' 'ofu' string (default: empty) +'omnifunc' 'ofu' string (default "") local to buffer This option specifies a function to be used for Insert mode omni completion with CTRL-X CTRL-O. |i_CTRL-X_CTRL-O| @@ -4474,20 +4453,18 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - - *'opendevice'* *'odev'* *'noopendevice'* *'noodev'* + *'opendevice'* *'odev'* *'noopendevice'* *'noodev'* 'opendevice' 'odev' boolean (default off) global - {only for Windows} + only for Windows Enable reading and writing from devices. This may get Vim stuck on a device that can be opened but doesn't actually do the I/O. Therefore it is off by default. Note that on Windows editing "aux.h", "lpt1.txt" and the like also result in editing a device. - - *'operatorfunc'* *'opfunc'* -'operatorfunc' 'opfunc' string (default: empty) + *'operatorfunc'* *'opfunc'* +'operatorfunc' 'opfunc' string (default "") global This option specifies a function to be called by the |g@| operator. See |:map-operator| for more info and an example. The value can be @@ -4497,10 +4474,13 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'packpath'* *'pp'* -'packpath' 'pp' string (default: see 'runtimepath') - Directories used to find packages. See |packages| and |rtp-packages|. - + *'packpath'* *'pp'* +'packpath' 'pp' string (default see 'runtimepath') + global + Directories used to find packages. + See |packages| and |packages-runtimepath|. + This option cannot be set from a |modeline| or in the |sandbox|, for + security reasons. *'paragraphs'* *'para'* 'paragraphs' 'para' string (default "IPLPPPQPP TPHPLIPpLpItpplpipbp") @@ -4508,82 +4488,13 @@ A jump table for the options with a short description can be found at |Q_op|. Specifies the nroff macros that separate paragraphs. These are pairs of two letters (see |object-motions|). - *'paste'* *'nopaste'* -'paste' boolean (default off) - global - This option is obsolete; |bracketed-paste-mode| is built-in. - - Put Vim in Paste mode. This is useful if you want to cut or copy - some text from one window and paste it in Vim. This will avoid - unexpected effects. - Setting this option is useful when using Vim in a terminal, where Vim - cannot distinguish between typed text and pasted text. In the GUI, Vim - knows about pasting and will mostly do the right thing without 'paste' - being set. The same is true for a terminal where Vim handles the - mouse clicks itself. - This option is reset when starting the GUI. Thus if you set it in - your vimrc it will work in a terminal, but not in the GUI. Setting - 'paste' in the GUI has side effects: e.g., the Paste toolbar button - will no longer work in Insert mode, because it uses a mapping. - When the 'paste' option is switched on (also when it was already on): - - mapping in Insert mode and Command-line mode is disabled - - abbreviations are disabled - - 'autoindent' is reset - - 'expandtab' is reset - - 'hkmap' is reset - - 'revins' is reset - - 'ruler' is reset - - 'showmatch' is reset - - 'smarttab' is reset - - 'softtabstop' is set to 0 - - 'textwidth' is set to 0 - - 'wrapmargin' is set to 0 - - 'varsofttabstop' is made empty - These options keep their value, but their effect is disabled: - - 'cindent' - - 'formatoptions' is used like it is empty - - 'indentexpr' - - 'lisp' - - 'smartindent' - NOTE: When you start editing another file while the 'paste' option is - on, settings from the modelines or autocommands may change the - settings again, causing trouble when pasting text. You might want to - set the 'paste' option again. - When the 'paste' option is reset the mentioned options are restored to - the value before the moment 'paste' was switched from off to on. - Resetting 'paste' before ever setting it does not have any effect. - Since mapping doesn't work while 'paste' is active, you need to use - the 'pastetoggle' option to toggle the 'paste' option with some key. - - *'pastetoggle'* *'pt'* -'pastetoggle' 'pt' string (default "") - global - When non-empty, specifies the key sequence that toggles the 'paste' - option. This is like specifying a mapping: > - :map {keys} :set invpaste<CR> -< Where {keys} is the value of 'pastetoggle'. - The difference is that it will work even when 'paste' is set. - 'pastetoggle' works in Insert mode and Normal mode, but not in - Command-line mode. - Mappings are checked first, thus overrule 'pastetoggle'. However, - when 'paste' is on mappings are ignored in Insert mode, thus you can do - this: > - :map <F10> :set paste<CR> - :map <F11> :set nopaste<CR> - :imap <F10> <C-O>:set paste<CR> - :imap <F11> <nop> - :set pastetoggle=<F11> -< This will make <F10> start paste mode and <F11> stop paste mode. - Note that typing <F10> in paste mode inserts "<F10>", since in paste - mode everything is inserted literally, except the 'pastetoggle' key - sequence. - When the value has several bytes 'ttimeoutlen' applies. - - *'pex'* *'patchexpr'* + *'patchexpr'* *'pex'* 'patchexpr' 'pex' string (default "") global Expression which is evaluated to apply a patch to a file and generate the resulting new version of the file. See |diff-patchexpr|. + This option cannot be set from a |modeline| or in the |sandbox|, for + security reasons. *'patchmode'* *'pm'* *E205* *E206* 'patchmode' 'pm' string (default "") @@ -4603,11 +4514,10 @@ A jump table for the options with a short description can be found at |Q_op|. Using 'patchmode' for compressed files appends the extension at the end (e.g., "file.gz.orig"), thus the resulting name isn't always recognized as a compressed file. - Only normal file name characters can be used, "/\*?[|<>" are illegal. + Only normal file name characters can be used, `/\*?[|<>` are illegal. *'path'* *'pa'* *E343* *E345* *E347* *E854* -'path' 'pa' string (default on Unix: ".,/usr/include,," - other systems: ".,,") +'path' 'pa' string (default ".,,") global or local to buffer |global-local| This is a list of directories which will be searched when using the |gf|, [f, ]f, ^Wf, |:find|, |:sfind|, |:tabfind| and other commands, @@ -4616,9 +4526,9 @@ A jump table for the options with a short description can be found at |Q_op|. option may be relative or absolute. - Use commas to separate directory names: > :set path=.,/usr/local/include,/usr/include -< - Spaces can also be used to separate directory names (for backwards - compatibility with version 3.0). To have a space in a directory - name, precede it with an extra backslash, and escape the space: > +< - Spaces can also be used to separate directory names. To have a + space in a directory name, precede it with an extra backslash, and + escape the space: > :set path=.,/dir/with\\\ space < - To include a comma in a directory name precede it with an extra backslash: > @@ -4657,7 +4567,7 @@ A jump table for the options with a short description can be found at |Q_op|. < Replace the ';' with a ':' or whatever separator is used. Note that this doesn't work when $INCL contains a comma or white space. - *'preserveindent'* *'pi'* *'nopreserveindent'* *'nopi'* + *'preserveindent'* *'pi'* *'nopreserveindent'* *'nopi'* 'preserveindent' 'pi' boolean (default off) local to buffer When changing the indent of the current line, preserve as much of the @@ -4673,16 +4583,15 @@ A jump table for the options with a short description can be found at |Q_op|. Also see 'copyindent'. Use |:retab| to clean up white space. - *'previewheight'* *'pvh'* -'previewheight' 'pvh' number (default 12) + *'previewheight'* *'pvh'* +'previewheight' 'pvh' number (default 12) global Default height for a preview window. Used for |:ptag| and associated commands. Used for |CTRL-W_}| when no count is given. - *'previewwindow'* *'nopreviewwindow'* - *'pvw'* *'nopvw'* *E590* -'previewwindow' 'pvw' boolean (default off) - local to window + *'previewwindow'* *'pvw'* *'nopreviewwindow'* *'nopvw'* *E590* +'previewwindow' 'pvw' boolean (default off) + local to window |local-noglobal| Identifies the preview window. Only one window can have this option set. It's normally not set directly, but by using one of the commands |:ptag|, |:pedit|, etc. @@ -4726,8 +4635,8 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'quickfixtextfunc'* *'qftf'* -'quickfixtextfunc' 'qftf' string (default "") + *'quickfixtextfunc'* *'qftf'* +'quickfixtextfunc' 'qftf' string (default "") global This option specifies a function to be used to get the text to display in the quickfix and location list windows. This can be used to @@ -4750,9 +4659,9 @@ A jump table for the options with a short description can be found at |Q_op|. the following character will be skipped. The default value makes the text "foo\"bar\\" considered to be one string. - *'readonly'* *'ro'* *'noreadonly'* *'noro'* + *'readonly'* *'ro'* *'noreadonly'* *'noro'* 'readonly' 'ro' boolean (default off) - local to buffer + local to buffer |local-noglobal| If on, writes fail unless you use a '!'. Protects you from accidentally overwriting a file. Default on when Vim is started in read-only mode ("vim -R") or when the executable is called "view". @@ -4763,12 +4672,12 @@ A jump table for the options with a short description can be found at |Q_op|. See 'modifiable' for disallowing changes to the buffer. *'redrawdebug'* *'rdb'* -'redrawdebug' 'rdb' string (default '') +'redrawdebug' 'rdb' string (default "") global Flags to change the way redrawing works, for debugging purposes. Most useful with 'writedelay' set to some reasonable value. Supports the following flags: - compositor Indicate what redraws come from the compositor + compositor Indicate each redraw event handled by the compositor by briefly flashing the redrawn regions in colors indicating the redraw type. These are the highlight groups used (and their default colors): @@ -4780,6 +4689,11 @@ A jump table for the options with a short description can be found at |Q_op|. RedrawDebugRecompose guibg=Red redraw generated by the compositor itself, due to a grid being moved or deleted. + line introduce a delay after each line drawn on the screen. + When using the TUI or another single-grid UI, "compositor" + gives more information and should be preferred (every + line is processed as a separate event by the compositor) + flush introduce a delay after each "flush" event. nothrottle Turn off throttling of the message grid. This is an optimization that joins many small scrolls to one larger scroll when drawing the message area (with @@ -4789,7 +4703,7 @@ A jump table for the options with a short description can be found at |Q_op|. useful when running nvim inside a debugger (and the test suite). nodelta Send all internally redrawn cells to the UI, even if - they are unchanged from the already displayed state. + they are unchanged from the already displayed state. *'redrawtime'* *'rdt'* 'redrawtime' 'rdt' number (default 2000) @@ -4841,7 +4755,7 @@ A jump table for the options with a short description can be found at |Q_op|. 'number', see |number_relativenumber| for all combinations of the two options. - *'report'* + *'report'* 'report' number (default 2) global Threshold for reporting number of lines changed. When the number of @@ -4856,10 +4770,8 @@ A jump table for the options with a short description can be found at |Q_op|. Inserting characters in Insert mode will work backwards. See "typing backwards" |ins-reverse|. This option can be toggled with the CTRL-_ command in Insert mode, when 'allowrevins' is set. - This option is reset when 'paste' is set and restored when 'paste' is - reset. - *'rightleft'* *'rl'* *'norightleft'* *'norl'* + *'rightleft'* *'rl'* *'norightleft'* *'norl'* 'rightleft' 'rl' boolean (default off) local to window When on, display orientation becomes right-to-left, i.e., characters @@ -4872,7 +4784,7 @@ A jump table for the options with a short description can be found at |Q_op|. and left-to-right strings so that both sets are displayed properly in different windows). Also see |rileft.txt|. - *'rightleftcmd'* *'rlc'* + *'rightleftcmd'* *'rlc'* 'rightleftcmd' 'rlc' string (default "search") local to window Each word in this option enables the command line editing to work in @@ -4883,7 +4795,7 @@ A jump table for the options with a short description can be found at |Q_op|. This is useful for languages such as Hebrew, Arabic and Farsi. The 'rightleft' option must be set for 'rightleftcmd' to take effect. - *'ruler'* *'ru'* *'noruler'* *'noru'* + *'ruler'* *'ru'* *'noruler'* *'noru'* 'ruler' 'ru' boolean (default on) global Show the line and column number of the cursor position, separated by a @@ -4906,13 +4818,11 @@ A jump table for the options with a short description can be found at |Q_op|. separated with a dash. For an empty line "0-1" is shown. For an empty buffer the line number will also be zero: "0,0-1". - This option is reset when 'paste' is set and restored when 'paste' is - reset. If you don't want to see the ruler all the time but want to know where you are, use "g CTRL-G" |g_CTRL-G|. *'rulerformat'* *'ruf'* -'rulerformat' 'ruf' string (default empty) +'rulerformat' 'ruf' string (default "") global When this option is not empty, it determines the content of the ruler string, as displayed for the 'ruler' option. @@ -4924,24 +4834,25 @@ A jump table for the options with a short description can be found at |Q_op|. Example: > :set rulerformat=%15(%c%V\ %p%%%) < - *'runtimepath'* *'rtp'* *vimfiles* -'runtimepath' 'rtp' string (default: "$XDG_CONFIG_HOME/nvim, - $XDG_CONFIG_DIRS[1]/nvim, - $XDG_CONFIG_DIRS[2]/nvim, - … - $XDG_DATA_HOME/nvim[-data]/site, - $XDG_DATA_DIRS[1]/nvim/site, - $XDG_DATA_DIRS[2]/nvim/site, - … - $VIMRUNTIME, - … - $XDG_DATA_DIRS[2]/nvim/site/after, - $XDG_DATA_DIRS[1]/nvim/site/after, - $XDG_DATA_HOME/nvim[-data]/site/after, - … - $XDG_CONFIG_DIRS[2]/nvim/after, - $XDG_CONFIG_DIRS[1]/nvim/after, - $XDG_CONFIG_HOME/nvim/after") + + *'runtimepath'* *'rtp'* *vimfiles* +'runtimepath' 'rtp' string (default "$XDG_CONFIG_HOME/nvim, + $XDG_CONFIG_DIRS[1]/nvim, + $XDG_CONFIG_DIRS[2]/nvim, + … + $XDG_DATA_HOME/nvim[-data]/site, + $XDG_DATA_DIRS[1]/nvim/site, + $XDG_DATA_DIRS[2]/nvim/site, + … + $VIMRUNTIME, + … + $XDG_DATA_DIRS[2]/nvim/site/after, + $XDG_DATA_DIRS[1]/nvim/site/after, + $XDG_DATA_HOME/nvim[-data]/site/after, + … + $XDG_CONFIG_DIRS[2]/nvim/after, + $XDG_CONFIG_DIRS[1]/nvim/after, + $XDG_CONFIG_HOME/nvim/after") global List of directories to be searched for these runtime files: filetype.lua filetypes |new-filetype| @@ -4958,7 +4869,7 @@ A jump table for the options with a short description can be found at |Q_op|. pack/ packages |:packadd| parser/ |treesitter| syntax parsers plugin/ plugin scripts |write-plugin| - query/ |treesitter| queries + queries/ |treesitter| queries rplugin/ |remote-plugin| scripts spell/ spell checking files |spell| syntax/ syntax files |mysyntaxfile| @@ -4969,7 +4880,7 @@ A jump table for the options with a short description can be found at |Q_op|. Defaults are setup to search these locations: 1. Your home directory, for personal preferences. Given by `stdpath("config")`. |$XDG_CONFIG_HOME| - 2. Directories which must contain configuration files according to + 2. Directories which must contain configuration files according to |xdg| ($XDG_CONFIG_DIRS, defaults to /etc/xdg). This also contains preferences from system administrator. 3. Data home directory, for plugins installed by user. @@ -5011,8 +4922,8 @@ A jump table for the options with a short description can be found at |Q_op|. With |--clean| the home directory entries are not included. *'scroll'* *'scr'* -'scroll' 'scr' number (default: half the window height) - local to window +'scroll' 'scr' number (default half the window height) + local to window |local-noglobal| Number of lines to scroll with CTRL-U and CTRL-D commands. Will be set to half the number of lines in the window when the window size changes. This may happen when enabling the |status-line| or @@ -5022,19 +4933,22 @@ A jump table for the options with a short description can be found at |Q_op|. height with ":set scroll=0". *'scrollback'* *'scbk'* -'scrollback' 'scbk' number (default: 10000) +'scrollback' 'scbk' number (default 10000) local to buffer Maximum number of lines kept beyond the visible screen. Lines at the top are deleted if new lines exceed this limit. Minimum is 1, maximum is 100000. Only in |terminal| buffers. + Note: Lines that are not visible and kept in scrollback are not + reflown when the terminal buffer is resized horizontally. + *'scrollbind'* *'scb'* *'noscrollbind'* *'noscb'* -'scrollbind' 'scb' boolean (default off) +'scrollbind' 'scb' boolean (default off) local to window - See also |scroll-binding|. When this option is set, the current - window scrolls as other scrollbind windows (windows that also have - this option set) scroll. This option is useful for viewing the + See also |scroll-binding|. When this option is set, scrolling the + current window also scrolls other scrollbind windows (windows that + also have this option set). This option is useful for viewing the differences between two versions of a file, see 'diff'. See |'scrollopt'| for options that determine how this option should be interpreted. @@ -5125,8 +5039,6 @@ A jump table for the options with a short description can be found at |Q_op|. backwards, you cannot include the last character of a line, when starting in Normal mode and 'virtualedit' empty. - The 'selection' option is set by the |:behave| command. - *'selectmode'* *'slm'* 'selectmode' 'slm' string (default "") global @@ -5137,11 +5049,9 @@ A jump table for the options with a short description can be found at |Q_op|. key when using shifted special keys cmd when using "v", "V" or CTRL-V See |Select-mode|. - The 'selectmode' option is set by the |:behave| command. - *'sessionoptions'* *'ssop'* -'sessionoptions' 'ssop' string (default: "blank,buffers,curdir,folds, - help,tabpages,winsize,terminal") + *'sessionoptions'* *'ssop'* +'sessionoptions' 'ssop' string (default "blank,buffers,curdir,folds,help,tabpages,winsize,terminal") global Changes the effect of the |:mksession| command. It is a comma- separated list of words. Each word enables saving and restoring @@ -5180,10 +5090,11 @@ A jump table for the options with a short description can be found at |Q_op|. filenames are stored as absolute paths. If you leave out "options" many things won't work well after restoring the session. - *'shada'* *'sd'* *E526* *E527* *E528* + + *'shada'* *'sd'* *E526* *E527* *E528* 'shada' 'sd' string (default for - Win32: !,'100,<50,s10,h,rA:,rB: - others: !,'100,<50,s10,h) + Win32: !,'100,<50,s10,h,rA:,rB: + others: !,'100,<50,s10,h) global When non-empty, the shada file is read upon startup and written when exiting Vim (see |shada-file|). The string should be a comma- @@ -5209,8 +5120,8 @@ A jump table for the options with a short description can be found at |Q_op|. % When included, save and restore the buffer list. If Vim is started with a file name argument, the buffer list is not restored. If Vim is started without a file name argument, the - buffer list is restored from the shada file. Quickfix - ('buftype'), unlisted ('buflisted'), unnamed and buffers on + buffer list is restored from the shada file. Quickfix + ('buftype'), unlisted ('buflisted'), unnamed and buffers on removable media (|shada-r|) are not saved. When followed by a number, the number specifies the maximum number of buffers that are stored. Without a number all @@ -5238,8 +5149,8 @@ A jump table for the options with a short description can be found at |Q_op|. @ Maximum number of items in the input-line history to be saved. When not included, the value of 'history' is used. *shada-c* - c Dummy option, kept for compatibility reasons. Has no actual - effect: ShaDa always uses UTF-8 and 'encoding' value is fixed + c Dummy option, kept for compatibility reasons. Has no actual + effect: ShaDa always uses UTF-8 and 'encoding' value is fixed to UTF-8 as well. *shada-f* f Whether file marks need to be stored. If zero, file marks ('0 @@ -5264,13 +5175,13 @@ A jump table for the options with a short description can be found at |Q_op|. could use "ra:,rb:". You can also use it for temp files, e.g., for Unix: "r/tmp". Case is ignored. *shada-s* - s Maximum size of an item contents in KiB. If zero then nothing - is saved. Unlike Vim this applies to all items, except for - the buffer list and header. Full item size is off by three - unsigned integers: with `s10` maximum item size may be 1 byte - (type: 7-bit integer) + 9 bytes (timestamp: up to 64-bit - integer) + 3 bytes (item size: up to 16-bit integer because - 2^8 < 10240 < 2^16) + 10240 bytes (requested maximum item + s Maximum size of an item contents in KiB. If zero then nothing + is saved. Unlike Vim this applies to all items, except for + the buffer list and header. Full item size is off by three + unsigned integers: with `s10` maximum item size may be 1 byte + (type: 7-bit integer) + 9 bytes (timestamp: up to 64-bit + integer) + 3 bytes (item size: up to 16-bit integer because + 2^8 < 10240 < 2^16) + 10240 bytes (requested maximum item contents size) = 10253 bytes. Example: > @@ -5280,7 +5191,7 @@ A jump table for the options with a short description can be found at |Q_op|. edited. <1000 Contents of registers (up to 1000 lines each) will be remembered. - s100 Items with contents occupying more then 100 KiB are + s100 Items with contents occupying more then 100 KiB are skipped. :0 Command-line history will not be saved. n~/nvim/shada The name of the file to use is "~/nvim/shada". @@ -5296,8 +5207,8 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'shadafile'* *'sdf'* -'shadafile' 'sdf' string (default: "") + *'shadafile'* *'sdf'* +'shadafile' 'sdf' string (default "") global When non-empty, overrides the file name used for |shada| (viminfo). When equal to "NONE" no shada file will be read or written. @@ -5319,44 +5230,44 @@ A jump table for the options with a short description can be found at |Q_op|. If the name of the shell contains a space, you need to enclose it in quotes. Example with quotes: > :set shell=\"c:\program\ files\unix\sh.exe\"\ -f -< Note the backslash before each quote (to avoid starting a comment) and - each space (to avoid ending the option value), so better use |:let-&| +< Note the backslash before each quote (to avoid starting a comment) and + each space (to avoid ending the option value), so better use |:let-&| like this: > :let &shell='"C:\Program Files\unix\sh.exe" -f' -< Also note that the "-f" is not inside the quotes, because it is not +< Also note that the "-f" is not inside the quotes, because it is not part of the command name. *shell-unquoting* Rules regarding quotes: - 1. Option is split on space and tab characters that are not inside - quotes: "abc def" runs shell named "abc" with additional argument - "def", '"abc def"' runs shell named "abc def" with no additional - arguments (here and below: additional means “additional to + 1. Option is split on space and tab characters that are not inside + quotes: "abc def" runs shell named "abc" with additional argument + "def", '"abc def"' runs shell named "abc def" with no additional + arguments (here and below: additional means “additional to 'shellcmdflag'”). - 2. Quotes in option may be present in any position and any number: - '"abc"', '"a"bc', 'a"b"c', 'ab"c"' and '"a"b"c"' are all equivalent + 2. Quotes in option may be present in any position and any number: + '"abc"', '"a"bc', 'a"b"c', 'ab"c"' and '"a"b"c"' are all equivalent to just "abc". - 3. Inside quotes backslash preceding backslash means one backslash. - Backslash preceding quote means one quote. Backslash preceding - anything else means backslash and next character literally: - '"a\\b"' is the same as "a\b", '"a\\"b"' runs shell named literally + 3. Inside quotes backslash preceding backslash means one backslash. + Backslash preceding quote means one quote. Backslash preceding + anything else means backslash and next character literally: + '"a\\b"' is the same as "a\b", '"a\\"b"' runs shell named literally 'a"b', '"a\b"' is the same as "a\b" again. - 4. Outside of quotes backslash always means itself, it cannot be used + 4. Outside of quotes backslash always means itself, it cannot be used to escape quote: 'a\"b"' is the same as "a\b". - Note that such processing is done after |:set| did its own round of + Note that such processing is done after |:set| did its own round of unescaping, so to keep yourself sane use |:let-&| like shown above. *shell-powershell* To use PowerShell: > let &shell = executable('pwsh') ? 'pwsh' : 'powershell' - let &shellcmdflag = '-NoLogo -NoProfile -ExecutionPolicy RemoteSigned -Command [Console]::InputEncoding=[Console]::OutputEncoding=[System.Text.Encoding]::UTF8;' - let &shellredir = '2>&1 | Out-File -Encoding UTF8 %s; exit $LastExitCode' - let &shellpipe = '2>&1 | Out-File -Encoding UTF8 %s; exit $LastExitCode' + let &shellcmdflag = '-NoLogo -ExecutionPolicy RemoteSigned -Command [Console]::InputEncoding=[Console]::OutputEncoding=[System.Text.UTF8Encoding]::new();$PSDefaultParameterValues[''Out-File:Encoding'']=''utf8'';Remove-Alias -Force -ErrorAction SilentlyContinue tee;' + let &shellredir = '2>&1 | %%{ "$_" } | Out-File %s; exit $LastExitCode' + let &shellpipe = '2>&1 | %%{ "$_" } | tee %s; exit $LastExitCode' set shellquote= shellxquote= < This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. *'shellcmdflag'* *'shcf'* -'shellcmdflag' 'shcf' string (default: "-c"; Windows: "/s /c") +'shellcmdflag' 'shcf' string (default "-c"; Windows: "/s /c") global Flag passed to the shell to execute "!" and ":!" commands; e.g., `bash.exe -c ls` or `cmd.exe /s /c "dir"`. For MS-Windows, the @@ -5365,14 +5276,13 @@ A jump table for the options with a short description can be found at |Q_op|. On Unix it can have more than one flag. Each white space separated part is passed as an argument to the shell command. See |option-backslash| about including spaces and backslashes. - See |shell-unquoting| which talks about separating this option into + See |shell-unquoting| which talks about separating this option into multiple arguments. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. *'shellpipe'* *'sp'* -'shellpipe' 'sp' string (default ">", ">%s 2>&1", "| tee", "|& tee" or - "2>&1| tee") +'shellpipe' 'sp' string (default ">", "| tee", "|& tee" or "2>&1| tee") global String to be used to put the output of the ":make" command in the error file. See also |:make_makeprg|. See |option-backslash| about @@ -5380,8 +5290,8 @@ A jump table for the options with a short description can be found at |Q_op|. The name of the temporary file can be represented by "%s" if necessary (the file name is appended automatically if no %s appears in the value of this option). - For MS-Windows the default is ">%s 2>&1". The output is directly - saved in a file and not echoed to the screen. + For MS-Windows the default is "2>&1| tee". The stdout and stderr are + saved in a file and echoed to the screen. For Unix the default is "| tee". The stdout of the compiler is saved in a file and echoed to the screen. If the 'shell' option is "csh" or "tcsh" after initializations, the default becomes "|& tee". If the @@ -5404,8 +5314,8 @@ A jump table for the options with a short description can be found at |Q_op|. security reasons. *'shellquote'* *'shq'* -'shellquote' 'shq' string (default: ""; Windows, when 'shell' - contains "sh" somewhere: "\"") +'shellquote' 'shq' string (default ""; Windows, when 'shell' + contains "sh" somewhere: "\"") global Quoting character(s), put around the command passed to the shell, for the "!" and ":!" commands. The redirection is kept outside of the @@ -5447,7 +5357,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'shellslash'* *'ssl'* *'noshellslash'* *'nossl'* 'shellslash' 'ssl' boolean (default off) global - {only for MS-Windows} + only for MS-Windows When set, a forward slash is used when expanding file names. This is useful when a Unix-like shell is used instead of cmd.exe. Backward slashes can still be typed, but they are changed to forward slashes by @@ -5475,14 +5385,16 @@ A jump table for the options with a short description can be found at |Q_op|. |system()| does not respect this option, it always uses pipes. *'shellxescape'* *'sxe'* -'shellxescape' 'sxe' string (default: "") +'shellxescape' 'sxe' string (default "") global When 'shellxquote' is set to "(" then the characters listed in this option will be escaped with a '^' character. This makes it possible to execute most external commands with cmd.exe. + This option cannot be set from a |modeline| or in the |sandbox|, for + security reasons. *'shellxquote'* *'sxq'* -'shellxquote' 'sxq' string (default: "", Windows: "\"") +'shellxquote' 'sxq' string (default "", Windows: "\"") global Quoting character(s), put around the command passed to the shell, for the "!" and ":!" commands. Includes the redirection. See @@ -5506,27 +5418,21 @@ A jump table for the options with a short description can be found at |Q_op|. local to buffer Number of spaces to use for each step of (auto)indent. Used for |'cindent'|, |>>|, |<<|, etc. - When zero the 'ts' value will be used. Use the |shiftwidth()| + When zero the 'tabstop' value will be used. Use the |shiftwidth()| function to get the effective shiftwidth value. - *'shortmess'* *'shm'* -'shortmess' 'shm' string (default "filnxtToOF") + *'shortmess'* *'shm'* *E1336* +'shortmess' 'shm' string (default "ltToOCF") global This option helps to avoid all the |hit-enter| prompts caused by file messages, for example with CTRL-G, and to avoid some other messages. It is a list of flags: flag meaning when present ~ - f use "(3 of 5)" instead of "(file 3 of 5)" *shm-f* - i use "[noeol]" instead of "[Incomplete last line]" *shm-i* l use "999L, 888B" instead of "999 lines, 888 bytes" *shm-l* m use "[+]" instead of "[Modified]" *shm-m* - n use "[New]" instead of "[New File]" *shm-n* r use "[RO]" instead of "[readonly]" *shm-r* w use "[w]" instead of "written" for file write message *shm-w* and "[a]" instead of "appended" for ':w >> file' command - x use "[dos]" instead of "[dos format]", "[unix]" *shm-x* - instead of "[unix format]" and "[mac]" instead of "[mac - format]" a all of the above abbreviations *shm-a* o overwrite message for writing a file with subsequent *shm-o* @@ -5548,7 +5454,7 @@ A jump table for the options with a short description can be found at |Q_op|. A don't give the "ATTENTION" message when an existing *shm-A* swap file is found I don't give the intro message when starting Vim, *shm-I* - see |:intro| + see |:intro| c don't give |ins-completion-menu| messages; for *shm-c* example, "-- XXX completion (YYY)", "match 1 of 2", "The only match", "Pattern not found", "Back at original", etc. @@ -5557,8 +5463,8 @@ A jump table for the options with a short description can be found at |Q_op|. q use "recording" instead of "recording @a" *shm-q* F don't give the file info when editing a file, like *shm-F* `:silent` was used for the command - S do not show search count message when searching, e.g. *shm-S* - "[1/5]" + S do not show search count message when searching, e.g. *shm-S* + "[1/5]" This gives you the opportunity to avoid that a change between buffers requires you to hit <Enter>, but still gives as useful a message as @@ -5569,14 +5475,12 @@ A jump table for the options with a short description can be found at |Q_op|. shm=a Abbreviation, but no loss of information. shm=at Abbreviation, and truncate message when necessary. - *'showbreak'* *'sbr'* *E595* + *'showbreak'* *'sbr'* *E595* 'showbreak' 'sbr' string (default "") global or local to window |global-local| String to put at the start of lines that have been wrapped. Useful values are "> " or "+++ ": > - :set showbreak=>\ -< Note the backslash to escape the trailing space. It's easier like - this: > + :let &showbreak = "> " :let &showbreak = '+++ ' < Only printable single-cell characters are allowed, excluding <Tab> and comma (in a future version the comma might be used to separate the @@ -5589,8 +5493,9 @@ A jump table for the options with a short description can be found at |Q_op|. set and you want no value in the current window use NONE: > :setlocal showbreak=NONE < - *'showcmd'* *'sc'* *'noshowcmd'* *'nosc'* -'showcmd' 'sc' boolean (default: on) + + *'showcmd'* *'sc'* *'noshowcmd'* *'nosc'* +'showcmd' 'sc' boolean (default on) global Show (partial) command in the last line of the screen. Set this option off if your terminal is slow. @@ -5604,7 +5509,7 @@ A jump table for the options with a short description can be found at |Q_op|. This information can be displayed in an alternative location using the 'showcmdloc' option, useful when 'cmdheight' is 0. - *'showcmdloc'* *'sloc'* + *'showcmdloc'* *'sloc'* 'showcmdloc' 'sloc' string (default "last") global This option can be used to display the (partially) entered command in @@ -5620,7 +5525,7 @@ A jump table for the options with a short description can be found at |Q_op|. displayed in a convenient location. *'showfulltag'* *'sft'* *'noshowfulltag'* *'nosft'* -'showfulltag' 'sft' boolean (default off) +'showfulltag' 'sft' boolean (default off) global When completing a word in insert mode (see |ins-completion|) from the tags file, show both the tag name and a tidied-up form of the search @@ -5631,7 +5536,7 @@ A jump table for the options with a short description can be found at |Q_op|. 'completeopt', because the completion from the search pattern may not match the typed text. - *'showmatch'* *'sm'* *'noshowmatch'* *'nosm'* + *'showmatch'* *'sm'* *'noshowmatch'* *'nosm'* 'showmatch' 'sm' boolean (default off) global When a bracket is inserted, briefly jump to the matching one. The @@ -5639,8 +5544,6 @@ A jump table for the options with a short description can be found at |Q_op|. show the match can be set with 'matchtime'. A Beep is given if there is no match (no matter if the match can be seen or not). - This option is reset when 'paste' is set and restored when 'paste' is - reset. When the 'm' flag is not included in 'cpoptions', typing a character will immediately move the cursor back to where it belongs. See the "sm" field in 'guicursor' for setting the cursor shape and @@ -5652,8 +5555,8 @@ A jump table for the options with a short description can be found at |Q_op|. around |pi_paren.txt|. Note: Use of the short form is rated PG. - *'showmode'* *'smd'* *'noshowmode'* *'nosmd'* -'showmode' 'smd' boolean (default: on) + *'showmode'* *'smd'* *'noshowmode'* *'nosmd'* +'showmode' 'smd' boolean (default on) global If in Insert, Replace or Visual mode put a message on the last line. The |hl-ModeMsg| highlight group determines the highlighting. @@ -5680,8 +5583,8 @@ A jump table for the options with a short description can be found at |Q_op|. When using a slow terminal set it to a large number or 0. Not used for "zh" and "zl" commands. - *'sidescrolloff'* *'siso'* -'sidescrolloff' 'siso' number (default 0) + *'sidescrolloff'* *'siso'* +'sidescrolloff' 'siso' number (default 0) global or local to window |global-local| The minimal number of screen columns to keep to the left and to the right of the cursor if 'nowrap' is set. Setting this option to a @@ -5703,11 +5606,12 @@ A jump table for the options with a short description can be found at |Q_op|. :set nowrap sidescroll=1 listchars=extends:>,precedes:< :set sidescrolloff=1 < + *'signcolumn'* *'scl'* 'signcolumn' 'scl' string (default "auto") local to window When and how to draw the signcolumn. Valid values are: - "auto" only when there is a sign to display + "auto" only when there is a sign to display "auto:[1-9]" resize to accommodate multiple signs up to the given number (maximum 9), e.g. "auto:4" "auto:[1-8]-[2-9]" @@ -5716,20 +5620,13 @@ A jump table for the options with a short description can be found at |Q_op|. at least the given minimum (maximum 8) fixed space. The minimum number should always be less than the maximum number, e.g. "auto:2-5" - "no" never - "yes" always + "no" never + "yes" always "yes:[1-9]" always, with fixed space for signs up to the given number (maximum 9), e.g. "yes:3" "number" display signs in the 'number' column. If the number column is not present, then behaves like "auto". - Note regarding "orphaned signs": with signcolumn numbers higher than - 1, deleting lines will also remove the associated signs automatically, - in contrast to the default Vim behavior of keeping and grouping them. - This is done in order for the signcolumn appearance not appear weird - during line deletion. - - *'smartcase'* *'scs'* *'nosmartcase'* *'noscs'* 'smartcase' 'scs' boolean (default off) global @@ -5740,7 +5637,7 @@ A jump table for the options with a short description can be found at |Q_op|. "*" and "#" you can make 'smartcase' used by doing a "/" command, recalling the search pattern from history and hitting <Enter>. - *'smartindent'* *'si'* *'nosmartindent'* *'nosi'* + *'smartindent'* *'si'* *'nosmartindent'* *'nosi'* 'smartindent' 'si' boolean (default off) local to buffer Do smart autoindenting when starting a new line. Works for C-like @@ -5762,10 +5659,8 @@ A jump table for the options with a short description can be found at |Q_op|. mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H. When using the ">>" command, lines starting with '#' are not shifted right. - This option is reset when 'paste' is set and restored when 'paste' is - reset. - *'smarttab'* *'sta'* *'nosmarttab'* *'nosta'* + *'smarttab'* *'sta'* *'nosmarttab'* *'nosta'* 'smarttab' 'sta' boolean (default on) global When on, a <Tab> in front of a line inserts blanks according to @@ -5778,10 +5673,20 @@ A jump table for the options with a short description can be found at |Q_op|. What gets inserted (a <Tab> or spaces) depends on the 'expandtab' option. Also see |ins-expandtab|. When 'expandtab' is not set, the number of spaces is minimized by using <Tab>s. - This option is reset when 'paste' is set and restored when 'paste' is - reset. - *'softtabstop'* *'sts'* + *'smoothscroll'* *'sms'* *'nosmoothscroll'* *'nosms'* +'smoothscroll' 'sms' boolean (default off) + local to window + Scrolling works with screen lines. When 'wrap' is set and the first + line in the window wraps part of it may not be visible, as if it is + above the window. "<<<" is displayed at the start of the first line, + highlighted with |hl-NonText|. + You may also want to add "lastline" to the 'display' option to show as + much of the last line as possible. + NOTE: only partly implemented, currently works with CTRL-E, CTRL-Y + and scrolling with the mouse. + + *'softtabstop'* *'sts'* 'softtabstop' 'sts' number (default 0) local to buffer Number of spaces that a <Tab> counts for while performing editing @@ -5792,8 +5697,6 @@ A jump table for the options with a short description can be found at |Q_op|. commands like "x" still work on the actual characters. When 'sts' is zero, this feature is off. When 'sts' is negative, the value of 'shiftwidth' is used. - 'softtabstop' is set to 0 when the 'paste' option is set and restored - when 'paste' is reset. See also |ins-expandtab|. When 'expandtab' is not set, the number of spaces is minimized by using <Tab>s. The 'L' flag in 'cpoptions' changes how tabs are used when 'list' is @@ -5809,7 +5712,7 @@ A jump table for the options with a short description can be found at |Q_op|. The languages are specified with 'spelllang'. *'spellcapcheck'* *'spc'* -'spellcapcheck' 'spc' string (default "[.?!]\_[\])'" \t]\+") +'spellcapcheck' 'spc' string (default "[.?!]\_[\])'"\t ]\+") local to buffer Pattern to locate the end of a sentence. The following word will be checked to start with a capital letter. If not then it is highlighted @@ -5822,11 +5725,12 @@ A jump table for the options with a short description can be found at |Q_op|. |set-spc-auto|. *'spellfile'* *'spf'* -'spellfile' 'spf' string (default empty) +'spellfile' 'spf' string (default "") local to buffer Name of the word list file where words are added for the |zg| and |zw| commands. It must end in ".{encoding}.add". You need to include the path, otherwise the file is placed in the current directory. + The path may include characters from 'isfname', space, comma and '@'. *E765* It may also be a comma-separated list of names. A count before the |zg| and |zw| commands can be used to access each. This allows using @@ -5965,14 +5869,13 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'splitbelow'* *'sb'* *'nosplitbelow'* *'nosb'* 'splitbelow' 'sb' boolean (default off) global When on, splitting a window will put the new window below the current one. |:split| - *'splitkeep'* *'spk'* + *'splitkeep'* *'spk'* 'splitkeep' 'spk' string (default "cursor") global The value of this option determines the scroll behavior when opening, @@ -5994,21 +5897,22 @@ A jump table for the options with a short description can be found at |Q_op|. When on, splitting a window will put the new window right of the current one. |:vsplit| - *'startofline'* *'sol'* *'nostartofline'* *'nosol'* + *'startofline'* *'sol'* *'nostartofline'* *'nosol'* 'startofline' 'sol' boolean (default off) global When "on" the commands listed below move the cursor to the first non-blank of the line. When off the cursor is kept in the same column - (if possible). This applies to the commands: CTRL-D, CTRL-U, CTRL-B, - CTRL-F, "G", "H", "M", "L", gg, and to the commands "d", "<<" and ">>" - with a linewise operator, with "%" with a count and to buffer changing - commands (CTRL-^, :bnext, :bNext, etc.). Also for an Ex command that - only has a line number, e.g., ":25" or ":+". + (if possible). This applies to the commands: + - CTRL-D, CTRL-U, CTRL-B, CTRL-F, "G", "H", "M", "L", "gg" + - "d", "<<" and ">>" with a linewise operator + - "%" with a count + - buffer changing commands (CTRL-^, :bnext, :bNext, etc.) + - Ex commands that only have a line number, e.g., ":25" or ":+". In case of buffer changing commands the cursor is placed at the column where it was the last time the buffer was edited. - *'statuscolumn'* *'stc'* -'statuscolumn' 'stc' string (default: empty) + *'statuscolumn'* *'stc'* +'statuscolumn' 'stc' string (default "") local to window EXPERIMENTAL When non-empty, this option determines the content of the area to the @@ -6061,8 +5965,8 @@ A jump table for the options with a short description can be found at |Q_op|. < WARNING: this expression is evaluated for each screen line so defining an expensive expression can negatively affect render performance. - *'statusline'* *'stl'* *E540* *E542* -'statusline' 'stl' string (default empty) + *'statusline'* *'stl'* *E540* *E542* +'statusline' 'stl' string (default "") global or local to window |global-local| When non-empty, this option determines the content of the status line. Also see |status-line|. @@ -6166,41 +6070,45 @@ A jump table for the options with a short description can be found at |Q_op|. ( - Start of item group. Can be used for setting the width and alignment of a section. Must be followed by %) somewhere. ) - End of item group. No width fields allowed. - T N For 'tabline': start of tab page N label. Use %T or %X to end - the label. Clicking this label with left mouse button switches + T N For 'tabline': start of tab page N label. Use %T or %X to end + the label. Clicking this label with left mouse button switches to the specified tab page. - X N For 'tabline': start of close tab N label. Use %X or %T to end - the label, e.g.: %3Xclose%X. Use %999X for a "close current - tab" label. Clicking this label with left mouse button closes + X N For 'tabline': start of close tab N label. Use %X or %T to end + the label, e.g.: %3Xclose%X. Use %999X for a "close current + tab" label. Clicking this label with left mouse button closes specified tab page. - @ N Start of execute function label. Use %X or %T to - end the label, e.g.: %10@SwitchBuffer@foo.c%X. Clicking this - label runs specified function: in the example when clicking once - using left mouse button on "foo.c" "SwitchBuffer(10, 1, 'l', - ' ')" expression will be run. Function receives the + @ N Start of execute function label. Use %X or %T to + end the label, e.g.: %10@SwitchBuffer@foo.c%X. Clicking this + label runs specified function: in the example when clicking once + using left mouse button on "foo.c" "SwitchBuffer(10, 1, 'l', + ' ')" expression will be run. Function receives the following arguments in order: 1. minwid field value or zero if no N was specified 2. number of mouse clicks to detect multiple clicks - 3. mouse button used: "l", "r" or "m" for left, right or middle - button respectively; one should not rely on third argument - being only "l", "r" or "m": any other non-empty string value - that contains only ASCII lower case letters may be expected + 3. mouse button used: "l", "r" or "m" for left, right or middle + button respectively; one should not rely on third argument + being only "l", "r" or "m": any other non-empty string value + that contains only ASCII lower case letters may be expected for other mouse buttons - 4. modifiers pressed: string which contains "s" if shift - modifier was pressed, "c" for control, "a" for alt and "m" - for meta; currently if modifier is not pressed string - contains space instead, but one should not rely on presence - of spaces or specific order of modifiers: use |stridx()| to - test whether some modifier is present; string is guaranteed - to contain only ASCII letters and spaces, one letter per - modifier; "?" modifier may also be present, but its presence - is a bug that denotes that new mouse button recognition was - added without modifying code that reacts on mouse clicks on + 4. modifiers pressed: string which contains "s" if shift + modifier was pressed, "c" for control, "a" for alt and "m" + for meta; currently if modifier is not pressed string + contains space instead, but one should not rely on presence + of spaces or specific order of modifiers: use |stridx()| to + test whether some modifier is present; string is guaranteed + to contain only ASCII letters and spaces, one letter per + modifier; "?" modifier may also be present, but its presence + is a bug that denotes that new mouse button recognition was + added without modifying code that reacts on mouse clicks on this label. + Use |getmousepos()|.winid in the specified function to get the + corresponding window id of the clicked item. < - Where to truncate line if too long. Default is at the start. No width fields allowed. - = - Separation point between alignment sections. Each section will - be separated by an equal number of spaces. + = - Separation point between alignment sections. Each section will + be separated by an equal number of spaces. With one %= what + comes after it will be right-aligned. With two %= there is a + middle part, with white space left and right of it. No width fields allowed. # - Set highlight group. The name must follow and then a # again. Thus use %#HLname# for highlight group HLname. The same @@ -6208,8 +6116,8 @@ A jump table for the options with a short description can be found at |Q_op|. windows. * - Set highlight group to User{N}, where {N} is taken from the minwid field, e.g. %1*. Restore normal highlight with %* or %0*. - The difference between User{N} and StatusLine will be applied - to StatusLineNC for the statusline of non-current windows. + The difference between User{N} and StatusLine will be applied to + StatusLineNC for the statusline of non-current windows. The number N must be between 1 and 9. See |hl-User1..9| When displaying a flag, Vim removes the leading comma, if any, when @@ -6269,6 +6177,7 @@ A jump table for the options with a short description can be found at |Q_op|. : if exists(a:var) | return a:val | else | return '' | endif :endfunction < + *'suffixes'* *'su'* 'suffixes' 'su' string (default ".bak,~,.o,.h,.info,.swp,.obj") global @@ -6290,8 +6199,9 @@ A jump table for the options with a short description can be found at |Q_op|. file for the "gf", "[I", etc. commands. Example: > :set suffixesadd=.java < + *'swapfile'* *'swf'* *'noswapfile'* *'noswf'* -'swapfile' 'swf' boolean (default on) +'swapfile' 'swf' boolean (default on) local to buffer Use a swapfile for the buffer. This option can be reset when a swapfile is not wanted for a specific buffer. For example, with @@ -6316,16 +6226,18 @@ A jump table for the options with a short description can be found at |Q_op|. 'switchbuf' 'swb' string (default "uselast") global This option controls the behavior when switching between buffers. - Mostly for |quickfix| commands some values are also used for other - commands, as mentioned below. + This option is checked, when + - jumping to errors with the |quickfix| commands (|:cc|, |:cn|, |:cp|, + etc.). + - jumping to a tag using the |:stag| command. + - opening a file using the |CTRL-W_f| or |CTRL-W_F| command. + - jumping to a buffer using a buffer split command (e.g. |:sbuffer|, + |:sbnext|, or |:sbrewind|). Possible values (comma-separated list): - useopen If included, jump to the first open window that - contains the specified buffer (if there is one). - Otherwise: Do not examine other windows. - This setting is checked with |quickfix| commands, when - jumping to errors (":cc", ":cn", "cp", etc.). It is - also used in all buffer related split commands, for - example ":sbuffer", ":sbnext", or ":sbrewind". + useopen If included, jump to the first open window in the + current tab page that contains the specified buffer + (if there is one). Otherwise: Do not examine other + windows. usetab Like "useopen", but also consider windows in other tab pages. split If included, split the current window before loading @@ -6350,8 +6262,8 @@ A jump table for the options with a short description can be found at |Q_op|. Set to zero to remove the limit. *'syntax'* *'syn'* -'syntax' 'syn' string (default empty) - local to buffer +'syntax' 'syn' string (default "") + local to buffer |local-noglobal| When this option is set, the syntax with this name is loaded, unless syntax highlighting has been switched off with ":syntax off". Otherwise this option does not always reflect the current syntax (the @@ -6374,10 +6286,10 @@ A jump table for the options with a short description can be found at |Q_op|. Syntax autocommand event is triggered with the value as argument. This option is not copied to another buffer, independent of the 's' or 'S' flag in 'cpoptions'. - Only normal file name characters can be used, "/\*?[|<>" are illegal. + Only normal file name characters can be used, `/\*?[|<>` are illegal. *'tabline'* *'tal'* -'tabline' 'tal' string (default empty) +'tabline' 'tal' string (default "") global When non-empty, this option determines the content of the tab pages line at the top of the Vim window. When empty Vim will use a default @@ -6400,14 +6312,12 @@ A jump table for the options with a short description can be found at |Q_op|. Keep in mind that only one of the tab pages is the current one, others are invisible and you can't jump to their windows. - *'tabpagemax'* *'tpm'* 'tabpagemax' 'tpm' number (default 50) global Maximum number of tab pages to be opened by the |-p| command line argument or the ":tab all" command. |tabpage| - *'tabstop'* *'ts'* 'tabstop' 'ts' number (default 8) local to buffer @@ -6423,13 +6333,25 @@ A jump table for the options with a short description can be found at |Q_op|. (or 3 or whatever you prefer) and use 'noexpandtab'. Then Vim will use a mix of tabs and spaces, but typing <Tab> and <BS> will behave like a tab appears every 4 (or 3) characters. - 2. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use + This is the recommended way, the file will look the same with other + tools and when listing it in a terminal. + 2. Set 'softtabstop' and 'shiftwidth' to whatever you prefer and use + 'expandtab'. This way you will always insert spaces. The + formatting will never be messed up when 'tabstop' is changed (leave + it at 8 just in case). The file will be a bit larger. + You do need to check if no Tabs exist in the file. You can get rid + of them by first setting 'expandtab' and using `%retab!`, making + sure the value of 'tabstop' is set correctly. + 3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use 'expandtab'. This way you will always insert spaces. The formatting will never be messed up when 'tabstop' is changed. - 3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a + You do need to check if no Tabs exist in the file, just like in the + item just above. + 4. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a |modeline| to set these values when editing the file again. Only - works when using Vim to edit the file. - 4. Always set 'tabstop' and 'shiftwidth' to the same value, and + works when using Vim to edit the file, other tools assume a tabstop + is worth 8 spaces. + 5. Always set 'tabstop' and 'shiftwidth' to the same value, and 'noexpandtab'. This should then work (for initial indents only) for any tabstop setting that people use. It might be nice to have tabs after the first non-blank inserted as spaces if you do this @@ -6457,7 +6379,7 @@ A jump table for the options with a short description can be found at |Q_op|. Linear searching is done anyway, for one file, when Vim finds a line at the start of the file indicating that it's not sorted: > - !_TAG_FILE_SORTED 0 /some comment/ + !_TAG_FILE_SORTED 0 /some comment/ < [The whitespace before and after the '0' must be a single <Tab>] When a binary search was done and no match was found in any of the @@ -6491,7 +6413,7 @@ A jump table for the options with a short description can be found at |Q_op|. This option doesn't affect commands that find all matching tags (e.g., command-line completion and ":help"). - *'tagcase'* *'tc'* + *'tagcase'* *'tc'* 'tagcase' 'tc' string (default "followic") global or local to buffer |global-local| This option specifies how case is handled when searching the tags @@ -6502,8 +6424,8 @@ A jump table for the options with a short description can be found at |Q_op|. match Match case smart Ignore case unless an upper case letter is used - *'tagfunc'* *'tfu'* -'tagfunc' 'tfu' string (default: empty) + *'tagfunc'* *'tfu'* +'tagfunc' 'tfu' string (default "") local to buffer This option specifies a function to be used to perform tag searches. The function gets the tag pattern and should return a List of matching @@ -6511,6 +6433,8 @@ A jump table for the options with a short description can be found at |Q_op|. function and an example. The value can be the name of a function, a |lambda| or a |Funcref|. See |option-value-function| for more information. + This option cannot be set from a |modeline| or in the |sandbox|, for + security reasons. *'taglength'* *'tl'* 'taglength' 'tl' number (default 0) @@ -6518,7 +6442,7 @@ A jump table for the options with a short description can be found at |Q_op|. If non-zero, tags are significant up to this number of characters. *'tagrelative'* *'tr'* *'notagrelative'* *'notr'* -'tagrelative' 'tr' boolean (default: on) +'tagrelative' 'tr' boolean (default on) global If on and using a tags file in another directory, file names in that tags file are relative to the directory where the tags file is. @@ -6527,8 +6451,8 @@ A jump table for the options with a short description can be found at |Q_op|. 'tags' 'tag' string (default "./tags;,tags") global or local to buffer |global-local| Filenames for the tag command, separated by spaces or commas. To - include a space or comma in a file name, precede it with a backslash - (see |option-backslash| about including spaces and backslashes). + include a space or comma in a file name, precede it with backslashes + (see |option-backslash| about including spaces/commas and backslashes). When a file name starts with "./", the '.' is replaced with the path of the current file. But only when the 'd' flag is not included in 'cpoptions'. Environment variables are expanded |:set_env|. Also see @@ -6544,7 +6468,7 @@ A jump table for the options with a short description can be found at |Q_op|. file names from the list. This avoids problems when a future version uses another default. - *'tagstack'* *'tgst'* *'notagstack'* *'notgst'* + *'tagstack'* *'tgst'* *'notagstack'* *'notgst'* 'tagstack' 'tgst' boolean (default on) global When on, the |tagstack| is used normally. When off, a ":tag" or @@ -6555,9 +6479,8 @@ A jump table for the options with a short description can be found at |Q_op|. Resetting this option is useful when using a ":tag" command in a mapping which should not change the tagstack. - *'termbidi'* *'tbidi'* - *'notermbidi'* *'notbidi'* -'termbidi' 'tbidi' boolean (default off) + *'termbidi'* *'tbidi'* *'notermbidi'* *'notbidi'* +'termbidi' 'tbidi' boolean (default off) global The terminal is in charge of Bi-directionality of text (as specified by Unicode). The terminal is also expected to do the required shaping @@ -6568,15 +6491,15 @@ A jump table for the options with a short description can be found at |Q_op|. 'arabicshape' is ignored, but 'rightleft' isn't changed automatically. For further details see |arabic.txt|. - *'termguicolors'* *'tgc'* *'notermguicolors'* *'notgc'* -'termguicolors' 'tgc' boolean (default off) + *'termguicolors'* *'tgc'* *'notermguicolors'* *'notgc'* +'termguicolors' 'tgc' boolean (default off) global Enables 24-bit RGB color in the |TUI|. Uses "gui" |:highlight| attributes instead of "cterm" attributes. |guifg| Requires an ISO-8613-3 compatible terminal. - *'termpastefilter'* *'tpf'* -'termpastefilter' 'tpf' string (default: "BS,HT,ESC,DEL") + *'termpastefilter'* *'tpf'* +'termpastefilter' 'tpf' string (default "BS,HT,ESC,DEL") global A comma-separated list of options for specifying control characters to be removed from the text pasted into the terminal window. The @@ -6597,6 +6520,13 @@ A jump table for the options with a short description can be found at |Q_op|. C1 Control characters 0x80...0x9F + *'termsync'* *'notermsync'* +'termsync' boolean (default on) + global + If the host terminal supports it, buffer all screen updates + made during a redraw cycle so that each screen is displayed in + the terminal all at once. This can prevent tearing or flickering + when the terminal updates faster than Nvim can redraw. *'textwidth'* *'tw'* 'textwidth' 'tw' number (default 0) @@ -6604,8 +6534,6 @@ A jump table for the options with a short description can be found at |Q_op|. Maximum width of text that is being inserted. A longer line will be broken after white space to get this width. A zero value disables this. - 'textwidth' is set to 0 when the 'paste' option is set and restored - when 'paste' is reset. When 'textwidth' is zero, 'wrapmargin' may be used. See also 'formatoptions' and |ins-textwidth|. When 'formatexpr' is set it will be used to break the line. @@ -6628,8 +6556,8 @@ A jump table for the options with a short description can be found at |Q_op|. another default. Backticks cannot be used in this option for security reasons. - *'thesaurusfunc'* *'tsrfu'* -'thesaurusfunc' 'tsrfu' string (default: empty) + *'thesaurusfunc'* *'tsrfu'* +'thesaurusfunc' 'tsrfu' string (default "") global or local to buffer |global-local| This option specifies a function to be used for thesaurus completion with CTRL-X CTRL-T. |i_CTRL-X_CTRL-T| See |compl-thesaurusfunc|. @@ -6639,46 +6567,24 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'tildeop'* *'top'* *'notildeop'* *'notop'* + *'tildeop'* *'top'* *'notildeop'* *'notop'* 'tildeop' 'top' boolean (default off) global When on: The tilde command "~" behaves like an operator. *'timeout'* *'to'* *'notimeout'* *'noto'* -'timeout' 'to' boolean (default on) +'timeout' 'to' boolean (default on) global This option and 'timeoutlen' determine the behavior when part of a mapped key sequence has been received. For example, if <c-f> is pressed and 'timeout' is set, Nvim will wait 'timeoutlen' milliseconds for any key that can follow <c-f> in a mapping. - *'ttimeout'* *'nottimeout'* -'ttimeout' boolean (default on) - global - This option and 'ttimeoutlen' determine the behavior when part of a - key code sequence has been received by the |TUI|. - - For example if <Esc> (the \x1b byte) is received and 'ttimeout' is - set, Nvim waits 'ttimeoutlen' milliseconds for the terminal to - complete a key code sequence. If no input arrives before the timeout, - a single <Esc> is assumed. Many TUI cursor key codes start with <Esc>. - - On very slow systems this may fail, causing cursor keys not to work - sometimes. If you discover this problem you can ":set ttimeoutlen=9999". - Nvim will wait for the next character to arrive after an <Esc>. - *'timeoutlen'* *'tm'* 'timeoutlen' 'tm' number (default 1000) global Time in milliseconds to wait for a mapped sequence to complete. - *'ttimeoutlen'* *'ttm'* -'ttimeoutlen' 'ttm' number (default 50) - global - Time in milliseconds to wait for a key code sequence to complete. Also - used for CTRL-\ CTRL-N and CTRL-\ CTRL-G when part of a command has - been typed. - *'title'* *'notitle'* 'title' boolean (default off) global @@ -6694,7 +6600,7 @@ A jump table for the options with a short description can be found at |Q_op|. (path) is the path of the file being edited - NVIM the server name |v:servername| or "NVIM" - *'titlelen'* + *'titlelen'* 'titlelen' number (default 85) global Gives the percentage of 'columns' to use for the length of the window @@ -6707,14 +6613,15 @@ A jump table for the options with a short description can be found at |Q_op|. values from 1 to 30000 percent can be used. 'titlelen' is also used for the 'titlestring' option. - *'titleold'* + *'titleold'* 'titleold' string (default "") global If not empty, this option will be used to set the window title when exiting. Only if 'title' is enabled. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'titlestring'* + + *'titlestring'* 'titlestring' string (default "") global When this option is not empty, it will be used for the title of the @@ -6737,7 +6644,29 @@ A jump table for the options with a short description can be found at |Q_op|. NOTE: Use of special characters in 'titlestring' may cause the display to be garbled (e.g., when it contains a CR or NL character). - *'undodir'* *'udir'* *E5003* + *'ttimeout'* *'nottimeout'* +'ttimeout' boolean (default on) + global + This option and 'ttimeoutlen' determine the behavior when part of a + key code sequence has been received by the |TUI|. + + For example if <Esc> (the \x1b byte) is received and 'ttimeout' is + set, Nvim waits 'ttimeoutlen' milliseconds for the terminal to + complete a key code sequence. If no input arrives before the timeout, + a single <Esc> is assumed. Many TUI cursor key codes start with <Esc>. + + On very slow systems this may fail, causing cursor keys not to work + sometimes. If you discover this problem you can ":set ttimeoutlen=9999". + Nvim will wait for the next character to arrive after an <Esc>. + + *'ttimeoutlen'* *'ttm'* +'ttimeoutlen' 'ttm' number (default 50) + global + Time in milliseconds to wait for a key code sequence to complete. Also + used for CTRL-\ CTRL-N and CTRL-\ CTRL-G when part of a command has + been typed. + + *'undodir'* *'udir'* *E5003* 'undodir' 'udir' string (default "$XDG_STATE_HOME/nvim/undo//") global List of directory names for undo files, separated with commas. @@ -6761,7 +6690,7 @@ A jump table for the options with a short description can be found at |Q_op|. though the trailing slashes are present (see 'backupdir' for what this means). - *'undofile'* *'noundofile'* *'udf'* *'noudf'* + *'undofile'* *'udf'* *'noundofile'* *'noudf'* 'undofile' 'udf' boolean (default off) local to buffer When on, Vim automatically saves undo history to an undo file when @@ -6810,7 +6739,7 @@ A jump table for the options with a short description can be found at |Q_op|. this option to a lower value if you run out of memory. *'updatecount'* *'uc'* -'updatecount' 'uc' number (default: 200) +'updatecount' 'uc' number (default 200) global After typing this many characters the swap file will be written to disk. When zero, no swap file will be created at all (see chapter on @@ -6893,7 +6822,7 @@ A jump table for the options with a short description can be found at |Q_op|. If 'verbosefile' is set then the verbose messages are not displayed. *'verbosefile'* *'vfile'* -'verbosefile' 'vfile' string (default empty) +'verbosefile' 'vfile' string (default "") global When not empty all messages are written in a file with this name. When the file exists messages are appended. @@ -6902,16 +6831,18 @@ A jump table for the options with a short description can be found at |Q_op|. Setting 'verbosefile' to a new value is like making it empty first. The difference with |:redir| is that verbose messages are not displayed when 'verbosefile' is set. + This option cannot be set from a |modeline| or in the |sandbox|, for + security reasons. *'viewdir'* *'vdir'* -'viewdir' 'vdir' string (default: "$XDG_STATE_HOME/nvim/view//") +'viewdir' 'vdir' string (default "$XDG_STATE_HOME/nvim/view//") global Name of the directory where to store files for |:mkview|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. *'viewoptions'* *'vop'* -'viewoptions' 'vop' string (default: "folds,cursor,curdir") +'viewoptions' 'vop' string (default "folds,cursor,curdir") global Changes the effect of the |:mkview| command. It is a comma-separated list of words. Each word enables saving and restoring something: @@ -6926,7 +6857,7 @@ A jump table for the options with a short description can be found at |Q_op|. slash |deprecated| Always enabled. Uses "/" in filenames. unix |deprecated| Always enabled. Uses "\n" line endings. - *'virtualedit'* *'ve'* + *'virtualedit'* *'ve'* 'virtualedit' 've' string (default "") global or local to window |global-local| A comma-separated list of these words: @@ -6956,7 +6887,7 @@ A jump table for the options with a short description can be found at |Q_op|. not get a warning for it. When combined with other words, "none" is ignored. - *'visualbell'* *'vb'* *'novisualbell'* *'novb'* *beep* + *'visualbell'* *'vb'* *'novisualbell'* *'novb'* 'visualbell' 'vb' boolean (default off) global Use visual bell instead of beeping. Also see 'errorbells'. @@ -6968,7 +6899,7 @@ A jump table for the options with a short description can be found at |Q_op|. has been changed. *'whichwrap'* *'ww'* -'whichwrap' 'ww' string (default: "b,s") +'whichwrap' 'ww' string (default "b,s") global Allow specified keys that move the cursor left/right to move to the previous/next line when the cursor is on the first/last character in @@ -6998,7 +6929,7 @@ A jump table for the options with a short description can be found at |Q_op|. makes "dl", "cl", "yl" etc. work normally. *'wildchar'* *'wc'* -'wildchar' 'wc' number (default: <Tab>) +'wildchar' 'wc' number (default <Tab>) global Character you have to type to start wildcard expansion in the command-line, as specified with 'wildmode'. @@ -7006,12 +6937,14 @@ A jump table for the options with a short description can be found at |Q_op|. The character is not recognized when used inside a macro. See 'wildcharm' for that. Some keys will not work, such as CTRL-C, <CR> and Enter. + <Esc> can be used, but hitting it twice in a row will still exit + command-line as a failsafe measure. Although 'wc' is a number option, you can set it to a special key: > :set wc=<Tab> < *'wildcharm'* *'wcm'* -'wildcharm' 'wcm' number (default: none (0)) +'wildcharm' 'wcm' number (default 0) global 'wildcharm' works exactly like 'wildchar', except that it is recognized when used inside a macro. You can find "spare" command-line @@ -7037,8 +6970,7 @@ A jump table for the options with a short description can be found at |Q_op|. a pattern from the list. This avoids problems when a future version uses another default. - - *'wildignorecase'* *'wic'* *'nowildignorecase'* *'nowic'* + *'wildignorecase'* *'wic'* *'nowildignorecase'* *'nowic'* 'wildignorecase' 'wic' boolean (default off) global When set case is ignored when completing file names and directories. @@ -7046,8 +6978,7 @@ A jump table for the options with a short description can be found at |Q_op|. Does not apply when the shell is used to expand wildcards, which happens when there are special characters. - - *'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'* + *'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'* 'wildmenu' 'wmnu' boolean (default on) global When 'wildmenu' is on, command-line completion operates in an enhanced @@ -7065,18 +6996,21 @@ A jump table for the options with a short description can be found at |Q_op|. a completion. While the menu is active these keys have special meanings: - - CTRL-Y - accept the currently selected match and stop - completion. - CTRL-E - end completion, go back to what was there before - selecting a match. + CTRL-P - go to the previous entry + CTRL-N - go to the next entry <Left> <Right> - select previous/next match (like CTRL-P/CTRL-N) + <PageUp> - select a match several entries back + <PageDown> - select a match several entries further + <Up> - in filename/menu name completion: move up into + parent directory or parent menu. <Down> - in filename/menu name completion: move into a subdirectory or submenu. <CR> - in menu completion, when the cursor is just after a dot: move into a submenu. - <Up> - in filename/menu name completion: move up into - parent directory or parent menu. + CTRL-E - end completion, go back to what was there before + selecting a match. + CTRL-Y - accept the currently selected match and stop + completion. If you want <Left> and <Right> to move the cursor instead of selecting a different match, use this: > @@ -7086,7 +7020,7 @@ A jump table for the options with a short description can be found at |Q_op|. |hl-WildMenu| highlights the current match. *'wildmode'* *'wim'* -'wildmode' 'wim' string (default: "full") +'wildmode' 'wim' string (default "full") global Completion mode that is used for the character specified with 'wildchar'. It is a comma-separated list of up to four parts. Each @@ -7156,7 +7090,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'winaltkeys'* *'wak'* 'winaltkeys' 'wak' string (default "menu") global - {only used in Win32} + only used in Win32 Some GUI versions allow the access to menu entries by using the ALT key in combination with a character that appears underlined in the menu. This conflicts with the use of the ALT key for mappings and @@ -7173,7 +7107,7 @@ A jump table for the options with a short description can be found at |Q_op|. This option is not used for <F10>; on Win32. *'winbar'* *'wbr'* -'winbar' 'wbr' string (default empty) +'winbar' 'wbr' string (default "") global or local to window |global-local| When non-empty, this option enables the window bar and determines its contents. The window bar is a bar that's shown at the top of every @@ -7190,7 +7124,7 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set in a modeline when 'modelineexpr' is off. *'winblend'* *'winbl'* -'winblend' 'winbl' number (default 0) +'winblend' 'winbl' number (default 0) local to window Enables pseudo-transparency for a floating window. Valid values are in the range of 0 for fully opaque window (disabled) to 100 for fully @@ -7198,8 +7132,8 @@ A jump table for the options with a short description can be found at |Q_op|. UI-dependent. Works best with RGB colors. 'termguicolors' - *'window'* *'wi'* -'window' 'wi' number (default screen height - 1) + *'window'* *'wi'* +'window' 'wi' number (default screen height - 1) global Window height used for |CTRL-F| and |CTRL-B| when there is only one window and the value is smaller than 'lines' minus one. The screen @@ -7211,6 +7145,21 @@ A jump table for the options with a short description can be found at |Q_op|. Note: Do not confuse this with the height of the Vim window, use 'lines' for that. + *'winfixheight'* *'wfh'* *'nowinfixheight'* *'nowfh'* +'winfixheight' 'wfh' boolean (default off) + local to window |local-noglobal| + Keep the window height when windows are opened or closed and + 'equalalways' is set. Also for |CTRL-W_=|. Set by default for the + |preview-window| and |quickfix-window|. + The height may be changed anyway when running out of room. + + *'winfixwidth'* *'wfw'* *'nowinfixwidth'* *'nowfw'* +'winfixwidth' 'wfw' boolean (default off) + local to window |local-noglobal| + Keep the window width when windows are opened or closed and + 'equalalways' is set. Also for |CTRL-W_=|. + The width may be changed anyway when running out of room. + *'winheight'* *'wh'* *E591* 'winheight' 'wh' number (default 1) global @@ -7231,8 +7180,8 @@ A jump table for the options with a short description can be found at |Q_op|. 'winheight' applies to the current window. Use 'winminheight' to set the minimal height for other windows. - *'winhighlight'* *'winhl'* -'winhighlight' 'winhl' string (default empty) + *'winhighlight'* *'winhl'* +'winhighlight' 'winhl' string (default "") local to window Window-local highlights. Comma-delimited list of highlight |group-name| pairs "{hl-from}:{hl-to},..." where each {hl-from} is @@ -7251,20 +7200,6 @@ A jump table for the options with a short description can be found at |Q_op|. Example: show a different color for non-current windows: > set winhighlight=Normal:MyNormal,NormalNC:MyNormalNC < - *'winfixheight'* *'wfh'* *'nowinfixheight'* *'nowfh'* -'winfixheight' 'wfh' boolean (default off) - local to window - Keep the window height when windows are opened or closed and - 'equalalways' is set. Also for |CTRL-W_=|. Set by default for the - |preview-window| and |quickfix-window|. - The height may be changed anyway when running out of room. - - *'winfixwidth'* *'wfw'* *'nowinfixwidth'* *'nowfw'* -'winfixwidth' 'wfw' boolean (default off) - local to window - Keep the window width when windows are opened or closed and - 'equalalways' is set. Also for |CTRL-W_=|. - The width may be changed anyway when running out of room. *'winminheight'* *'wmh'* 'winminheight' 'wmh' number (default 1) @@ -7336,13 +7271,13 @@ A jump table for the options with a short description can be found at |Q_op|. When 'textwidth' is non-zero, this option is not used. See also 'formatoptions' and |ins-textwidth|. - *'wrapscan'* *'ws'* *'nowrapscan'* *'nows'* -'wrapscan' 'ws' boolean (default on) *E384* *E385* + *'wrapscan'* *'ws'* *'nowrapscan'* *'nows'* *E384* *E385* +'wrapscan' 'ws' boolean (default on) global Searches wrap around the end of the file. Also applies to |]s| and |[s|, searching for spelling mistakes. - *'write'* *'nowrite'* + *'write'* *'nowrite'* 'write' boolean (default on) global Allows writing files. When not set, writing a file is not allowed. @@ -7351,12 +7286,12 @@ A jump table for the options with a short description can be found at |Q_op|. argument. Filtering text is still possible, even though this requires writing a temporary file. - *'writeany'* *'wa'* *'nowriteany'* *'nowa'* + *'writeany'* *'wa'* *'nowriteany'* *'nowa'* 'writeany' 'wa' boolean (default off) global Allows writing to any file with no need for "!" override. - *'writebackup'* *'wb'* *'nowritebackup'* *'nowb'* + *'writebackup'* *'wb'* *'nowritebackup'* *'nowb'* 'writebackup' 'wb' boolean (default on) global Make a backup before overwriting a file. The backup is removed after @@ -7375,8 +7310,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'writedelay'* *'wd'* 'writedelay' 'wd' number (default 0) global - The number of milliseconds to wait for each character sent to the - screen. When positive, characters are sent to the UI one by one. - See 'redrawdebug' for more options. For debugging purposes. + Only takes effect together with 'redrawdebug'. + The number of milliseconds to wait after each line or each flush vim:tw=78:ts=8:noet:ft=help:norl: |