Movatterモバイル変換


[0]ホーム

URL:


Quick links:help overview ·quick reference ·user manual toc ·reference manual toc·faq
Go to keyword (shortcut:k)
Site search (shortcut:s)
options.txt  ForVim version 9.1.  Last change: 2025 Jul 01VIM REFERENCE MANUAL  by Bram MoolenaarOptionsoptions1. Settingoptionsset-option2. Automatically settingoptionsauto-setting3. Options summaryoption-summaryFor an overview ofoptions seequickref.txtoption-list.Vim hasa number of internalvariables and switches which can be set toachieve special effects.  Theseoptions come in three forms:booleancan only be on or offbooleantogglenumberhasa numeric valuestringhasastring value==============================================================================1. Settingoptionsset-optionE764:se:set:se[t][!]Show alloptions that differ from their default value.When [!]is present every optionis ona separateline.:se[t][!] allShow all butterminal options.When [!]is present every optionis ona separateline.:se[t]termcapShow allterminal options.Note that in theGUI thekey codes are not shown, because they are generatedinternally and can't be changed.  Changing theterminalcodes in theGUIis not useful either...Theoptions have the form t_AB, seeterminal-options.:se[t]!termcapIdem, but don't use multiple columns.E518E519:se[t]{option}?Show value of{option}.:se[t]{option}Toggle option: set, switchit on.Number option: show value.String option: show value.:se[t] no{option}Toggle option: Reset, switchit off.:set-!:set-inv:se[t]{option}!   or:se[t] inv{option}Toggle option: Invert value.:set-default:set-&:set-&vi:set-&vim:se[t]{option}&Reset option to its default value.  May depend on thecurrent value of'compatible'.:se[t]{option}&viReset option to itsVi default value.:se[t]{option}&vimReset option to its Vim default value.:se[t] all&Set alloptions to their default value.  The values oftheseoptions are not changed:  allterminal options,starting with t_'columns''cryptmethod''encoding''key''lines''term''ttymouse''ttytype'Warning: This may havea lot of side effects.:set-args:set=E487E521:se[t]{option}={value}or:se[t]{option}:{value}Setstring or number option to{value}.For numericoptions the value can be given in decimal,hex (preceded with 0x) oroctal (preceded with '0' or'0o').The old value can be inserted by typing'wildchar' (bydefault thisisa<Tab> orCTRL-E if'compatible'isset). Manystringoptions with fixedsyntax and namesalso support completing known values.  Seecmdline-completion andcomplete-set-option.Whitespace between{option} and '='is allowed andwill be ignored.  Whitespace between '=' and{value}is not allowed.Seeoption-backslash for using whitespace andbackslashes in{value}.:se[t]{option}+={value}:set+=Add the{value} toa number option, or append the{value} toastring option.  When the optionisacomma-separated list,a commais added, unless thevalue was empty.If the optionisalist of flags, superfluous flagsare removed.  When addinga flag that was alreadypresent the option value doesn't change.Also see:set-args above.:se[t]{option}^={value}:set^=Multiply the{value} toa number option, or prependthe{value} toastring option.  When the optionisacomma-separated list,a commais added, unless thevalue was empty.Also see:set-args above.:se[t]{option}-={value}:set-=Subtract the{value} froma number option, or removethe{value} fromastring option, ifitis there.If the{value}is not found inastring option, thereis no error or warning.  When the optionisa commaseparated list,a commais deleted, unless the optionbecomes empty.When the optionisalist of flags,{value}must beexactlyas they appear in the option.  Remove flagsone by one to avoid problems.The individual values froma comma separatedlist orlist of flags can be inserted by typing'wildchar'.Seecomplete-set-option.Also see:set-args above.The{option} arguments to ":set" may be repeated.  For example::set ai nosi sw=3 ts=3If you make an error in one of the arguments, an error message will be givenand the following arguments will be ignored.:set-verboseWhen'verbose'is non-zero, displaying an option value will also tell whereitwas last set.  Example::verbose set shiftwidth cindent?  shiftwidth=4  Last set from modeline line 1  cindent  Last set from /usr/local/share/vim/vim60/ftplugin/c.vim line 30Thisis only done when specific option values are requested, not for ":verboseset all" or ":verbose set" without an argument.When the option was set by hand thereis no "Last set" message.When the option was set while executinga function, user command orautocommand, thescript in whichit was definedis reported.Note that an option may also have been setasa side effect of setting'compatible'.A few special texts:Last set from modeline line 1Option was set inamodeline.Last set from --cmd argumentOption was set with command line argument--cmd or +.Last set from -c argumentOption was set with command line argument-c, +,-S or-q.Last set from environment variableOption was set from an environment variable, $VIMINIT,$GVIMINIT or $EXINIT.Last set from error handlerOption was cleared when evaluatingit resulted in an error.{not available when compiled without the |+eval| feature}:set-termcapE522For{option} the form "t_xx" may be used to setaterminal option.  This willoverride the value from the termcap.  You can then useit ina mapping.  Ifthe "xx" part contains special characters, use the<t_xx> form::set <t_#4>=^[OtThis can also be used to translatea special code fora normal key.  Forexample, if Alt-b produces<Esc>b, use this::set <M-b>=^[b(the ^[isa real<Esc> here, useCTRL-V<Esc> to enter it)The advantage overamappingis thatit works in all situations.You can define any key codes, e.g.::set t_xy=^[foo;Thereis no warning for usinga name that isn't recognized.  You can map thesecodesas you like::map <t_xy> somethingE846Whena key codeis not set, it's likeit does not exist.  Trying to get itsvalue will result in an error::set t_kb=:set t_kbE846: Key code not set: t_kbThe t_xxoptions cannot be set fromamodeline or in thesandbox, forsecurity reasons.The listing from ":set" looks different from Vi.  Longstringoptions areputat theend of the list.  The number ofoptionsis quite large.  The output of"set all" probably does not fit on the screen, causing Vim to give themore-prompt.option-backslashTo include whitespace inastring option valueit has to be preceded withabackslash.  To includeabackslash you have to use two.  Effectively thismeans that the number of backslashes in an option valueis halved (roundeddown).Inoptions'path','cdpath', and'tags', spaces have to be preceded with threebackslashes instead for compatibility with version 3.0 where theoptions canbe separated by either commas or spaces.Comma-separatedoptions like'backupdir' and'tags' will also require commasto be escaped with two backslashes, whereas thisis not needed fornon-comma-separated ones like'makeprg'.When settingoptions using:let andliteral-string, you need to use onefewer layer of backslash.A few examples:   :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 separatesa ":set" command froma following command.  Toinclude the "|" in the option value, use "\|" instead.  This example sets the'titlestring' option to "hi|there":   :set titlestring=hi\|thereThis sets the'titlestring' option to "hi" and'iconstring' to "there":   :set titlestring=hi|set iconstring=thereSimilarly, in legacyscript the doublequote character startsa comment.  Toinclude the'"' in the option value, use '\"' instead.  This example sets the'titlestring' option to 'hi "there"':   :set titlestring=hi\ \"there\"InVim9script it's simpler, comments start witha '#' character, and onlywhen preceded by white space.Abackslashis neededless often:   vim9script   set titlestring=hi\ "there"   set titlestring=hi#there#   set titlestring=hi\ \#there#ForWin32 backslashes in file names are mostly not removed.  More precise: Foroptions that expecta file name (those where environmentvariables areexpanded)abackslash beforea normal file name characteris not removed.  Butabackslash beforea special character (space, backslash, comma, etc.)is usedlike explained above.Thereis one special situation, when the value starts with "\\":   :set dir=\\machine\path    results in "\\machine\path"   :set dir=\\\\machine\\path    results in "\\machine\path"   :set dir=\\path\\file    results in "\\path\file" (wrong!)For the first one the startis kept, but for the second one the backslashesare halved.  This makes sureit works both when you expect backslashes to behalved and when you expect the backslashes to be kept.  The third givesaresult whichis probably not what you want.  Avoid it.add-option-flagsremove-option-flagsE539E550E551E552Someoptions arealist of flags.  When you want to adda flag to such anoption, withoutchanging the existing ones, you candoit like this:   :set guioptions+=aRemovea flag from an option like this:   :set guioptions-=aThis removes the 'a' flag from'guioptions'.Note that you should add or remove one flagata time.  If'guioptions' hasthe value "ab", using "set guioptions-=ba" won't work, because thestring "ba"doesn't appear.:set_envexpand-envexpand-environment-varEnvironmentvariables in specificstringoptions will be expanded.  If theenvironment variable exists the '$' and the following environment variablenameis replaced with its value.  Ifit does not exist the '$' and the nameare not modified.  Any non-id character (nota letter, digit or '_') mayfollow the environment variable name.  That character and what followsisappended to the value of the environment variable.  Examples:   :set term=$TERM.new   :set path=/usr/$INCLUDE,$HOME/include,.When adding or removingastring from an option with ":set opt-=val" or ":setopt+=val" the expansionis done before the adding or removing.Handling of localoptionslocal-optionsNote: The following also applies toglobal-local options.Some of theoptions only apply toawindow or buffer.  Eachwindow or bufferhas its own copy of this option, thus each can have its own value.  Thisallows you to set'list' in onewindow but not in another.  And set'shiftwidth' to 3 in one buffer and 4 in another.The following explains what happens to these localoptions in specificsituations.  You don't really need to know all of this, since Vim mostly usesthe option values you would expect.  Unfortunately, doing what the userexpectsisa bit complicated...When splittinga window, the localoptions are copied to the new window.  Thusright after the split the contents of the twowindows look the same.When editinga new buffer, its local option valuesmust be initialized.  Sincethe localoptions of the current buffer might be specifically for that buffer,these are not used.  Instead, for each buffer-local option there alsoisaglobal value, whichis used for new buffers.  With ":set" both the local andglobal valueis changed.  With "setlocal" only the local valueis changed,thus this valueis not used when editinga new buffer.When editinga buffer that has been edited before, theoptions from thewindowthat was last closed are used again.  If this buffer has been edited in thiswindow, the values from back then are used.  Otherwise the values from thelast closedwindow where the buffer was edited last are used.It's possible to seta localwindow option specifically fora type of buffer.When you edit another buffer in the same window, you don't want to keepusing these localwindow options.  Therefore Vim keepsa global value of thelocalwindow options, whichis used when editing another buffer.  Eachwindowhas its own copy of these values.  Thus these are local to the window, butglobal to allbuffers in the window.  With this you can do::e one:set list:e twoNow the'list' option will also be set in "two", since with the ":setlist"command you have also set the global value.:set nolist:e one:setlocal list:e twoNow the'list' optionis not set, because ":set nolist" resets the globalvalue, ":setlocallist" only changes the local value and ":e two" gets theglobal value.Note that if youdo this next::e oneYou will get back the'list' valueasit was the last time you edited "one".Theoptions local toawindow are remembered for each buffer.  This alsohappens when the bufferis not loaded, but they are lost when the bufferiswiped out:bwipe.Special localwindowoptionslocal-noglobalThe following localwindowoptions won't be copied over when newwindows arecreated, thus they behave slightly differently:OptionReason'previewwindow'there can only bea single one'scroll'specific to existingwindow'winfixbuf'specific to existingwindow'winfixheight'specific to existingwindow'winfixwidth'specific to existingwindowSpecial local bufferoptionsThe following local bufferoptions won't be copied over when newbuffers arecreated, thus they behave slightly differently:OptionReason'filetype'explicitly set byautocommands'syntax'explicitly set byautocommands'bufhidden'denotespecial-buffers'buftype'denotespecial-buffers'readonly'will be detected automatically'modified'will be detected automatically:setl:setlocal:setl[ocal][!]...Like ":set" but set only the value local to thecurrent buffer or window.  Not alloptions havealocal value.  If the option does not havea localvalue the global valueis set.With the "all" argument: display local values for alllocal options.Without argument: Display local values for all localoptions which are different from the default.When displayinga specific local option, show thelocal value.  Fora global/localboolean option, whenthe global valueis being used, "--"is displayedbefore the option name.Fora global option the global valueisshown (but that might change in the future).:se[t]{option}<Set the effective value of{option} to its globalvalue.Forstringglobal-local options, the local valueisremoved, so that the global value will be used.For all other options, the global valueis copied tothe local value.:setl[ocal]{option}<Set the effective value of{option} to its globalvalue.For number andbooleanglobal-local options, thelocal valueis removed, so that the global value willbe used.For all other options, includingstringglobal-localoptions, the global valueis copied to the localvalue.Note that the behaviour forglobal-localoptionsis slightly differentbetweenstring and number-based options.:setg:setglobal:setg[lobal][!]...Like ":set" but set only the global value fora localoption withoutchanging the local value.When displaying an option, the global valueis shown.With the "all" argument: display global values for alllocal options.Without argument: display global values for all localoptions which are different from the default.For buffer-local and window-local options:Command global value  local value       condition:set option=value     set      set:setlocal option=value-      set:setglobal option=value     set-:set option?-     display local valueis set:set option?    display- local valueis not set:setlocal option?-     display:setglobal option?    display-Globaloptions witha local valueglobal-localOptions are global when you mostly use one value for allbuffers and windows.For some globaloptions it's useful to sometimes havea different local value.You can set the local value with ":setlocal".  That buffer orwindow will thenuse the local value, while otherbuffers andwindows continue using the globalvalue.For example, you have two windows, both onC source code.  They use the global'makeprg' option.  If youdo this in one of the two windows::set makeprg=gmakethen the otherwindow will switch to the same value.  Thereis no need to setthe'makeprg' option in the otherC sourcewindow too.However, if you start editingaPerl file ina new window, you want to useanother'makeprg' for it, withoutchanging the value used for theC sourcefiles.  You use this command::setlocal makeprg=perlmakeYou can switch back to using the global value by making the local value empty::setlocal makeprg=This only works forastring option.  Fora number orboolean option you needto use the "<" flag, like this::setlocal autoread<Note that for non-boolean and non-numberoptions using "<" copies the globalvalue to the local value,it doesn't switch back to using the global value(that matters when the global value changes later).  You can also use::set path<This will make the local value of'path' empty, so that the global valueisused.  Thusit does the same as::setlocal path=Note: In the future more globaloptions can be madeglobal-local.  Using":setlocal" ona global option might work differently then.option-value-functionSomeoptions ('completefunc','findfunc','imactivatefunc','imstatusfunc','omnifunc','operatorfunc','quickfixtextfunc','tagfunc' and'thesaurusfunc')are set toa function name ora functionreference oralambda function.  Whenusingalambdait will be converted to the name, e.g. "<lambda>123".Examples:set opfunc=MyOpFuncset opfunc=function('MyOpFunc')set opfunc=funcref('MyOpFunc')set opfunc={a\ ->\ MyOpFunc(a)}Set toascript-local function:set opfunc=s:MyLocalFuncset opfunc=<SID>MyLocalFuncInVim9script the "s:" and "<SID>" can be omitted if the function exists inthe script:set opfunc=MyLocalFuncSet usinga funcref variable:let Fn = function('MyTagFunc')let &tagfunc = FnSet usingalambda expression:let &tagfunc = {t -> MyTagFunc(t)}Set usinga variable withlambda expression:let L = {a, b, c -> MyTagFunc(a, b , c)}let &tagfunc = LInVim9 script, ina compiled function, you can usea lambda, butaclosure does not work, because the function will be called without thecontext of whereit was defined.Setting thefiletype:setf[iletype][FALLBACK]{filetype}:setf:setfiletypeSet the'filetype' option to{filetype}, but only ifnot done yet ina sequence of (nested) autocommands.Thisis short for::if !did_filetype():  setlocal filetype={filetype}:endifThis commandis used ina filetype.vim file to avoidsetting the'filetype' option twice, causing differentsettings andsyntax files to be loaded.When the optional FALLBACK argumentis present,alater:setfiletype command will override the'filetype'.  Thisis to be used forfiletypedetections that are justa guess.did_filetype()will returnfalse after this command.option-windowoptwin:bro[wse] se[t]:set-browse:browse-set:opt:options:opt[ions]Openawindow for viewing and setting all options.Options are grouped by function.Offers shorthelp for each option.  Hit<CR> on theshorthelp to openahelpwindow with morehelp forthe option.Modify the value of the option and hit<CR> on the"set" line to set the new value.  Forwindow andbuffer specific options, the last accessedwindowisused to set the option value in, unless thisisahelpwindow, in whichcase thewindow belowhelpwindowisused (skipping the option-window).{not available when compiled without the+evalfeature}$HOMEUsing "~"is like using "$HOME", butitis only recognizedat the start of anoption and afteraspace or comma.OnUnix systems "~user" can be used too.  Itis replaced by thehome directoryof user "user".  Example:    :set path=~mool/include,/usr/include,.OnUnix systems the form "${HOME}" can be used too.  The name between{} cancontain non-id characters then.Note that if you want to use this for the"gf" command, you need to add the '{' and '}' characters to'isfname'.NOTE: expanding environmentvariables and "~/"is only done with the ":set"command, not when assigninga value to an option with ":let".$HOME-windowsOn MS-Windows, if$HOMEis not definedas an environment variable, thenat runtime Vim will setit to the expansion of $HOMEDRIVE$HOMEPATH.If $HOMEDRIVEis not set then $USERPROFILEis used.This expanded valueis not exported to the environment, this matters whenrunning an external command::echo system('set | findstr ^HOME=')and:echo luaeval('os.getenv("HOME")')should echo nothing (an empty string) despite exists('$HOME') being true.When setting$HOME toa non-emptystringit will be exported to thesubprocesses.Note the maximum length of an expanded optionis limited.  How much depends onthe system, mostlyitis something like 256 or 1024 characters.:fix:fixdel:fix[del]Set the value of't_kD':'t_kb' is     't_kD' becomesCTRL-?CTRL-HnotCTRL-?CTRL-?(CTRL-?is 0o177 octal, 0x7f hex)If your delete keyterminal codeis wrong, but thecode forbackspaceis alright, you canput this inyour .vimrc::fixdelThis works no matter what the actual code forbackspace is.If thebackspace keyterminal codeis wrong you canuse this::if &term == "termname":  set t_kb=^V<BS>:  fixdel:endifWhere "^V"isCTRL-V and "<BS>"is thebackspace key(don't type four characters!).Replace "termname"with yourterminal name.If your<Delete> key sendsa strange key sequence (notCTRL-? orCTRL-H) you cannot use ":fixdel".  Then use::if &term == "termname":  set t_kD=^V<Delete>:endifWhere "^V"isCTRL-V and "<Delete>"is the delete key(don't type eight characters!).Replace "termname"with yourterminal name.Linux-backspaceNote about Linux: By default thebackspace keyproducesCTRL-?, whichis wrong.  You can fixit byputting this line in your rc.local:echo "keycode 14 = BackSpace" | loadkeysNetBSD-backspaceNote about NetBSD: If yourbackspace doesn't producethe right code, try this:xmodmap -e "keycode 22 = BackSpace"If this works, add this in your .Xmodmap file:keysym 22 = BackSpaceYou need to restart for this to take effect.==============================================================================2. Automatically settingoptionsauto-settingBesideschangingoptions with the ":set" command, there are three alternativesto setoptions automatically for one or more files:1. Whenstarting Vim initializations are read fromvarious places.  Seeinitialization.  Most of them are performed for all editing sessions,   and some of them depend on the directory where Vimis started.   You can create aninitialization file with:mkvimrc,:mkview and:mksession.2. If you start editinga new file, the automatic commands are executed.   This can be used to setoptions for files matchinga particularpattern and   many other things.  Seeautocommand.3. If you start editinga new file, and the'modeline' optionis on,a   number of linesat the beginning andend of the file are checked for   modelines.  Thisis explained here.modelinevim:vi:ex:E520There are two forms of modelines.  The first form:[text{white}]{vi:vim:ex:}[white]{options}[text{white}]empty or any text followed byat least one blankcharacter (<Space> or<Tab>); "ex:" always requiresatleast one blank character{vi:|vim:|ex:}thestring "vi:", "vim:" or "ex:"[white]optional whitespace{options}alist of option settings, separated with whitespaceor ':', where each part between ':'is the argumentfora ":set" command (can be empty)Examples:   vi:noai:sw=3 ts=6   vim: tw=77The second form (thisis compatible with some versions of Vi):[text{white}]{vi:vim:Vim:|ex:}[white]se[t]{options}:[text][text{white}]empty or any text followed byat least one blankcharacter (<Space> or<Tab>); "ex:" always requiresatleast one blank character{vi:|vim:|Vim:|ex:}thestring "vi:", "vim:", "Vim:" or "ex:"[white]optional whitespacese[t]thestring "set " or "se " (note the space); When"Vim"is useditmust be "set".{options}alist of options, separated with white space, whichis the argument fora ":set" command:a colon[text]any text or emptyExamples:   /* vim: set ai tw=75: */   /* Vim: set ai tw=75: */The whitespace before{vi:|vim:|Vim:|ex:}is required.  This minimizes thechance thata normalword like "lex:"is caught.  Thereis one exception:"vi:" and "vim:" can also beat the start of the line (for compatibility withversion 3.0).  Using "ex:"at the start of the line will be ignored (thiscould be short for "example:").If themodelineis disabled withina modeline, subsequent modelines will beignored.  Thisis to allow turning offmodeline ona per-file basis.  Thisisuseful whena line looks likeamodeline but isn't.  For example,it would begood to starta YAML file containing strings like "vim:" with    # vim: nomodelinesoas to avoidmodeline misdetection.  Followingoptions on the same lineaftermodeline deactivation, if any, are still evaluated (but you wouldnormally not have any).modeline-localTheoptions are set like with ":setlocal": The new value only applies to thebuffer andwindow that contain the file.  Although it's possible to set globaloptions froma modeline, thisis unusual.  If you have twowindows open andthe files init set the same global option toa different value, the resultdepends on which one was opened last.When editinga file that was already loaded, only the window-localoptionsfrom themodeline are used.  Thus if you manually changeda buffer-localoption after opening the file,it won't be changed if you edit the same bufferin another window.  But window-localoptions will be set.modeline-versionIf themodelineis only to be used for some versions of Vim, the versionnumber can be specified where "vim:" or "Vim:"is used:vim{vers}:version{vers} or latervim<{vers}:version before{vers}vim={vers}:version{vers}vim>{vers}:version after{vers}{vers}is 700 for Vim 7.0 (hundred times the major version plus minor).For example, to useamodeline only for Vim 7.0:/* vim700: set foldmethod=marker */To useamodeline for Vim after version 7.2:/* vim>702: set cole=2: */There can be no blanks between "vim" and the ":".The number of lines that are checked can be set with the'modelines' option.If'modeline'is off or'modelines'is0 no lines are checked.Note that for the first form all of the rest of the lineis used, thusa linelike:   /* vi:ts=4: */will give an error message for the trailing "*/".  This lineis OK:   /* vi:set ts=4: */If an erroris detected the rest of the lineis skipped.If you want to includea ':' ina set command precedeit witha '\'.  Thebackslash in front of the ':' will be removed.  Example:   /* vi:set fillchars=stl\:^,vert\:\|: */This sets the'fillchars' option to "stl:^,vert:\|".  Onlya singlebackslashbefore the ':'is removed.  Thus to include "\:" you have to specify "\\:".E992No other commands than "set" are supported, for security reasons (somebodymight createa Trojan horse text file with modelines).  And not alloptionscan be set.  For someoptionsa flagis set, so that when the valueis usedthesandboxis effective.  Someoptions can only be set from themodelinewhen'modelineexpr'is set (the defaultis off).Still, thereis alwaysa small risk thatamodeline causes trouble.  E.g.,when some joker sets'textwidth' to 5 all your lines are wrapped unexpectedly.So disable modelines before editing untrusted text.  The mailftplugin doesthis, for example.Hint: If you would like todo something else than setting an option, you coulddefine anautocommand that checks the file fora specific string.  Forexample:au BufReadPost * if getline(1) =~ "VAR" | call SetVar() | endifAnd definea function SetVar() that does something with the line containing"VAR".==============================================================================3. Options summaryoption-summaryIn thelist below all theoptions are mentioned with their full name and withan abbreviation if thereis one.  Both forms may be used.In this document whenaboolean optionis "set" that means that ":set option"is entered.  When an optionis "reset", ":set nooption"is used.For someoptions there are two default values: The "Vim default", whichisused when'compatible'is not set, and the "Vi default", whichis used when'compatible'is set.Mostoptions are the same in allwindows and buffers.  There area few thatare specific to how the textis presented ina window.  These can be set toadifferent value in each window.  For example the'list' option can be set inonewindow and reset in another for the same text, giving both types ofviewat the same time.  There area fewoptions that are specific toa certainfile.  These can havea different value for each file or buffer.  For examplethe'textwidth' option can be 78 fora normal text file and0 foraCprogram.globalone option for allbuffers andwindowslocal towindoweachwindow has its own copy of this optionlocal to buffereach buffer has its own copy of this optionWhen creatinga newwindow the option values from the currently activewindoware usedasa default value for the window-specific options.  For thebuffer-specificoptions this depends on the 's' and 'S' flags in the'cpoptions' option.  If 's'is included (whichis the default) the values forbufferoptions are copied from the currently active buffer whena bufferisfirst entered.  If 'S'is present theoptions are copied each time the bufferis entered, thisis almost like having global options.  If 's' and 'S' are notpresent, theoptions are copied from the currently active buffer when thebufferis created.Hiddenoptionshidden-optionsNot alloptions are supported in all versions.  This depends on the supportedfeatures and sometimes on the system.A remark about thisis in curly bracesbelow.  When an optionis not supportedit may still be set without getting anerror, thisis calleda hidden option.  You can't get the value ofa hiddenoption though,itis not stored.To test if option "foo" can be used with ":set" use something like this:if exists('&foo')This also returnstrue fora hidden option.  To test if option "foo"is reallysupported use something like this:if exists('+foo')E355A jump table for theoptions witha short description can be foundatQ_op.'aleph''al'alephAleph'aleph''al'number(default 128 for MS-Windows, 224 otherwise)global{only available when compiled with the+rightleftfeature}The ASCII code for the firstletter of the Hebrew alphabet.  Theroutine that maps the keyboard in Hebrew mode, both inInsert mode(when hkmapis set) and on the command-line (when hittingCTRL-_)outputs the Hebrew characters in the range [aleph..aleph+26].aleph=128 applies to PC code, and aleph=224 applies to ISO 8859-8.Seerileft.txt.'allowrevins''ari''noallowrevins''noari''allowrevins''ari'boolean(default off)global{only available when compiled with the+rightleftfeature}AllowCTRL-_ inInsert andCommand-line mode.  Thisis default off, toavoid that users that accidentally typeCTRL-_ instead of SHIFT-_ getinto reverseInsert mode, and don't know how to get out.  See'revins'.NOTE: This optionis reset when'compatible'is set.'altkeymap''akm''noaltkeymap''noakm''altkeymap''akm'boolean (default off)global{only available when compiled with the+farsifeature}This option was for using Farsi, which has been removed.  Seefarsi.txt.'ambiwidth''ambw''ambiwidth''ambw'string (default: "single")globalOnly effective when'encoding'is "utf-8" or anotherUnicode encoding.Tells Vim what todo with characters with East Asian WidthClassAmbiguous (suchas Euro, Registered Sign, Copyright Sign, Greekletters, Cyrillic letters).There are currently two possible values:"single":Use the same widthas characters in US-ASCII.  Thisisexpected by most users."double":Use twice the width of ASCII characters.E834E835The value "double" cannot be used if'listchars' or'fillchars'containsa character that would be double width.  Theseerrors mayalso be given when calling setcellwidths().The values are overruled for characters specified withsetcellwidths().There area number of CJK fonts for which the width of glyphs forthose characters are solely based on how many octets they take inlegacy/traditional CJK encodings.  In those encodings, Euro,Registered sign, Greek/Cyrillic letters are represented by two octets,therefore those fonts have "wide" glyphs for them.  Thisis alsotrue of some line drawing characters used to make tables in textfile.  Therefore, whena CJK fontis used forGUI Vim orVimis running insideaterminal (emulators) that usesa CJK font(or Vimis run inside an xterm invoked with "-cjkwidth" option.),this option should be set to "double" to match the width perceivedby Vim with the width of glyphs in the font.  Perhapsit also hasto be set to "double" under CJKMS-Windows when the systemlocaleisset to one of CJK locales.  SeeUnicode Standard Annex #11(http://www.unicode.org/reports/tr11).Vim may set this option automaticallyatstartup time when Vimiscompiled with the+termresponse feature and ift_u7is set to theescape sequence to request cursor position report.  The response canbe found inv:termu7resp.'antialias''anti''noantialias''noanti''antialias''anti'boolean (default: off)global{only available when compiled withGUI enabledon macOS}This option only has an effect in theGUI version of Vim on macOSv10.2 or later.  When on, Vim will use smooth("antialiased") fonts,which can be easier to readat certain sizes on certain displays.Setting this option can sometimes cause problems if'guifont'is setto its default (empty string).NOTE: This optionis reset when'compatible'is set.'arabic''arab''noarabic''noarab''arabic''arab'boolean (default off)local towindow{only available when compiled with the+arabicfeature}This option can be set to start editingArabic text.Setting this option will:- Set the'rightleft' option, unless'termbidi'is set.- Set the'arabicshape' option, unless'termbidi'is set.- Set the'keymap' option to "arabic"; inInsert modeCTRL-^ toggles  between typing English andArabic key mapping.- Set the'delcombine' optionNote that'encoding'must be "utf-8" for working withArabic text.Resetting this option will:- Reset the'rightleft' option.- Disable the use of'keymap' (withoutchanging its value).Note that'arabicshape' and'delcombine' are not reset (itisa globaloption).NOTE: This optionis reset when'compatible'is set.Also seearabic.txt.'arabicshape''arshape''noarabicshape''noarshape''arabicshape''arshape'boolean (default on)global{only available when compiled with the+arabicfeature}When on and'termbidi'is off, the required visual charactercorrections that need to take place for displaying theArabic languagetake effect.  Shaping, in essence, gets enabled; the termisa broadone which encompasses:a) the changing/morphing of characters based on their location     withinaword (initial, medial, final and stand-alone).  b) the enabling of the ability to compose characters  c) the enabling of the required combining of some charactersWhen disabled the display shows each character'strue stand-aloneform.Arabicisa complex language which requires other settings, forfurther details seearabic.txt.NOTE: This optionis set when'compatible'is set.'autochdir''acd''noautochdir''noacd''autochdir''acd'boolean (default off)global{only available when compiled with it, useexists("+autochdir") to check}When on, Vim will change the current working directory whenever youopena file, switch buffers, deletea buffer or open/closea window.It will change to the directory containing the file which was openedor selected.  Whena buffer has no nameit also has no directory, thusthe current directory won't change when navigating to it.Note: When this optionis on some plugins may not work.'autoindent''ai''noautoindent''noai''autoindent''ai'boolean(default off)local to bufferCopy indent from current line whenstartinga new line (typing<CR>inInsert mode or when using the "o" or "O" command).  If youdo nottype anything on the new line except<BS> orCTRL-D and then type<Esc>,CTRL-O or<CR>, the indentis deleted again.  Moving the cursorto another line has the same effect, unless the 'I' flagis includedin'cpoptions'.When autoindentis on,formatting (with the "gq" command or when youreach'textwidth' inInsert mode) uses the indentation of the firstline.When'smartindent' or'cindent'is on the indentis changed ina different way.The'autoindent' optionis reset when the'paste' optionis set andrestored when'paste'is reset.'autoread''ar''noautoread''noar''autoread''ar'boolean(default off)global or local to bufferglobal-localWhena file has been detected to have been changed outside of Vim andit has not been changed inside of Vim, automatically readit again.When the file has been deleted thisis not done, so you have the textfrom beforeit was deleted.  Whenit appears again thenitis read.timestampIf this option hasa local value, use this command to switch back tousing the global value::set autoread<'autoshelldir''asd''noautoshelldir''noasd''autoshelldir''asd'boolean (default off)globalWhen on, Vim will change the current working directory whenever youchange the directory of the shell running inaterminal window. Youneed proper setting-up, so whenever the shell's pwd changes an OSC 7escape sequence will be emitted.  For example, on Linux, you cansource /etc/profile.d/vte.sh in your shellprofile if you use bash orzsh.  For bash this should work (putit ina bash init file):if [[ -n "$VIM_TERMINAL" ]]; then    PROMPT_COMMAND='_vim_sync_PWD'    function _vim_sync_PWD() {printf '\033]7;file://%s\033\\' "$PWD"    }fiOr, ina zsh init file:if [[ -n "$VIM_TERMINAL" ]]; then    autoload -Uz add-zsh-hook    add-zsh-hook -Uz chpwd _vim_sync_PWD    function _vim_sync_PWD() {printf '\033]7;file://%s\033\\' "$PWD"    }fiIna fish init file:if test -n "$VIM_TERMINAL"    function _vim_sync_PWD --on-variable=PWDprintf '\033]7;file://%s\033\\' "$PWD"    endendYou can find an alternativemethodatterminal-autoshelldir.When the parsing of the OSC sequence fails you getE1179.'autowrite''aw''noautowrite''noaw''autowrite''aw'boolean(default off)globalWrite the contents of the file, ifit has been modified, on each:next,:rewind,:last,:first,:previous,:stop,:suspend,:tag,:!,:make,CTRL-] andCTRL-^ command; and whena:buffer,CTRL-O,CTRL-I, '{A-Z0-9}, or `{A-Z0-9} command takes oneto another file.A bufferis not written ifit becomes hidden, e.g. when'bufhidden'isset to "hide" and:nextis used.Note that for some commands the'autowrite' optionis not used, see'autowriteall' for that.Somebuffers will not be written, specifically when'buftype'is"nowrite", "nofile", "terminal" or "prompt".USE WITH CARE: If you make temporary changes toa buffer that youdon't want to be saved this option may causeit to be saved anyway.Renaming the buffer with ":file{name}" mayhelp avoid this.'autowriteall''awa''noautowriteall''noawa''autowriteall''awa'boolean(default off)globalLike'autowrite', but also used for commands ":edit", ":enew", ":quit",":qall", ":exit", ":xit", ":recover" and closing the Vim window.Setting this option also implies that Vim behaves like'autowrite' hasbeen set.'background''bg''background''bg'string(default "dark" or "light", see below)globalWhen set to "dark", Vim will try to use colors that look good onadark background.  When set to "light", Vim will try to use colors thatlook good ona light background.  Any other valueis illegal.Vim tries to set the default value according to theterminal used.This will not always be correct.Setting this option does not change the background color,it tells Vimwhat the background color looks like.  Forchanging the backgroundcolor, see:hi-normal.When'background'is changed Vim will adjust the default color groupsfor the new value.  But the colors used forsyntax highlighting willnot change.g:colors_nameWhena color schemeis loaded (the "g:colors_name" variableis set)changing'background' will cause the color scheme to be reloaded.  Ifthe color scheme adjusts to the value of'background' this will work.However, if the color scheme sets'background' itself the effect maybe undone.  First delete the "g:colors_name" variable when needed.When setting'background' to the default value with::set background&Vim will guess the value.  In theGUI this should work correctly,in other cases Vim might not be able to guess the right value.If theGUI supportsa dark theme, you can use the "d" flag in'guioptions', see 'go-d'.When thet_RB optionis set, Vim will useit to request the backgroundcolor from the terminal.  If the returned RGB valueis dark/light and'background'is not dark/light,'background' will be set and thescreenis redrawn.  This may have side effects, maket_RB empty inyour.vimrc if you suspect this problem.  The response tot_RB canbe found inv:termrbgresp.Whenstarting the GUI, the default value for'background' will be"light".  When the valueis not set in the .gvimrc, and Vim detectsthat the backgroundis actually quite dark,'background'is set to"dark".  But this happens only AFTER the.gvimrc file has been read(because thewindow needs to be opened to find the actual backgroundcolor).  To get around this, force theGUIwindow to be opened byputtinga ":gui" command in the.gvimrc file, before where the valueof'background'is used (e.g., before ":syntax on").ForMS-Windows the defaultis "dark".For other systems "dark"is used when'term'is "linux","screen.linux", "cygwin" or "putty", or $COLORFGBG suggestsa darkbackground.  Otherwise the defaultis "light".The:terminal command and theterm_start() function use the'background' value to decide whether theterminalwindow will startwitha white or black background.Normally this option would be set in the.vimrc file.  Possiblydepending on theterminal name.  Example::if &term == "pcterm":  set background=dark:endifWhen this optionis set, the default settings for the highlight groupswill change.  To use other settings, place ":highlight" commands AFTERthe setting of the'background' option.This optionis also used in the "$VIMRUNTIME/syntax/syntax.vim" fileto select the colors forsyntax highlighting.  Afterchanging thisoption, youmust load syntax.vim again to see the result.  This can bedone with ":syntax on".'backspace''bs''backspace''bs'string(Vim default: "indent,eol,start",Vi default:  "")globalInfluences the working of<BS>,<Del>,CTRL-W andCTRL-U inInsertmode.  Thisisalist of items, separated by commas.  Each item allowsa way tobackspace over something:valueeffectindentallow backspacing over autoindenteolallow backspacing over line breaks (join lines)startallow backspacing over the start of insert;CTRL-W andCTRL-Ustop onceat the start of insert.nostoplike start, exceptCTRL-W andCTRL-Udo not stopat the start ofinsert.When the valueis empty,Vi compatible backspacingis used, none ofthe ways mentioned for the items above are possible.For backwards compatibility with version 5.4 and earlier:valueeffect0sameas ":set backspace=" (Vi compatible)  1sameas ":set backspace=indent,eol"  2sameas ":set backspace=indent,eol,start"  3sameas ":set backspace=indent,eol,nostop"See:fixdel if your<BS> or<Del> key does notdo what you want.NOTE: This optionis set to "" when'compatible'is set.'backup''bk''nobackup''nobk''backup''bk'boolean(default off)globalMakeabackup before overwritinga file.  Leaveit around after thefile has been successfully written.  If youdo not want to keep thebackup file, but youdo wantabackup while the fileis beingwritten, reset this option and set the'writebackup' option (thisisthe default).  If youdo not wantabackup fileat all reset bothoptions (use this if your file systemis almost full).  See thebackup-table for more explanations.When the'backupskip'pattern matches,abackupis not made anyway.When'patchmode'is set, thebackup may be renamed to become theoldest version ofa file.NOTE: This optionis reset when'compatible'is set.'backupcopy''bkc''backupcopy''bkc'string(Vi default for Unix: "yes", otherwise: "auto")global or local to bufferglobal-localWhenwritinga file andabackupis made, this option tells how it'sdone.  Thisisa comma-separatedlist of words.The main values are:"yes"makea copy of the file and overwrite the original one"no"rename the file and writea new one"auto"one of the previous, what works bestExtra values that can be combined with the ones above are:"breaksymlink"always break symlinks whenwriting"breakhardlink"always break hardlinks whenwritingMakinga copy and overwriting the original file:- Takes extra time to copy the file.+ When the file has special attributes,isa (hard/symbolic) link or  hasa resource fork, all thisis preserved.- When the fileisa link thebackup will have the name of the link,  not of the real file.Renaming the file andwritinga new one:+ It's fast.- Sometimes not all attributes of the file can be copied to the new  file.- When the fileisa link the new file will not bea link.The "auto" valueis the middle way: When Vim sees that renaming thefileis possible without side effects (the attributes can be passed onand the fileis nota link) thatis used.  When problems are expected,a copy will be made.The "breaksymlink" and "breakhardlink" values can be used incombination with any of "yes", "no" and "auto".  When included, theyforce Vim to always break either symbolic or hard links by doingexactly what the "no" option does, renaming the original file tobecome thebackup andwritinga new file in its place.  This can beuseful for example in source trees where all the files are symbolic orhard links and any changes should stay in the local source tree, notbe propagated back to the original source.crontabOne situation where "no" and "auto" will cause problems:A programthat opensa file, invokes Vim to edit that file, and then tests ifthe open file was changed (through the file descriptor) will check thebackup file instead of the newly created file.  "crontab-e"is anexample,as are severalfile-watcher daemons like inotify.  In thatcase you probably want to switch this option.Whena copyis made, the original fileis truncated and then filledwith the new text.  This means that protection bits, owner andsymbolic links of the original file are unmodified.  Thebackup file,however,isa new file, owned by the user who edited the file.  Thegroup of thebackupis set to the group of the original file.  If thisfails, the protection bits for the group are made the sameas forothers.When the fileis renamed, thisis the other way around: Thebackup hasthe same attributes of the original file, and the newly written fileis owned by the current user.  When the file wasa (hard/symbolic)link, the new file will not!  That's why the "auto" value doesn'trename when the fileisa link.  The owner and group of the newlywritten file will be set to the same onesas the original file, butthe system may refuse todo this.  In thatcase the "auto" value willagain not rename the file.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'backupdir''bdir''backupdir''bdir'string(default for Amiga: ".,t:", for Win32: ".,$TEMP,c:/tmp,c:/temp" for Unix: ".,~/tmp,~/")globalList of directories for thebackup file, separated with commas.- Thebackup file will be created in the first directory in thelist  where thisis possible.  The directorymust exist, Vim will not  createit for you.- Empty means that nobackup file will be created ('patchmode'is  impossible!).  Writing may fail because of this.-A directory "." means toput thebackup file in the same directoryas the edited file.-A directorystarting with "./" (or ".\" for MS-Windows) means toput  thebackup file relative to where the edited file is.  The leading  "."is replaced with the path name of the edited file.("." insidea directory name has no special meaning).- Spaces after the comma are ignored, other spaces are considered part  of the directory name.  To haveaspaceat the start ofa directory  name, precedeit witha backslash.- To includea comma ina directory name precedeit witha backslash.-A directory name mayend in an '/'.- ForUnix and Win32, ifa directory ends in two path separators "//",  thebackup file name will be built from the complete path to the  file with all path separators changed to percent '%' signs. This  will ensure file name uniqueness in thebackup directory.  On Win32,itis also possible toend with "\\".  However, Whena  separating commais following, youmust use "//", since "\\" will  include the comma in the file name. Thereforeitis recommended to  use '//', instead of '\\'.- Environmentvariables are expanded:set_env.- Careful with '\' characters, type one beforea space, type two to  get one in the option (seeoption-backslash), for example:    :set bdir=c:\\tmp,\ dir\\,with\\,commas,\\\ dir\ with\ spaces- For backwards compatibility withVim version 3.0a '>'at the start  of the optionis removed.See also'backup' and'writebackup' options.If you want to hide yourbackup files on Unix, consider this value::set backupdir=./.backup,~/.backup,.,/tmpYoumust createa ".backup" directory in each directory and in yourhome directory for this to work properly.The use of:set+= and:set-=is preferred when adding or removingdirectories from the list.  This avoids problems whena future versionuses another default.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'backupext''bex'E589'backupext''bex'string(default "~", for VMS: "_")globalString whichis appended toa file name to make the name of thebackup file.  The defaultis quite unusual, because this avoidsaccidentally overwriting existing files withabackup file.  You mightprefer 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.If you like to keepa lot of backups, you could useaBufWritePreautocommand to change'backupext' just beforewriting the file toincludea timestamp.:au BufWritePre * let &bex = '-' .. strftime("%Y%b%d%X") .. '~'Use'backupdir' toput thebackup ina different directory.'backupskip''bsk''backupskip''bsk'string(default: "$TMPDIR/*,$TMP/*,$TEMP/*" Unix: "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*" Mac: "/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*")globalAlist of file patterns.  When one of the patterns matches with thename of the file whichis written, nobackup fileis created.  Boththe specified file name and the full path name of the file are used.Thepatternis used like with:autocmd, seeautocmd-patterns.Watch out for special characters, seeoption-backslash.When $TMPDIR, $TMP or $TEMPis not defined,itis not used for thedefault value.  "/tmp/*"is only used for Unix.WARNING: Not havingabackup file means that when Vim fails to writeyour buffer correctly and then, for whatever reason, Vim exits, youlose both the original file and what you were writing.  Only disablebackups if you don't care about losing the file.Note that environmentvariables are not expanded.  If you want to use$HOME youmust expandit explicitly, e.g.::let &backupskip = escape(expand('$HOME'), '\') .. '/tmp/*'Note that the default also makes sure that "crontab-e" works (whenabackup would be made by renaming the original filecrontab won't seethe newly created file).  Also see'backupcopy' andcrontab.'balloondelay''bdlay''balloondelay''bdlay'number(default: 600)global{only available when compiled with the+balloon_evalfeature}Delay in milliseconds beforea balloon may pop up.  Seeballoon-eval.'ballooneval''beval''noballooneval''nobeval''ballooneval''beval'boolean(default off)global{only available when compiled with the+balloon_evalfeature}Switch on theballoon-eval functionality for the GUI.'balloonevalterm''bevalterm''noballoonevalterm''nobevalterm''balloonevalterm''bevalterm'boolean(default off)global{only available when compiled with the+balloon_eval_term feature}Switch on theballoon-eval functionality for the terminal.'balloonexpr''bexpr''balloonexpr''bexpr'string(default "")global or local to bufferglobal-local{only available when compiled with the+balloon_evalfeature}Expression for text to show in evaluation balloon.  Itis only usedwhen'ballooneval' or'balloonevalterm'is on.  Thesevariables can beused:v:beval_bufnrnumber of the buffer in which balloonis going to showv:beval_winnrnumber of thewindowv:beval_winidID of thewindowv:beval_lnumline numberv:beval_colcolumn number (byte index)v:beval_textword under or after the mouse pointerInstead of showinga balloon, whichis limited to plain text, considerusingapopup window, seepopup_beval_example.Apopupwindow canuse highlighting and showa border.The evaluation of theexpressionmust not have side effects!Example:    function MyBalloonExpr()return 'Cursor is at line ' .. v:beval_lnum ..\ ', column ' .. v:beval_col ..\ ' of file ' ..  bufname(v:beval_bufnr) ..\ ' on word "' .. v:beval_text .. '"'    endfunction    set bexpr=MyBalloonExpr()    set ballooneval balloonevaltermAlso seeballoon_show(),it can be used if the content of the balloonis to be fetched asynchronously.  In thatcase evaluating'balloonexpr' should result in an empty string.  If you geta balloonwith only "0" you probably didn't return anything from your function.NOTE: The balloonis displayed only if the cursoris ona textcharacter.  If the result of evaluating'balloonexpr'is not empty,Vim does not try to senda message to an external debugger (Netbeansor Sun Workshop).If theexpression starts with s: or<SID>, thenitis replaced withthescript ID(local-function). Example:set bexpr=s:MyBalloonExpr()set bexpr=<SID>SomeBalloonExpr()Otherwise, theexpressionis evaluated in the context of thescriptwhere the option was set, thusscript-local items are available.Theexpression will be evaluated in thesandbox when set fromamodeline, seesandbox-option.This option cannot be set inamodeline when'modelineexpr'is off.Itis not allowed to change text or jump to anotherwindow whileevaluating'balloonexpr', seetextlock.To check whether line breaks in the balloon text work use this check:if has("balloon_multiline")When they are supported "\n" characters will starta new line.  If theexpression evaluates toaList thisis equal to using eachList itemasastring and putting "\n" in between them.NOTE: This optionis set to "" when'compatible'is set.'belloff''bo''belloff''bo'string(default "")globalSpecifies for which events the bell will not be rung. Itisa commaseparatedlist of items. For each item thatis present, the bellwill be silenced. Thisis most useful to specify specific events ininsert mode to be silenced.You can also makeit flash by using'visualbell'.item    meaning when presentall    All events.backspace   When hitting<BS> or<Del> anddeleting results in an    error.cursor    Fail to move around using the cursor keys or<PageUp>/<PageDown> inInsert-mode.complete    Error occurred when usingi_CTRL-X_CTRL-K ori_CTRL-X_CTRL-T.copy    Cannot copy char frominsert mode usingi_CTRL-Y ori_CTRL-E.ctrlg    Unknown Char after<C-G> inInsert mode.error    Other Error occurred (e.g. try to join last line)    (mostly used inNormal-mode orCmdline-mode).esc    hitting<Esc> inNormal-mode.ex    InVisual-mode, hittingQ results in an error.hangul    Ignored.insertmode  Pressing<Esc> in'insertmode'.lang    Calling thebeep module for Lua/Mzscheme/TCL.mess    No output available forg<.showmatch   Error occurred for'showmatch' function.operator    Empty region errorcpo-E.register    Unknownregister after<C-R> inInsert-mode.shell    Bell from shell output:!.spell    Error happened onspell suggest.term    Bell from:terminal output.wildmode    More matches incmdline-completion available    (depends on the'wildmode' setting).Thisis most useful to fine tune when inInsert mode the bell shouldbe rung. ForNormal mode andEx commands, the bellis often rung toindicate that an error occurred. It can be silenced by adding the"error" keyword.'binary''bin''nobinary''nobin''binary''bin'boolean(default off)local to bufferThis option should be set before editinga binary file.  You can alsouse the-b Vim argument.  When this optionis switched ona fewoptions will be changed (also whenit already was on):'textwidth'  will be set to0'wrapmargin' will be set to0'modeline'   will be off'expandtab'  will be offAlso,'fileformat' and'fileformats'options will not be used, thefileis read and written like'fileformat' was "unix" (a single<NL>separates lines).The'fileencoding' and'fileencodings'options will not be used, thefileis read without conversion.NOTE: When you start editing a(nother) file while the'bin' optionison, settings fromautocommands may change the settings again (e.g.,'textwidth'), causing trouble when editing.  You might want to set'bin' again when the file has been loaded.The previous values of theseoptions are remembered and restored when'bin'is switched from on to off.  Each buffer has its own set ofsaved option values.To edita file with'binary' set you can use the++bin argument.This avoids you have todo ":set bin", which would have effect for allfiles you edit.Whenwritinga file the<EOL> for the last lineis only written ifthere was one in the original file (normally Vim appends an<EOL> tothe last line if thereis none; this would make the file longer).  Seethe'endofline' option.'bioskey''biosk''nobioskey''nobiosk''bioskey''biosk'boolean(default on)global{only for MS-DOS}This was forMS-DOS andis no longer supported.'bomb''nobomb''bomb'boolean(default off)local to bufferWhenwritinga file and the following conditions are met,a BOM (ByteOrder Mark)is prepended to the file:- this optionis on- the'binary' optionis off-'fileencoding'is "utf-8", "ucs-2", "ucs-4" or one of the little/big  endian variants.Some applications use the BOM to recognize the encoding of the file.Often used for UCS-2 files on MS-Windows.  For other applicationsitcauses trouble, for example: "cat file1 file2" makes the BOM of file2appear halfway through the resulting file.  Gcc doesn't accepta BOM.When Vim readsa file and'fileencodings' starts with "ucs-bom",acheck for the presence of the BOMis done and'bomb' set accordingly.Unless'binary'is set,itis removed from the first line, so that youdon't seeit when editing.  When you don't change the options, the BOMwill be restored whenwriting the file.'breakat''brk''breakat''brk'string(default " ^I!@*-+;:,./?")global{not available when compiled without the+linebreakfeature}This option lets you choose which characters might causea linebreak if'linebreak'is on.  Only works for ASCII and also for 8-bitcharacters when'encoding'is an 8-bit encoding.'breakindent''bri''nobreakindent''nobri''breakindent''bri'boolean (default off)local towindow{not available when compiled without the+linebreakfeature}Every wrapped line will continue visually indented (same amount ofspaceas the beginning of that line), thus preserving horizontal blocksof text.NOTE: This optionis reset when'compatible'is set.'breakindentopt''briopt''breakindentopt''briopt'string (default empty)local towindow{not available when compiled without the+linebreakfeature}Settings for'breakindent'. It can consist of the following optionalitems andmust be separated bya comma:min:{n}    Minimum text width that will be kept after    applying'breakindent', even if the resulting    text should normally be narrower. This prevents    text indented almost to the rightwindow border    occupying lots of verticalspace when broken.    (default: 20)shift:{n}   After applying'breakindent', the wrapped line's    beginning will be shifted by the given number of    characters.  It permits dynamic Frenchparagraph    indentation (negative) or emphasizing the line    continuation (positive).    (default: 0)sbr    Display the'showbreak' value before applying the    additional indent.    (default: off)list:{n}    Adds an additional indent for lines that matcha    numbered or bulletedlist (using the'formatlistpat' setting).    (default: 0)list:-1    Uses the width ofa match with'formatlistpat' for    indentation.column:{n}  Indentat column{n}. Will overrule the other    sub-options.Note: an additional indent may be    added for the'showbreak' setting.    (default: off)'browsedir''bsdir''browsedir''bsdir'string(default: "last")global{only for Motif, GTK, Mac and Win32 GUI}Which directory to use for the file browser:   lastUse same directoryas with last file browser, whereafile was opened or saved.   bufferUse the directory of the related buffer.   currentUse the current directory.{path}Use the specified directory'bufhidden''bh''bufhidden''bh'string (default: "")local to bufferlocal-noglobalThis optionspecifies what happens whena bufferis no longerdisplayed ina window:<empty>follow the global'hidden' option  hidehide the buffer (don't unload it), even if'hidden'isnot set  unloadunload the buffer, even if'hidden'is set; the:hide command will also unload the buffer  deletedelete the buffer from the buffer list, even if'hidden'is set; the:hide command will also deletethe buffer, makingit behave like:bdelete  wipewipe the buffer from the buffer list, even if'hidden'is set; the:hide command will also wipeout the buffer, makingit behave like:bwipeoutCAREFUL: when "unload", "delete" or "wipe"is used changes ina bufferare lost withouta warning.  Also, these values may breakautocommandsthat switch betweenbuffers temporarily.This optionis used together with'buftype' and'swapfile' to specifyspecial kinds of buffers.   Seespecial-buffers.'buflisted''bl''nobuflisted''nobl'E85'buflisted''bl'boolean (default: on)local to bufferWhen this optionis set, the buffer shows up in the buffer list.  Ifitis resetitis not used for ":bnext", "ls", the Buffers menu, etc.This optionis reset by Vim forbuffers that are only used to remembera file name or marks.  Vim setsit whenstarting to edita buffer.But not when moving toa buffer with ":buffer".'buftype''bt'E382'buftype''bt'string (default: "")local to bufferlocal-noglobalThe value of this optionspecifies the type ofa buffer:<empty>normal buffer  nofilebuffer whichis not related toa file and will not bewritten  nowritebuffer which will not be written  acwritebuffer which will always be written withBufWriteCmdautocommands.quickfixquickfix buffer, containslist oferrors:cwindoworlist of locations:lwindowhelphelp buffer (you are not supposed to set thismanually)terminalbuffer foraterminal (you are not supposed to setthis manually)  promptbuffer where only the last line can be edited, meantto be used bya plugin, seeprompt-buffer{only when compiled with the |+channel| feature}popupbuffer used inapopup window, seepopup.{only when compiled with the |+textprop| feature}This optionis used together with'bufhidden' and'swapfile' tospecify special kinds of buffers.   Seespecial-buffers.Also seewin_gettype(), which returns the type of the window.Be careful withchanging this option,it can have many side effects!One such effectis that Vim will not check thetimestamp of the file,if the fileis changed by another program this will not be noticed.A "quickfix" bufferis only used for the errorlist and the locationlist.  This valueis set by the:cwindow and:lwindow commands andyou are not supposed to change it."nofile" and "nowrite"buffers are similar:both:The bufferis not to be written to disk, ":w" doesn'twork(":w filename" does work though).both:The bufferis never considered to be'modified'.Thereis no warning when the changes will be lost, forexample when you quit Vim.both:A swap fileis only created when using too much memory(when'swapfile' has been reset thereis nevera swapfile).nofile only:The buffer nameis fixed,itis not handled likeafile name.  Itis not modified in response toa:cdcommand.both:When using ":e bufname" and already editing "bufname"the bufferis made empty andautocommands aretriggeredas usual for:edit.E676"acwrite" implies that the buffer nameis not related toa file, like"nofile", butit will be written.  Thus, in contrast to "nofile" and"nowrite", ":w" does work anda modified buffer can't be abandonedwithout saving.  Forwriting theremust be matchingBufWriteCmd,FileWriteCmd orFileAppendCmd autocommands.'casemap''cmp''casemap''cmp'string(default: "internal,keepascii")globalSpecifies details aboutchanging thecase of letters.  It may containthese words, separated bya comma:internalUse internalcasemapping functions, the currentlocale does not change thecase mapping.  This onlymatters when'encoding'isaUnicode encoding,"latin1" or "iso-8859-15".  When "internal"isomitted, the towupper() and towlower() system libraryfunctions are used when available.keepasciiFor the ASCII characters (0x00 to 0x7f) use the UScase mapping, the currentlocaleis not effective.This probably only matters for Turkish.'cdhome''cdh''nocdhome''nocdh''cdhome''cdh'boolean(default: off)globalWhen on,:cd,:tcd and:lcd without an argument changes thecurrent working directory to the$HOME directory like in Unix.When off, those commands just print the current directory name.OnUnix this option has no effect.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.NOTE: This optionis reset when'compatible'is set.'cdpath''cd'E344E346'cdpath''cd'string(default: equivalent to $CDPATH or ",,")globalThisisalist of directories which will be searched when using the:cd,:tcd and:lcd commands, provided that the directory beingsearched for hasa relative path, not an absolute partstarting with"/", "./" or "../", the'cdpath' optionis not used then.The'cdpath' option's value has the same form and semanticsas'path'.  Also seefile-searching.The default valueis taken from $CDPATH, witha "," prepended to lookin the current directory first.If the default value taken from $CDPATHis not what you want, includea modified version of the following command in yourvimrc file tooverride it:  :let &cdpath = ',' .. substitute(substitute($CDPATH, '[, ]', '\\\0', 'g'), ':', ',', 'g')This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.(parts of'cdpath' can be passed to the shell to expand file names).'cedit''cedit'string(Vi default: "", Vim default:CTRL-F)globalThe key used inCommand-line Mode to open the command-line window.The defaultisCTRL-F when'compatible'is off.Only non-printable keys are allowed.The key can be specifiedasa single character, butitis difficult totype.  The preferred wayis to usekey-notation (e.g.<Up>,<C-F>) oraletter preceded witha caret (e.g.^FisCTRL-F).  Examples::set cedit=^Y:set cedit=<Esc>Nvi also has this option, butit only uses the first character.Seecmdwin.NOTE: This optionis set to the Vim default value when'compatible'is reset.'charconvert''ccv'E202E214E513'charconvert''ccv'string (default "")global{only available when compiled with the |+eval| feature}Anexpression thatis used for character encoding conversion.  Itisevaluated whena file thatis to be read or has been written hasadifferent encoding from whatis desired.'charconvert'is not used when the internaliconv() functionissupported andis able todo the conversion.  Usingiconv()ispreferred, becauseitis much faster.'charconvert'is not used when reading stdin--, because thereis nofile to convert from.  You will have to save the text ina file first.Theexpressionmust return zero,false or an emptystring for success,non-zero ortrue for failure.The possible encoding names encountered are in'encoding'.Additionally, names given in'fileencodings' and'fileencoding' areused.Conversion between "latin1", "unicode", "ucs-2", "ucs-4" and "utf-8"is done internally by Vim,'charconvert'is not used for this.'charconvert'is also used to convert theviminfo file, if the 'c'flagis present in'viminfo'.  Also used forUnicode conversion.Example:set charconvert=CharConvert()fun CharConvert()  system("recode "\ .. v:charconvert_from .. ".." .. v:charconvert_to\ .. " <" .. v:fname_in .. " >" .. v:fname_out)  return v:shell_errorendfunThe related Vimvariables are:v:charconvert_fromname of the current encodingv:charconvert_toname of the desired encodingv:fname_inname of the input filev:fname_outname of the output fileNote thatv:fname_in andv:fname_out will never be the same.Note thatv:charconvert_from andv:charconvert_to may be differentfrom'encoding'.  Vim internally usesUTF-8 instead of UCS-2 or UCS-4.The advantage of usinga function call without argumentsis thatitisfaster, seeexpr-option-function.Encryptionis not done by Vim when using'charconvert'.  If you wantto encrypt the file after conversion,'charconvert' should take careof this.If the'charconvert'expression starts with s: or<SID>, thenitisreplaced with thescript ID(local-function). Example:set charconvert=s:MyConvert()set charconvert=<SID>SomeConvert()Otherwise theexpressionis evaluated in the context of thescriptwhere the option was set, thusscript-local items are available.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'chistory''chi''chistory''chi'number(default: 10)global{only available when compiled with the+quickfixfeature}Number ofquickfix lists that should be remembered for thequickfixstack.  Must be between 1 and 100.  If the optionis set toa valuethatis lower than the amount of entries in thequickfixlist stack,entries will be removedstarting from the oldest one.  If the currentquickfixlist was removed, then thequickfixlistat top of the stack(the most recently created) will be used in its place.  For additionalinfo, seequickfix-stack.'cindent''cin''nocindent''nocin''cindent''cin'boolean(default off)local to bufferEnables automaticC program indenting.  See'cinkeys' to set the keysthat trigger reindenting ininsert mode and'cinoptions' to set yourpreferred indent style.If'indentexpr'is not empty,it overrules'cindent'.If'lisp'is not on and both'indentexpr' and'equalprg' are empty,the "="operator indents using this algorithm rather than calling anexternal program.SeeC-indenting.When you don't like the way'cindent' works, try the'smartindent'option or'indentexpr'.This optionis not used when'paste'is set.NOTE: This optionis reset when'compatible'is set.'cinkeys''cink''cinkeys''cink'string(default "0{,0},0),0],:,0#,!^F,o,O,e")local to bufferAlist of keys that, when typed inInsert mode, cause reindenting ofthe current line.  Only used if'cindent'is on and'indentexpr'isempty.For the format of this option seecinkeys-format.SeeC-indenting.'cinoptions''cino''cinoptions''cino'string(default "")local to bufferThe'cinoptions' affect the way'cindent' reindents lines inaCprogram.  Seecinoptions-values for the values of this option, andC-indenting for info onC indenting in general.'cinscopedecls''cinsd''cinscopedecls''cinsd'string(default "public,protected,private")local to bufferKeywords that are interpretedasa C++ scope declaration bycino-g.Useful e.g. for working with the Qt framework that defines additionalscope 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")local to bufferThese keywords start an extra indent in the next line when'smartindent' or'cindent'is set.  For'cindent' thisis only doneatan appropriate place (inside {}).Note that'ignorecase' isn't used for'cinwords'.  Ifcase doesn'tmatter, include the keyword both theuppercase and lowercase:"if,If,IF".'clipboard''cb''clipboard''cb'string(default "autoselect,exclude:cons\|linux"  for X-windows, "" otherwise)global{only inGUI versions or when the+xterm_clipboardor+wayland_clipboard features are included}This optionisalist of comma-separated names.Note: if one of the itemsis "exclude:", then you can't add an itemafter that.  Thereforedo not append an item with += but use ^= toprepend, e.g.:set clipboard^=unnamedWhen using theGUI see'go-A'.These names are recognized:clipboard-unnamedunnamedWhen included, Vim will use theclipboardregister'*'for all yank, delete, change andput operations whichwould normallygo to the unnamed register.  Whenaregisteris explicitly specified,it will always beused regardless of whether "unnamed"is in'clipboard'or not.  Theclipboardregister can always beexplicitly accessed using the "* notation.  Also seegui-clipboard.clipboard-unnamedplusunnamedplusA variant of the "unnamed" flag which uses theclipboardregister '+'(quoteplus) instead ofregister'*' for all yank, delete, change andputoperations which would normallygo to the unnamedregister.  When "unnamed"is also included to theoption,yank operations (but not delete, change or put)will additionally copy the text intoregister'*'.  IfWaylandis being used and the compositor does notsupport the primary-selection-unstable-v1 protocol,then the regular selectionis used in its place.  Onlyavailable with the+X11 or+wayland_clipboardfeature.  Availability can be checked with:if has('unnamedplus')clipboard-autoselectautoselectWorks like the 'a' flag in'guioptions': If present,then wheneverVisual modeis started, or theVisualarea extended, Vim tries to become the owner of thewindowing system's global selection orput theselected text on theclipboard used by the selectionregister "*.  See'go-a' andquotestar for details.When theGUIis active, the 'a' flag in'guioptions'is used, when theGUIis not active, this "autoselect"flagis used.Also applies to the modeless selection.clipboard-autoselectplusautoselectplus  Like "autoselect" but using the+register instead ofthe * register.  Compare to the 'P' flag in'guioptions'.clipboard-autoselectmlautoselectmlLike "autoselect", but for the modeless selectiononly.  Compare to the 'A' flag in'guioptions'.clipboard-htmlhtmlWhen theclipboard contains HTML, use this whenpasting.  When putting text on the clipboard,markitas HTML.  This works to copy rendered HTML fromFirefox, pasteitas raw HTML in Vim, select the HTMLin Vim and pasteit ina rich edit box in Firefox.You probably want to add this only temporarily,possibly useBufEnter autocommands.Only supported forGTK version 2 and later.clipboard-excludeexclude:{pattern}Definesapattern thatis matched against the name oftheterminal'term'.  If thereisa match, noconnection will be made to theX server or Waylandcompositor.  Thisis useful in this situation:- Running Vim ina console.- $DISPLAY/$WAYLAND_DISPLAYis set to start  applications on another display.- Youdo not want to connect to theX server/Wayland  compositor in the console, butdo want this inaterminal emulator.To never connect to theX server/Wayland compositoruse:exclude:.*This has the same effectas using the-X or-Yargument.Note that when thereis no connection to theX serverthewindow title won't be restored and theclipboardcannot be accessed.  Thisis the same for Wayland,except thereis no title restoring.The value of'magic'is ignored,{pattern}isinterpretedas if'magic' was on.The rest of the option value will be used for{pattern}, thismust be the last entry.'clipmethod''cpm''clipmethod''cpm'string(default for Unix: "wayland,x11", for VMS: "x11", otherwise: "")global{only when the+xterm_clipboard or+wayland_clipboard features are included}Specifies whichmethod of accessing the systemclipboardis used,depending on whichmethod works first oris available.  Supportedmethods are:waylandWayland selectionsx11X11 selectionsNote: This optionis ignored when either theGUIis running or if Vimis run ona system without Wayland orX11 support, suchas Windows ormacOS.  TheGUI or system way of accessing theclipboardis alwaysused instead.The option valueisalist of comma separated items.  Thelistisparsed left to right in order, and the firstmethod that Vimdeterminesis available oris workingis usedas the actualmethod foraccessing the clipboard.The currentmethod thatis being used can be found in thev:clipmethodvariable.'cmdheight''ch''cmdheight''ch'number(default 1)global or local totab pageNumber of screen lines to use for the command-line.A larger valuehelps avoidinghit-enter prompts.The value of this optionis stored with thetab page, so that eachtabpage can havea different value.'cmdwinheight''cwh''cmdwinheight''cwh'number(default 7)globalNumber of screen lines to use for the command-line window.cmdwin'colorcolumn''cc''colorcolumn''cc'string(default "")local towindow{not available when compiled without the+syntaxfeature}'colorcolumn'isa comma-separatedlist of screen columns that arehighlighted with ColorColumnhl-ColorColumn.  Useful to aligntext.  Will make screen redrawing slower.The screen column can be an absolute number, ora number preceded with'+' or '-', whichis added to or subtracted from'textwidth'.:set cc=+1  " highlight column after 'textwidth':set cc=+1,+2,+3  " highlight three columns after 'textwidth':hi ColorColumn ctermbg=lightgrey guibg=lightgreyWhen'textwidth'is zero then the items with '-' and '+' are not used.A maximum of 256 columns are highlighted.'columns''co'E594'columns''co'number(default 80 orterminal width)globalNumber of columns of the screen.  Normally thisis set by theterminalinitialization and does not have to be set by hand.  Also seeposix-screen-size.When Vimis running in theGUI or ina resizable window, setting thisoption will cause thewindow size to be changed.  When you only wantto use the size for the GUI,put the command in yourgvimrc file.When you set this option and Vimis unable to change the physicalnumber of columns of the display, the display may be messed up.  FortheGUIitis always possible and Vimlimits the number of columns towhat fits on the screen.  You can use this command to get the widestwindow possible::set columns=9999Minimum valueis 12, maximum valueis 10000.'comments''com'E524E525'comments''com'string(default"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-")local to bufferA comma-separatedlist of strings that can starta comment line.  Seeformat-comments.  Seeoption-backslash about using backslashes toinserta space.'commentstring''cms'E537'commentstring''cms'string(default "/* %s */")local to buffer{not available when compiled without the+foldingfeature}Atemplate fora comment.  The "%s" in the valueis replaced with thecomment text, and should be padded withaspace when possible.Currently used to add markers for folding, seefold-marker.  Alsocommonly used by commenting plugins (e.g.comment-install).'compatible''cp''nocompatible''nocp''compatible''cp'boolean(default on, off whenavimrc orgvimrcfileis found, reset indefaults.vim)globalThis option has the effect of making Vim either more Vi-compatible, ormake Vim behave ina more useful way.Thisisa special kind of option, because when it's set or reset,otheroptions are also changedasa side effect.NOTE: Setting or resetting this option can havea lot of unexpectedeffects: Mappings are interpreted in another way,undo behavesdifferently, etc.  If you set this option in yourvimrc file, youshould probablyputitat the very start.By default this optionis on and theVi defaults are used for theoptions.  This default was chosen for those people who want to use Vimjust like Vi, and don't even (want to) know about the'compatible'option.Whenavimrc orgvimrc fileis found while Vimisstarting up,this optionis switched off, and alloptions that have not beenmodified will be set to the Vim defaults.  Effectively, this meansthat whenavimrc orgvimrc file exists, Vim will use the Vimdefaults, otherwiseit will use theVi defaults.  (Note: This doesn'thappen for the system-widevimrc orgvimrc file, nor fora file givenwith the-u argument).  Also seecompatible-default andposix-compliance.You can also set this option with the "-C" argument, and resetit with"-N".  See-C and-N.See'cpoptions' for more fine tuning ofVi compatibility.When this optionis set, numerous otheroptions are set to make VimasVi-compatibleas possible.  When this optionis unset,variousoptionsare set to make Vim more useful.  The table below lists all theoptions affected.The{?} column indicates when theoptions are affected:+  Means that the optionis set to the value given in{set value} when'compatible'is set.&  Means that the optionis set to the value given in{set value} when'compatible'is set ANDis set to its Vim default value when'compatible'is unset.-  Means the optionis NOT changed when setting'compatible' but IS   set to its Vim default when'compatible'is unset.The{effect} column summarises the change when'compatible'is set.option? set valueeffect'allowrevins'+ offnoCTRL-_ command'antialias'+ offdon't use antialiased fonts'arabic'+ offreset arabic-relatedoptions'arabicshape'+ oncorrect character shapes'backspace'+ ""normalbackspace'backup'+ offnobackup file'backupcopy'& Unix: "yes"backup fileisa copy  else: "auto"copy or renamebackup file'balloonexpr'+ ""text to show in evaluation balloon'breakindent'+ offdon't indent when wrapping lines'cedit'-{unchanged}{set vim default only on resetting 'cp'}'cdhome'+ off":cd" don't chdir tohome on non-Unix'cindent'+ offnoC code indentation'compatible'-{unchanged}{set vim default only on resetting 'cp'}'copyindent'+ offdon't copy indent structure'cpoptions'& (all flags)Vi-compatible flags'cscopepathcomp'+0don't show directories intagslist'cscoperelative'+ offdon't use basename of pathas prefix'cscopetag'+ offdon't usecscope for ":tag"'cscopetagorder'+0seecscopetagorder'cscopeverbose'+ offseecscopeverbose'delcombine'+ offunicode: delete whole char combination'digraph'+ offnodigraphs'esckeys'& offno<Esc>-keys inInsert modethis also disablesmodifyOtherKeysandxterm-bracketed-paste'expandtab'+ offtabs not expanded to spaces'fileformats'& ""no automatic file format detection,  "dos,unix"except forMS-Windows'formatexpr'+ ""use'formatprg' for auto-formatting'formatoptions'& "vt"Vi compatibleformatting'gdefault'+ offno default 'g' flag for ":s"'history'&0no commandlinehistory'hkmap'+ offno Hebrew keyboardmapping'hkmapp'+ offno phonetic Hebrew keyboardmapping'hlsearch'+ offno highlighting of search matches'incsearch'+ offno incremental searching'indentexpr'+ ""no indenting byexpression'insertmode'+ offdo not start inInsert mode'iskeyword'& "@,48-57,_"keywords contain alphanumericcharacters and '_''joinspaces'+ oninsert 2 spaces after period'modeline'& offno modelines'more'& offno pauses in listings'mzquantum'-{unchanged}{set vim default only on resetting 'cp'}'numberwidth'& 8min number of columns for line number'preserveindent'+ offdon't preserve current indent structurewhenchangingit'revins'+ offno reverseinsert'ruler'+ offno ruler'scrolljump'+ 1no jump scroll'scrolloff'+0no scroll offset'shelltemp'-{unchanged}{set vim default only on resetting 'cp'}'shiftround'+ offindent not rounded to shiftwidth'shortmess'& "S"no shortening ofmessages'showcmd'& offcommand characters not shown'showmode'& offcurrent mode not shown'sidescrolloff'+0cursor moves to edge of screen in scroll'smartcase'+ offno automatic ignorecase switch'smartindent'+ offno smart indentation'smarttab'+ offno smarttab size'softtabstop'+0no softtab stops'startofline'+ ongoto startofline with some commands'tagcase'& "followic"'ignorecase' when searchingtags file'tagrelative'& offtag file names are not relative'termguicolors'+ offdon't use highlight-(guifg|guibg)'textauto'& offno automatic textmode detection'textwidth'+0no automatic line wrap'tildeop'+ offtildeis not anoperator'ttimeout'+ offnoterminal timeout'undofile'+ offdon't use anundo file'viminfo'-{unchanged}{set Vim default only on resetting 'cp'}'virtualedit'+ ""cursor can only be placed on characters'whichwrap'& ""left-right movements don't wrap'wildchar'&CTRL-Eonly when the current valueis<Tab>useCTRL-E for cmdline completion'writebackup'+ on or offdepends on the+writebackup feature'complete''cpt'E535'complete''cpt'string(default: ".,w,b,u,t,i")local to bufferThis optionspecifies how keyword completionins-completion workswhenCTRL-P orCTRL-N are used.  Itis also used for whole-linecompletioni_CTRL-X_CTRL-L.  It indicates the type of completionand the places to scan.  Itisa comma-separatedlist of flags:.scan the current buffer ('wrapscan'is ignored)wscanbuffers from otherwindowsbscan other loadedbuffers that are in the bufferlistuscan the unloadedbuffers that are in the bufferlistUscan thebuffers that are not in the bufferlistkscan the files given with the'dictionary' optionkspell  use the currently activespell checkingspellk{dict}scan the file{dict}.  Several "k" flags can be given,patterns are valid too.  For example::set cpt=k/usr/dict/*,k~/spanishsscan the files given with the'thesaurus' options{tsr}scan the file{tsr}.  Several "s" flags can be given, patternsare valid too.iscan current and included filesdscan current and included files for defined name ormacroi_CTRL-X_CTRL-D]tag completiontsameas "]"F{func}call the function{func}.  Multiple "F" flags may be specified.Refer tocomplete-functions for details on how the functionis invoked and whatit should return.  The value can be thename ofa function oraFuncref.  ForFuncref values,spacesmust be escaped withabackslash ('\'), and commas withdouble backslashes ('\\') (seeoption-backslash).If theDict returned by the{func} includes{"refresh": "always"},the function will be invoked again whenever the leading textchanges.Completion matches are always insertedat the keywordboundary, regardless of the column returned by{func} whena:findstartis 1.  This ensures compatibility with othercompletion sources.To make further modifications to the inserted text,{func}can make use ofCompleteDonePre.If generating matchesis potentially slow,complete_check()should be used to avoid blocking and preserve editorresponsiveness.Fequivalent to using "F{func}", where the functionis taken fromthe'completefunc' option.oequivalent to using "F{func}", where the functionis taken fromthe'omnifunc' option.Unloadedbuffers are not loaded, thus their autocmds:autocmd arenot executed, this may lead to unexpected completions from some files(gzipped files for example).  Unloadedbuffers are not scanned forwhole-line completion.The defaultis ".,w,b,u,t,i", which means to scan:   1. the current buffer   2.buffers in otherwindows   3. other loadedbuffers   4. unloadedbuffers   5.tags   6. included filesAs you can see,CTRL-N andCTRL-P can be used todo any'iskeyword'-based expansion (e.g., dictionaryi_CTRL-X_CTRL-K, included patternsi_CTRL-X_CTRL-I,tagsi_CTRL-X_CTRL-] and normal expansions).An optional match limit can be specified fora completion source byappendinga caret("^") followed bya{count} to the source flag.For example: ".^9,w,u,t^5"limits matches from the current bufferto 9 and fromtags to 5.  Other sources remain unlimited.Note: The match limit takes effect only during forward completion(CTRL-N) andis ignored during backward completion (CTRL-P).'completefunc''cfu''completefunc''cfu'string(default: empty)local to buffer{not available when compiled without the+evalfeature}This optionspecifiesa function to be used forInsert mode completionwithCTRL-XCTRL-U.i_CTRL-X_CTRL-USeecomplete-functions for an explanation of how the functionisinvoked and whatit should return.  The value can be the name ofafunction,alambda oraFuncref. Seeoption-value-function formore information.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'completefuzzycollect''cfc''completefuzzycollect''cfc'string(default: empty)globalA comma-separatedlist of strings to enable fuzzy collection forspecificins-completion modes, affecting how matches are gatheredduring completion.  For specified modes, fuzzy matchingis used tofind completion candidates instead of the standard prefix-basedmatching.  This option can contain the following values:keywordkeywords in the current filei_CTRL-X_CTRL-Nkeywords with flags ".", "w",i_CTRL-Ni_CTRL-P"b", "u", "U" and "k{dict}" in'complete'keywords in'dictionary'i_CTRL-X_CTRL-Kfilesfile namesi_CTRL-X_CTRL-Fwhole_linewhole linesi_CTRL-X_CTRL-LWhen using the'completeopt' "longest" option value, fuzzy collectioncan identify the longest commonstring among the best fuzzy matchesandinsertit automatically.'completeitemalign''cia''completeitemalign''cia'string (default: "abbr,kind,menu")  globalA comma-separatedlist of strings that controls the alignment anddisplay order of items in thepopup menu duringInsert modecompletion.  The supported values are "abbr", "kind", and "menu".These values allow customizing howcomplete-items are shown in thepopup menu.Note:must always contain those three values in anyorder.'completeopt''cot''completeopt''cot'string(default: "menu,preview")global or local to bufferglobal-localA comma-separatedlist ofoptions forInsert mode completionins-completion.  The supported values are:   fuzzy    Enablefuzzy-matching for completion candidates. This    allows for more flexible and intuitive matching, where    characters can be skipped and matches can be found even    if the exact sequenceis not typed.Note: This option    does not affect the collection of candidate list,it only    controls how completion candidates are reduced from thelist of alternatives.  If you want to usefuzzy-matching    to gather more alternatives for your candidate list,    see'completefuzzycollect'.   longest  Onlyinsert the longest common text of the matches.  If    the menuis displayed you can useCTRL-L to add more    characters.  Whethercaseis ignored depends on the kind    of completion.  For buffer text the'ignorecase' optionis    used.   menu    Useapopup menu to show the possible completions.  The    menuis only shown when thereis more than one match and    sufficient colors are available.ins-completion-menu   menuone  Use thepopup menu also when thereis only one match.    Useful when thereis additional information about the    match, e.g., what fileit comes from.   nearest  Matches are listed based on their proximity to the cursor    position, unlike the default behavior, which only    considers proximity for matches appearing below the    cursor.  This applies only to matches from the current    buffer.  No effect if "fuzzy"is present.   noinsert Do notinsert any text fora match until the user selectsa match from the menu.  Only works in combination with    "menu" or "menuone".  No effect if "longest"is present.   noselect Sameas "noinsert", except that no menu itemis    pre-selected.  If both "noinsert" and "noselect" are    present, "noselect" has precedence.   nosort   Disablesorting of completion candidates based on fuzzy    scores when "fuzzy"is enabled.  Candidates will appear    in their original order.popup    Show extra information about the currently selected    completion inapopup window.  Only works in combination    with "menu" or "menuone".  Overrides "preview".    See'completepopup' for specifying properties.{only works when compiled with the |+textprop| feature}   popuphidden    Just like "popup" but initially hide the popup.  UseaCompleteChangedautocommand tofetch the info and callpopup_show() once thepopup has been filled.    See the exampleatcomplete-popuphidden.{only works when compiled with the |+textprop| feature}   preinsert    Preinsert the portion of the first candidateword thatis    not part of the current completion leader and using thehl-ComplMatchIns highlight group.  In order forit to    work, "fuzzy"must not be set and "menuone"must be set.   preview  Show extra information about the currently selected    completion in the preview window.  Only works in    combination with "menu" or "menuone".This option does not apply tocmdline-completion. See'wildoptions'for that.'completepopup''cpp''completepopup''cpp'string (default empty)global{not available when compiled without the+textpropor+quickfix feature}When'completeopt' contains "popup" then this optionis used for theproperties of the infopopup whenitis created.  If an infopopupwindow already existsitis closed, so that the option valueisapplied whenitis created again.You can also usepopup_findinfo() and then set properties for anexisting infopopup withpopup_setoptions().  Seecomplete-popup.'completeslash''csl''completeslash''csl'string(default: "")local to buffer{only for MS-Windows}When this optionis setit overrules'shellslash' for completion:- When this optionis set to "slash",a forward slashis used for path  completion ininsert mode. Thisis useful when editing HTML tag, or  Makefile with'noshellslash' on MS-Windows.- When this optionis set to "backslash",backslashis used. Thisis  useful when editinga batch file with'shellslash' set on MS-Windows.- When this optionis empty, same characteris usedas for'shellslash'.ForInsert mode completion the buffer-local valueis used.  Forcommand line completion the global valueis used.'concealcursor''cocu''concealcursor''cocu'string (default: "")local towindow{not available when compiled without the+concealfeature}Sets the modes in which text in the cursor line can also be concealed.When the current modeis listed then concealing happens just like inother lines.nNormal modevVisual modeiInsert modecCommand line editing, for'incsearch''v' applies to all lines in theVisual area, not only the cursor.A useful valueis "nc".  Thisis used inhelp files.  So longas youare moving around textis concealed, but whenstarting toinsert textor selectingaVisual area the concealed textis displayed, so thatyou can see what you are doing.Keep in mind that the cursor positionis not always where it'sdisplayed.  E.g., when moving verticallyit may change column.'conceallevel''cole''conceallevel''cole'number (default 0)local towindow{not available when compiled without the+concealfeature}Determine how text with the "conceal"syntax attribute:syn-concealis shown:ValueEffect0Textis shown normally1Each block of concealed textis replaced with onecharacter.  If thesyntax item does not havea customreplacement character defined (see:syn-cchar) thecharacter defined in'listchars'is used (defaultisaspace).Itis highlighted with the "Conceal" highlight group.2Concealed textis completely hidden unlessit hasacustom replacement character defined (see:syn-cchar).3Concealed textis completely hidden.Note: in the cursor line concealed textis not hidden, so that you canedit and copy the text.  This can be changed with the'concealcursor'option.'confirm''cf''noconfirm''nocf''confirm''cf'boolean (default off)globalWhen'confirm'is on, certain operations that would normallyfail because of unsaved changes toa buffer, e.g. ":q" and ":e",instead raiseadialog asking if you wish to save the currentfile(s).  You can still usea! to unconditionallyabandona buffer.If'confirm'is off you can still activate confirmation for onecommand only (thisis most useful in mappings) with the:confirmcommand.Also see theconfirm() function and the 'v' flag in'guioptions'.'conskey''consk''noconskey''noconsk''conskey''consk'boolean(default off)globalThis was forMS-DOS andis no longer supported.'copyindent''ci''nocopyindent''noci''copyindent''ci'boolean(default off)local to bufferCopy the structure of the existing lines indent when autoindentinganew line.  Normally the new indentis reconstructed bya series oftabs followed by spacesas required (unless'expandtab'is enabled,in whichcase only spaces are used).  Enabling this option makes thenew line copy whatever characters were used for indenting on theexisting line.'expandtab' has no effect on these characters,aTabremainsa Tab.  If the new indentis greater than on the existingline, the remainingspaceis filled in the normal manner.NOTE: This optionis reset when'compatible'is set.Also see'preserveindent'.'cpoptions''cpo'cpo'cpoptions''cpo'string(Vim default: "aABceFsz",Vi default:  all flags, except "#{|&/\."$VIM_POSIX:  all flags)globalA sequence of single character flags.  Whena characteris presentthis indicates Vi-compatible behavior.  Thisis used for things wherenot being Vi-compatibleis mostly or sometimes preferred.'cpoptions' stands for "compatible-options".Commas can be added for readability.To avoid problems with flags that are added in the future, use the"+=" and "-=" feature of ":set"add-option-flags.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.NOTE: InaVim9 script, whenvim9scriptis encountered, the valueis saved,'cpoptions'is set to the Vim default, and the saved valueis restoredat theend of the script.  Changes to the value of'cpoptions' will be applied to the saved value, but keep in mind thatremovinga flag thatis not present when'cpoptions'is changed has noeffect.  In the.vimrc file the valueis not restored, thus usingvim9script in the.vimrc file results in using the Vim default.NOTE: This optionis set to the POSIX default valueatstartup whentheVi default value would be used and the$VIM_POSIX environmentvariable existsposix.  This means Vim tries to behave like thePOSIX specification.    containsbehaviorcpo-aaWhen included,a ":read" command witha file nameargument will set the alternate file name for thecurrent window.cpo-AAWhen included,a ":write" command witha file nameargument will set the alternate file name for thecurrent window.cpo-bb"\|" ina ":map" commandis recognizedas theend ofthe map command.  The '\'is included in the mapping,the text after the'|'is interpretedas the nextcommand.  UseaCTRL-V instead ofabackslash toinclude the'|' in the mapping.  Applies to allmapping, abbreviation, menu and autocmd commands.See alsomap_bar.cpo-BBAbackslash has no special meaning in mappings,abbreviations, user commands and the "to" part of themenu commands.  Remove this flag to be able to useabackslash likeaCTRL-V.  For example, the command":mapX \<Esc>" results inX being mapped to:'B' included:"\^[" (^[isa real<Esc>)'B' excluded:"<Esc>"  (5 characters)('<' excluded in both cases)cpo-ccSearching continuesat theend of any matchat thecursor position, but not further than the start of thenext line.  When not present searching continuesone character from the cursor position.  With 'c'"abababababab" only gets three matches whenrepeating"/abab", without 'c' there are five matches.cpo-CCDo not concatenate sourced lines that start withabackslash.  Seeline-continuation.cpo-ddUsing "./" in the'tags' option doesn't mean to usethetags file relative to the current file, but thetags file in the current directory.cpo-DDCan't useCTRL-K to enteradigraph afterNormal modecommands witha character argument, liker,f andt.cpo-eeWhen executingaregister with ":@r", always adda<CR> to the last line, also when theregisteris notlinewise.  If this flagis not present, theregisteris notlinewise and the last line does notend ina<CR>, then the last lineisput on the command-lineand can be edited before hitting<CR>.cpo-EEItis an error when using "y", "d", "c", "g~", "gu" or"gU" on an Empty region.  The operators only work whenat least one characteris to be operated on.  Example:This makes "y0" fail in the first column.cpo-ffWhen included,a ":read" command witha file nameargument will set the file name for the current buffer,if the current buffer doesn't havea file name yet.cpo-FFWhen included,a ":write" command witha file nameargument will set the file name for the currentbuffer, if the current buffer doesn't havea file nameyet.  Also seecpo-P.cpo-ggGoto line 1 when using ":edit" without argument.cpo-HHWhen using "I" ona line with only blanks,insertbefore the last blank.  Without this flaginsert afterthe last blank.cpo-iiWhen included, interrupting the reading ofa file willleaveit modified.cpo-IIWhen moving the cursor up or down just afterinsertingindent for'autoindent',do not delete the indent.cpo-jjWhen joining lines, only add two spaces aftera '.',not after '!' or '?'.  Also see'joinspaces'.cpo-JJAsentence has to be followed by two spaces afterthe '.', '!' or '?'.A<Tab>is not recognizedaswhite space.cpo-kkDisable the recognition of raw key codes inmappings, abbreviations, and the "to" part of menucommands.  For example, if<Key> sends ^[OA (where ^[is<Esc>), the command ":mapX ^[OA" results inXbeing mapped to:'k' included:"^[OA" (3 characters)'k' excluded:"<Key>"  (one key code)Also see the '<' flag below.cpo-KKDon't wait fora key code to complete whenitishalfwaya mapping.  This breaksmapping<F1><F1> whenonly part of the second<F1> has been read.  Itenables cancelling themapping by typing<F1><Esc>.cpo-llBackslash ina[] range ina searchpatternis takenliterally, only "\]", "\^", "\-" and "\\" are special.See/[]   'l' included: "/[ \t]"  finds<Space>, '\' and 't'   'l' excluded: "/[ \t]"  finds<Space> and<Tab>Also seecpo-\.cpo-LLWhen the'list' optionis set,'wrapmargin','textwidth','softtabstop' and VirtualReplace mode(seegR)counta<Tab>as two characters, instead ofthe normal behavior ofa<Tab>.cpo-mmWhen included,a showmatch will always wait halfasecond.  When not included,a showmatch will wait halfa second or untila characteris typed.'showmatch'cpo-MMWhen excluded, "%" matching will take backslashes intoaccount.  Thus in "( \()" and "\(( \)" the outerparenthesis match.  When included "%" ignoresbackslashes, whichisVi compatible.cpo-nnWhen included, the column used for'number' and'relativenumber' will also be used for text of wrappedlines.cpo-ooLine offset to search commandis not remembered fornext search.cpo-OODon't complain ifa fileis being overwritten, evenwhenit didn't exist when editing it.  Thisisaprotection againsta file unexpectedly created bysomeone else.Vi didn't complain about this.cpo-ppVi compatible Lisp indenting.  When not present,aslightly better algorithmis used.cpo-PPWhen included,a ":write" command that appends toafile will set the file name for the current buffer, ifthe current buffer doesn't havea file name yet andthe 'F' flagis also includedcpo-F.cpo-qqWhen joining multiple lines leave the cursorat theposition whereit would be when joining two lines.cpo-rrRedo("." command) uses "/" to repeata searchcommand, instead of the actually used search string.cpo-RRRemove marks from filtered lines.  Without this flagmarks are kept like:keepmarks was used.cpo-ssSet bufferoptions when entering the buffer for thefirst time.  Thisis likeitis inVim version 3.0.Anditis the default.  If not present theoptions areset when the bufferis created.cpo-SSSet bufferoptions always when enteringa buffer(except'readonly','fileformat','filetype' and'syntax').  Thisis the (most)Vi compatible setting.Theoptions are set to the values in the currentbuffer.  When you change an option andgo to anotherbuffer, the valueis copied.  Effectively makes thebufferoptions global to all buffers.'s'    'S'     copy bufferoptionsno     no      when buffer createdyes    no      when buffer first entered (default)X     yes     each time when buffer entered (vi comp.)cpo-ttSearchpattern for thetag commandis remembered for"n" command.  Otherwise Vim only puts thepattern inthehistory for search pattern, but doesn't change thelast used search pattern.cpo-uuUndoisVi compatible.  Seeundo-two-ways.cpo-vvBackspaced characters remain visible on the screen inInsert mode.  Without this flag the characters areerased from the screen right away.  With this flag thescreen newly typed text overwrites backspacedcharacters.cpo-wwWhen using "cw" ona blank character, only change onecharacter and not all blanks until the start of thenext word.cpo-WWDon't overwritea readonly file.  When omitted, ":w!"overwritesa readonly file, if possible.cpo-xx<Esc> on the command-line executes the command-line.The default in Vimis toabandon the command-line,because<Esc> normally abortsa command.c_<Esc>cpo-XXWhen usingacount with "R" the replaced textisdeleted only once.  Also whenrepeating "R" with "."anda count.cpo-yyAyank command can be redone with ".".  Think twice ifyou really want to use this,it may break someplugins, since most people expect "." to only repeatachange.cpo-ZZWhen using "w!" while the'readonly' optionis set,don't reset'readonly'.cpo-zzSpecial casing the "cw" and "d" command (seecw andd-special).cpo-!!When redoingafilter command, use the last usedexternal command, whateverit was.  Otherwise the lastused -filter- commandis used.cpo-$$When makinga change to one line, don't redisplay theline, butputa '$'at theend of the changed text.The changed text will be overwritten when you type thenew text.  The lineis redisplayed if you type anycommand that moves the cursor from the insertionpoint.cpo-%%Vi-compatible matchingis done for the "%" command.Does not recognize "#if", "#endif", etc.Does not recognize "/*" and "*/".Parens inside single and doublequotes are alsocounted, causingastring that containsa paren todisturb the matching.  For example, ina line like"if (strcmp("foo(", s))" the first paren does notmatch the last one.  When this flagis not included,parens inside single and doublequotes are treatedspecially.  When matchinga paren outside of quotes,everything insidequotesis ignored.  When matchingaparen inside quotes,it will find the matching one (ifthereis one).  This works very well forC programs.This flagis also used for other features, suchasC-indenting.cpo---When included,a verticalmovement command fails whenit wouldgo above the first line or below the lastline.  Withoutit the cursor moves to the first orlast line, unlessit already was in that line.Applies to the commands "-", "k",CTRL-P, "+", "j",CTRL-N,CTRL-J and ":1234".cpo-++When included,a ":write file" command will reset the'modified' flag of the buffer, even though the bufferitself may still be different from its file.cpo-star*Use ":*" in the same wayas ":@".  When not included,":*"is an alias for ":'<,'>", select theVisual area.cpo-<<Disable the recognition of special key codes in<>form in mappings, abbreviations, and the "to" part ofmenu commands.  For example, the command":mapX<Tab>" results inX being mapped to:'<' included:"<Tab>"  (5 characters)'<' excluded:"^I" (^Iisa real<Tab>)Also see the 'k' flag above.cpo->>When appending toa register,puta line break beforethe appended text.cpo-;;When using, or; to repeat the lastt searchand the cursoris right in front of the searchedcharacter, the cursor won't move. When not included,the cursor would skip overit and jump to thefollowing occurrence.POSIX flags.  These are not included in theVi default value, exceptwhen$VIM_POSIX was set on startup.posix    containsbehaviorcpo-##Acount before "D", "o" and "O" has no effect.cpo-&&When ":preserve" was used keep the swap file whenexiting normally while this bufferis still loaded.This flagis tested when exiting.cpo-\\Backslash ina[] range ina searchpatternis takenliterally, only "\]"is special  See/[]   '\' included: "/[ \-]"  finds<Space>, '\' and '-'   '\' excluded: "/[ \-]"  finds<Space> and '-'Also seecpo-l.cpo-//When "%"is usedas the replacementstring ina:scommand, use the previous replacement string.:s%cpo-{{The |{| and |}| commands also stopata "{" characterat the start ofa line.cpo-..The ":chdir" and ":cd" commands fail if the currentbufferis modified, unless!is used.  Vim doesn'tneed this, sinceit remembers the full path of anopened file.cpo-bar|The value of the $LINES and $COLUMNS environmentvariables overrule theterminal size values obtainedwith system specific functions.'cryptmethod''cm''cryptmethod''cm'string(default "blowfish2")global or local to bufferglobal-localMethod used forencryption when the bufferis written toa file:pkzipzipPkZip compatible method.A weak kind of encryption.Backwards compatible with Vim 7.2 and older.Only use if you need to be backwards compatible.blowfishblowfishBlowfish method.  Medium strongencryption butit hasan implementation flaw.  Requires Vim 7.3 or later,files can NOT be read by Vim 7.2 and older.  This addsa "seed" to the file, every time you write the filethe encrypted bytes will be different.Obsolete, pleasedo no longer use.blowfish2blowfish2Blowfish method.  Medium strong encryption.  RequiresVim 7.4.401 or later, files can NOT be read by Vim 7.3and older.  This addsa "seed" to the file, every timeyou write the file the encrypted bytes will bedifferent.  The wholeundo fileis encrypted, not justthe pieces of text.E1193E1194E1195E1196E1230E1197E1198E1199E1200E1201   xchacha20XChaCha20 Cipher with Poly1305 Message AuthenticationCode.  Medium strong to strong encryption.Encryptionis provided by the libsodium library,itrequires Vim to be built with+sodium.It addsa seed anda message authentication code (MAC)to the file.  This needsat leasta Vim 8.2.3022 toread the encrypted file.Encryption of swap filesis not supported, thereforeno swap file will be used when xchacha20encryptionisenabled.Encryption ofundo filesis not yet supported,therefore noundo file will currently be written.CAREFUL: Files written with thismethod might have tobe read back with the same version of Vim if thebinary format changes later.Obsolete, pleasedo no longer use.   xchacha20v2  Same algorithmas with "xchacha20" that correctlystores the key derivation parameters together with theencrypted file.  Should work better incase theparameters in the libsodium library ever change.STILL EXPERIMENTAL: Files written with thismethodmight have to be read back with the same version ofVim if the binary format changes later.You should use "blowfish2", also to re-encrypt older files.  The"xchacha20"method provides better encryption, butit does not workwith all versions of Vim.When reading an encrypted file'cryptmethod' will be set automaticallyto the detectedmethod of the file being read.  Thus if you writeitwithoutchanging'cryptmethod' the samemethod will be used.Changing'cryptmethod' does notmark the fileas modified, you have toexplicitly write it, you don't geta warning unless there are othermodifications.  Also see:X.When setting the global value to an empty string,it willend up withthe value "blowfish2".  When setting the local value to an emptystring the buffer will use the global value.Whena newencryptionmethodis added ina later version of Vim, andthe current version does not recognize it, you will getE821.You need to edit this file with the later version of Vim.'cscopepathcomp''cspc''cscopepathcomp''cspc'number(default 0)global{not available when compiled without the+cscopefeature}Determines how many components of the path to show inalist of tags.Seecscopepathcomp.NOTE: This optionis set to0 when'compatible'is set.'cscopeprg''csprg''cscopeprg''csprg'string(default "cscope")global{not available when compiled without the+cscopefeature}Specifies the command to execute cscope.  Seecscopeprg.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'cscopequickfix''csqf''cscopequickfix''csqf'string(default "")global{not available when compiled without the+cscopeor+quickfix features}Specifies whether to usequickfixwindow to showcscope results.Seecscopequickfix.'cscoperelative''csre''nocscoperelative''nocsre''cscoperelative''csre'boolean (default off)global{not available when compiled without the+cscopefeature}In the absence ofa prefix (-P) for cscope. setting this option enablesto use the basename of cscope.out pathas the prefix.Seecscoperelative.NOTE: This optionis reset when'compatible'is set.'cscopetag''cst''nocscopetag''nocst''cscopetag''cst'boolean (default off)global{not available when compiled without the+cscopefeature}Usecscope fortag commands.  Seecscope-options.NOTE: This optionis reset when'compatible'is set.'cscopetagorder''csto''cscopetagorder''csto'number(default 0)global{not available when compiled without the+cscopefeature}Determines the order in which ":cstag" performsa search.  Seecscopetagorder.NOTE: This optionis set to0 when'compatible'is set.'cscopeverbose''csverb''nocscopeverbose''nocsverb''cscopeverbose''csverb'boolean (default off)global{not available when compiled without the+cscopefeature}Givemessages when addingacscope database.  Seecscopeverbose.NOTE: This optionis reset when'compatible'is set.'cursorbind''crb''nocursorbind''nocrb''cursorbind''crb'boolean  (default off)local towindowWhen this optionis set,as the cursor in the currentwindow moves other cursorboundwindows (windows that also havethis option set) move their cursors to the corresponding line andcolumn.  This optionis useful for viewing thedifferences between two versions ofa file (see'diff'); indiff mode,inserted and deleted lines (though not characters withina line) aretaken into account.'cursorcolumn''cuc''nocursorcolumn''nocuc''cursorcolumn''cuc'boolean(default off)local towindow{not available when compiled without the+syntaxfeature}Highlight the screen column of the cursor with CursorColumnhl-CursorColumn.  Useful to align text.  Will make screen redrawingslower.If you only want the highlighting in the currentwindow you can usethese autocommands:au WinLeave * set nocursorline nocursorcolumnau WinEnter * set cursorline cursorcolumn'cursorline''cul''nocursorline''nocul''cursorline''cul'boolean(default off)local towindow{not available when compiled without the+syntaxfeature}Highlight the text line of the cursor with CursorLinehl-CursorLine.Useful to easily spot the cursor.  Will make screen redrawing slower.WhenVisual modeis active the highlighting isn't used to makeiteasier to see the selected text.'cursorlineopt''culopt''cursorlineopt''culopt'string (default: "number,line")local towindow{not available when compiled without the+syntaxfeature}Comma-separatedlist of settings for how'cursorline'is displayed.Valid values:"line"Highlight the text line of the cursor withCursorLinehl-CursorLine."screenline"Highlight only the screen line of the cursor withCursorLinehl-CursorLine."number"Highlight the line number of the cursor withCursorLineNrhl-CursorLineNr.Special value:"both"Alias for the values "line,number"."line" and "screenline" cannot be used together.'debug''debug'string(default "")globalThese values can be used:msgErrormessages that would otherwise be omitted will be givenanyway.throwErrormessages that would otherwise be omitted will be givenanyway and also throw an exception and setv:errmsg.beepA message will be given when otherwise onlyabeep would beproduced.The values can be combined, separated bya comma."msg" and "throw" are useful for debugging'foldexpr','formatexpr' or'indentexpr'.'define''def''define''def'string(default "^\s*#\s*define")global or local to bufferglobal-localPattern to be used to findamacro definition.  Itisa searchpattern, just like for the "/" command.  This optionis used for thecommands like "[i" and "[d"include-search.  The'isident' optionisused to recognize the defined name after the match:{match with 'define'}{non-ID chars}{defined name}{non-ID char}Seeoption-backslash aboutinserting backslashes to includeaspaceor backslash.The default valueis forC programs.  For C++ this value would beuseful, 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 thepatternto check whatis following.  E.g. for Javascript, ifa functionisdefined with "func_name= function(args)":^\s*\ze\i\+\s*=\s*function(If the functionis defined with "func_name:function() {...":        ^\s*\ze\i\+\s*[:]\s*(*function\s*(When using the ":set" command, you need to double the backslashes!To avoid that use:let witha singlequote string:let &l:define = '^\s*\ze\k\+\s*=\s*function(''delcombine''deco''nodelcombine''nodeco''delcombine''deco'boolean (default off)globalIf editingUnicode and this optionis set,backspace andNormal mode"x" delete each combining character on its own.  Whenitis off (thedefault) the character along with its combining characters aredeleted.Note: When'delcombine'is set "xx" may work differently from "2x"!Thisis useful for Arabic, Hebrew and many other languages where onemay have combining characters overtop of base characters, and wantto remove only the combining ones.NOTE: This optionis reset when'compatible'is set.'dictionary''dict''dictionary''dict'string(default "")global or local to bufferglobal-localList of file names, separated by commas, that are used to lookup wordsfor keyword completion commandsi_CTRL-X_CTRL-K.  Each file shouldcontainalist of words.  This can be oneword per line, or severalwords per line, separated by non-keyword characters (whitespaceispreferred).  Maximum line lengthis 510 bytes.When this optionis empty or an entry "spell"is present, andspellcheckingis enabled, words in theword lists for the currently active'spelllang' are used. Seespell.To includea comma ina file name precedeit witha backslash.  Spacesaftera comma are ignored, otherwise spaces are included in the filename.  Seeoption-backslash about using backslashes.This has nothing todo with theDictionary variable type.Where to findalist of words?- On FreeBSD, thereis the file "/usr/share/dict/words".- In the Simtel archive, look in the "msdos/linguist" directory.- In "miscfiles" of the GNU collection.The use of:set+= and:set-=is preferred when adding or removingdirectories from the list.  This avoids problems whena future versionuses another default.Backticks cannot be used in this option for security reasons.'diff''nodiff''diff'boolean(default off)local towindow{not available when compiled without the+difffeature}Join the currentwindow in the group ofwindows that shows differencesbetween files.  Seevimdiff.'dex''diffexpr''diffexpr''dex'string(default "")global{not available when compiled without the+difffeature}Expression whichis evaluated to obtainadiff file (either ed-styleor unified-style) from two versions ofa file.  Seediff-diffexpr.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'dip''diffopt''diffopt''dip'string(default "internal,filler,closeoff,inline:simple")global{not available when compiled without the+difffeature}Option settings fordiff mode.  It can consist of the following items.All are optional.  Itemsmust be separated bya comma.algorithm:{text} Use the specifieddiff algorithm with theinternaldiff engine. Currently supportedalgorithms are:myers      the default algorithmminimal    spend extra time to generate the   smallest possiblediffpatience   patiencediff algorithmhistogram  histogramdiff algorithmcloseoffWhenawindowis closed where'diff'is setand thereis only onewindow remaining in thesametab page with'diff' set, execute:diffoff in that window.  This undoesa:diffsplit command.context:{n}Usea context of{n} lines betweena changeanda fold that contains unchanged lines.When omitteda context of six linesis used.When using zero the contextis actually one,sincefolds requirea line in between, alsofora deleted line. Setit toa very largevalue (999999) to disablefolding completely.Seefold-diff.fillerShow filler lines, to keep the textsynchronized withawindow that has insertedlinesat the same position.  Mostly usefulwhenwindows are side-by-side and'scrollbind'is set.foldcolumn:{n}Set the'foldcolumn' option to{n} whenstartingdiff mode.  Without this 2is used.followwrapFollow the'wrap' option and leaveasit is.horizontalStartdiff mode with horizontal splits (unlessexplicitly specified otherwise).hiddenoffDo not usediff mode fora buffer whenitbecomes hidden.iblankIgnore changes where lines are all blank.  Addsthe "-B" flag to the "diff" command if'diffexpr'is empty.  Check the documentationof the "diff" command for what this doesexactly.NOTE: thediffwindows will get out of sync,because no differences between blank lines aretaken into account.icaseIgnore changes incase of text.  "a" and "A"are considered the same.  Adds the "-i" flagto the "diff" command if'diffexpr'is empty.indent-heuristicUse the indent heuristic for the internaldiff library.inline:{text}Highlight inline differences withina change.Seeview-diffs.  Supported values are:none    Do not perform inline highlighting.simple  Highlight from first differentcharacter to the last one in eachline.  Thisis the default if noinline: valueis set.char    Use internaldiff to performacharacter-wisediff and highlight thedifference.word    Use internaldiff to performaword-wisediff and highlight thedifference.  Non-alphanumericmulti-byte characters suchas emojiand CJK characters are consideredindividual words.internalUse the internaldiff library.  Thisisignored when'diffexpr'is set.E960When running out of memory whenwritingabuffer this item will be ignored for diffsinvolving that buffer.  Set the'verbose'option to see when this happens.iwhiteIgnore changes in amount of white space.  Addsthe "-b" flag to the "diff" command if'diffexpr'is empty.  Check the documentationof the "diff" command for what this doesexactly.  It should ignore adding trailingwhite space, but not leading white space.iwhiteallIgnore all whitespace changes.  Addsthe "-w" flag to the "diff" command if'diffexpr'is empty.  Check the documentationof the "diff" command for what this doesexactly.iwhiteeolIgnore whitespace changesatend of line.Adds the "-Z" flag to the "diff" command if'diffexpr'is empty.  Check the documentationof the "diff" command for what this doesexactly.linematch:{n}   Align andmark changes between the mostsimilar lines between the buffers. When thetotal number of lines in thediff hunk exceeds{n}, the lines will not be aligned because forvery largediff hunks there will beanoticeable lag.A reasonable settingis"linematch:60",as this will enable alignmentfora 2 bufferdiff hunk of 30 lines each,ora 3 bufferdiff hunk of 20 lines each.verticalStartdiff mode with vertical splits (unlessexplicitly specified otherwise).Examples::set diffopt=internal,filler,context:4:set diffopt=:set diffopt=internal,filler,foldcolumn:3:set diffopt-=internal  " do NOT use the internal diff parser'digraph''dg''nodigraph''nodg''digraph''dg'boolean(default off)global{not available when compiled without the+digraphsfeature}Enable the entering ofdigraphs inInsert mode with{char1}<BS>{char2}.  Seedigraphs.NOTE: This optionis reset when'compatible'is set.'directory''dir''directory''dir'string(default for Amiga: ".,t:", for Win32: ".,$TEMP,c:\tmp,c:\temp" for Unix: ".,~/tmp,/var/tmp,/tmp")globalList of directory names for the swap file, separated with commas.Recommended value:  ".,~/vimswap//"- this willput the swap file nextto the edited file if possible, and in your personal swap directoryotherwise.  Make sure "~/vimswap//"is only readable for you.Possible items:- The swap file will be created in the first directory where thisis  possible.- Empty means that no swap file will be used (recoveryis  impossible!) and noE303 error will be given.-A directory "." means toput the swap file in the same directoryas  the edited file.  On Unix,a dotis prepended to the file name, soit doesn't show ina directory listing.  OnMS-Windows the "hidden"  attributeis set anda dot prepended if possible.-A directorystarting with "./" (or ".\" for MS-Windows) means toput  the swap file relative to where the edited file is.  The leading "."is replaced with the path name of the edited file.- ForUnix and Win32, ifa directory ends in two path separators "//",  the swap file name will be built from the complete path to the file  with all path separators replaced by percent '%'signs (including  the colon following the driveletter on Win32). This will ensure  file name uniqueness in the preserve directory.  On Win32,itis also possible toend with "\\".  However, Whena  separating commais following, youmust use "//", since "\\" will  include the comma in the file name. Thereforeitis recommended to  use '//', instead of '\\'.- Spaces after the comma are ignored, other spaces are considered part  of the directory name.  To haveaspaceat the start ofa directory  name, precedeit witha backslash.- To includea comma ina directory name precedeit witha backslash.-A directory name mayend in an ':' or '/'.- Environmentvariables are expanded:set_env.- Careful with '\' characters, type one beforea space, type two to  get one in the option (seeoption-backslash), for example:    :set dir=c:\\tmp,\ dir\\,with\\,commas,\\\ dir\ with\ spaces- For backwards compatibility withVim version 3.0a '>'at the start  of the optionis removed.Using "." first in thelistis recommended.  This means that editingthe same file twice will result ina warning.  Using "/tmp" onUnixisdiscouraged: When the system crashes you lose the swap file."/var/tmp"is often not cleared when rebooting, thusisa betterchoice than "/tmp".  But others on the computer may be able to see thefiles, andit can containa lot of files, your swap files get lost inthe crowd.  Thatis whya "tmp" directory in yourhome directoryistried first.The use of:set+= and:set-=is preferred when adding or removingdirectories from the list.  This avoids problems whena future versionuses another default.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'display''dy''display''dy'string(default "", set to "truncate" indefaults.vim)globalChange the way textis displayed.  Thisisa comma-separatedlist offlags:lastlineWhen included,as muchas possible of the last lineinawindow will be displayed.  "@@@"isput in thelast columns of the last screen line to indicate therest of the lineis not displayed.truncateLike "lastline", but "@@@"is displayed in the firstcolumn of the last screen line.  Overrules "lastline".uhexShow unprintable characters hexadecimalas<xx>instead of using ^C and ~C.When neither "lastline" nor "truncate"is included,a last line thatdoesn't fitis replaced with "@" lines.The "@" character can be changed by setting the "lastline" item in'fillchars'.  The characteris highlighted withhl-NonText.'eadirection''ead''eadirection''ead'string(default "both")globalTells when the'equalalways' option applies:ververtically, width ofwindowsis not affectedhorhorizontally, height ofwindowsis not affectedbothwidth and height ofwindowsis affected'ed''edcompatible''noed''noedcompatible''edcompatible''ed'boolean(default off)globalMakes the 'g' and 'c' flags of the ":substitute" command to betoggled each time the flagis given.  Seecomplex-change.  Seealso'gdefault' option.Switching this option on may break plugins!This optionis not used inVim9 script.'emoji''emo''noemoji''noemo''emoji''emo'boolean (default: on)globalWhen on allUnicode emoji characters are considered to be full width.This excludes "text emoji" characters, which are normally displayedassingle width.  Unfortunately thereis no good specification for thisandit has been determined on trial-and-error basis.  Use thesetcellwidths() function to change the behavior.'encoding''enc'E543'encoding''enc'string (default for MS-Windows: "utf-8",otherwise: value from $LANG or "latin1")globalSets the character encoding used inside Vim.  It applies to text inthe buffers, registers, Strings in expressions, text stored in theviminfo file, etc.  It sets the kind of characters which Vim can workwith.  Seeencoding-names for the possible values.NOTE: Changing this option will not change the encoding of theexisting text in Vim.  It may cause non-ASCII text to become invalid.It should normally be keptat its default value, or set when Vimstarts up.  Seemultibyte.  Toreload themenus see:menutrans.This option cannot be set fromamodeline.  It would most likelycorrupt the text.NOTE: ForGTK+ 2 or later,itis highly recommended to set'encoding'to "utf-8".  Although care has been taken to allow different values of'encoding', "utf-8"is the natural choice for the environment andavoids unnecessary conversion overhead.  "utf-8" has not been madethe default to prevent different behavior of theGUI andterminalversions, and to avoidchanging the encoding of newly created fileswithout your knowledge (incase'fileencodings'is empty).The character encoding of files can be different from'encoding'.Thisis specified with'fileencoding'.  The conversionis done withiconv() oras specified with'charconvert'.If you need to know whether'encoding'isamultibyte encoding, youcan use:if has("multi_byte_encoding")Normally'encoding' will be equal to your current locale.  This willbe the default if Vim recognizes your environment settings.  If'encoding'is not set to the current locale,'termencoding'must beset to convert typed and displayed text.  Seeencoding-table.When you set this option,it fires theEncodingChangedautocommandevent so that you can set up fonts if necessary.When the optionis set, the valueis converted to lowercase.  Thusyou can setit withuppercase values too.  Underscores are translatedto '-' signs.When the encodingis recognized,itis changed to the standard name.For example "Latin-1" becomes "latin1", "ISO_88592" becomes"iso-8859-2" and "utf8" becomes "utf-8".Note: "latin1"is also used when the encoding could not be detected.This only works when editing files in the same encoding!  When theactual character setis not latin1, make sure'fileencoding' and'fileencodings' are empty.  When conversionis needed, switch to usingutf-8.When "unicode", "ucs-2" or "ucs-4"is used, Vim internally uses utf-8.You don't notice this while editing, butit does matter for theviminfo-file.  And Vim expects theterminal to useutf-8 too.  Thussetting'encoding' to one of these values instead ofutf-8 only haseffect for encoding used for files when'fileencoding'is empty.When'encoding'is set toaUnicode encoding, and'fileencodings' wasnot set yet, the default for'fileencodings'is changed.'endoffile''eof''noendoffile''noeof''endoffile''eof'boolean(default off)local to bufferIndicates thataCTRL-Z character was foundat theend of the filewhen reading it.  Normally only happens when'fileformat'is "dos".Whenwritinga file and this optionis off and the'binary' optionis on, or'fixeol' optionis off, noCTRL-Z will be writtenat theend of the file.Seeeol-and-eof for example settings.'endofline''eol''noendofline''noeol''endofline''eol'boolean(default on)local to bufferWhenwritinga file and this optionis off and the'binary' optionis on, or'fixeol' optionis off, no<EOL> will be written for thelast line in the file.  This optionis automatically set or reset whenstarting to edita new file, depending on whether file has an<EOL>for the last line in the file.  Normally you don't have to set orreset this option.When'binary'is off and'fixeol'is on the valueis not used whenwriting the file.  When'binary'is on or'fixeol'is offitis usedto remember the presence ofa<EOL> for the last line in the file, sothat when you write the file the situation from the original file canbe kept.  But you can changeit if you want to.Seeeol-and-eof for example settings.'equalalways''ea''noequalalways''noea''equalalways''ea'boolean(default on)globalWhen on, all thewindows are automatically made the same size aftersplitting or closinga window.  This also happens the moment theoptionis switched on.  When off, splittingawindow will reduce thesize of the currentwindow and leave the otherwindows the same.  Whenclosingawindow the extra lines are given to thewindow next toit(depending on'splitbelow' and'splitright').When mixing vertically and horizontally split windows,a minimal sizeis computed and somewindows may be larger if thereis room.  The'eadirection' option tells in which direction the sizeis affected.Changing the height and width ofawindow can be avoided by setting'winfixheight' and'winfixwidth', respectively.Ifawindow sizeis specified when creatinga newwindow sizes arecurrently not equalized (it's complicated, but may be implemented inthe future).'equalprg''ep''equalprg''ep'string(default "")global or local to bufferglobal-localExternal program to use for "=" command.  When this optionis emptythe internalformattingfunctions are used; either'lisp','cindent'or'indentexpr'.  When Vim was compiled without internal formatting,the "indent" programis used.Environmentvariables are expanded:set_env.  Seeoption-backslashabout including spaces and backslashes.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'errorbells''eb''noerrorbells''noeb''errorbells''eb'boolean(default off)globalRing the bell (beep or screen flash) for error messages.  This onlymakesa difference for error messages, the bell will be used alwaysfora lot oferrors withouta message (e.g., hitting<Esc> inNormalmode).  See'visualbell' on how to make the bell behave likea beep,screen flash ordo nothing. See'belloff' to finetune when to ring thebell.'errorfile''ef''errorfile''ef'string(Amiga default: "AztecC.Err",others: "errors.err")global{not available when compiled without the+quickfixfeature}Name of the errorfile for the QuickFix mode (see:cf).When the "-q" command-line argumentis used,'errorfile'is set to thefollowing argument.  See-q.NOT used for the ":make" command.  See'makeef' for that.Environmentvariables are expanded:set_env.Seeoption-backslash about including spaces and backslashes.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'errorformat''efm''errorformat''efm'string(defaultis very long)global or local to bufferglobal-local{not available when compiled without the+quickfixfeature}Scanf-like description of the format for the lines in the error file(seeerrorformat).'esckeys''ek''noesckeys''noek''esckeys''ek'boolean(Vim default: on,Vi default: off)globalFunction keys that start with an<Esc> are recognized inInsertmode.  When this optionis off, the cursor and function keys cannot beused inInsert mode if they start with an<Esc>.  The advantage ofthisis that the single<Esc>is recognized immediately, instead ofafter one second.  Instead of resetting this option, you might want totrychanging the values for'timeoutlen' and'ttimeoutlen'.Note thatwhen'esckeys'is off, you can still map anything, but the cursor keyswon't work by default.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.NOTE: when this optionis off then themodifyOtherKeys andxterm-bracketed-paste functionalityis disabled while inInsert modeto avoid endingInsert mode with any key that hasa modifier.'eventignore''ei''eventignore''ei'string(default "")globalAlist ofautocommand event names, which are to be ignored.When set to "all" or when "all"is one of the items, allautocommandevents are ignored,autocommands will not be executed.Otherwise thisisa comma-separatedlist of event names.  Example:    :set ei=WinEnter,WinLeaveTo ignore all but some events,a "-" prefix can be used:    :set ei=all,-WinLeave'eventignorewin''eiw''eventignorewin''eiw'string(default "")window-localSimilar to'eventignore' but applies toa particularwindow and itsbuffers, for whichwindow and buffer relatedautocommands can beignored indefinitely without affecting the global'eventignore'.Note: The following events are considered to happen outside ofawindow context and thus cannot be ignored by'eventignorewin':CmdlineChanged,CmdlineEnter,CmdlineLeave,CmdlineLeavePre,CmdUndefined,CmdwinEnter,CmdwinLeave,ColorScheme,ColorSchemePre,CompleteChanged,CompleteDone,CompleteDonePre,DiffUpdated,DirChanged,DirChangedPre,EncodingChanged,ExitPre,FocusGained,FocusLost,FuncUndefined,GUIEnter,GUIFailed,KeyInputPre,MenuPopup,ModeChanged,OptionSet,QuickFixCmdPost,QuickFixCmdPre,QuitPre,RemoteReply,SafeState,SafeStateAgain,SessionLoadPost,SessionWritePost,ShellCmdPost,SigUSR1,SourceCmd,SourcePost,SourcePre,SpellFileMissing,StdinReadPost,StdinReadPre,SwapExists,Syntax,TabClosed,TabClosedPre,TabEnter,TabLeave,TabNew,TermChanged,TerminalOpen,TerminalWinOpen,TermResponse,TermResponseAll,User,VimEnter,VimLeave,VimLeavePre,VimResized,VimResume,VimSuspend,WinNew,WinNewPre'expandtab''et''noexpandtab''noet''expandtab''et'boolean(default off)local to bufferInInsert mode: Use the appropriate number of spaces toinserta<Tab>.  Spaces are used in indents with the '>' and '<' commands andwhen'autoindent'is on.  Toinserta realtab when'expandtab'ison, useCTRL-V<Tab>.  See also:retab andins-expandtab.This optionis reset when the'paste' optionis set and restored whenthe'paste' optionis reset.NOTE: This optionis reset when'compatible'is set.'exrc''ex''noexrc''noex''exrc''ex'boolean (default off)globalEnables the reading of .vimrc,.exrc and.gvimrc in the currentdirectory.Setting this optionisa potential security leak.  E.g., considerunpackinga package or fetching files from github,a.vimrc in theremight bea trojan horse.  BETTER NOT SET THIS OPTION!Instead, define anautocommand in your.vimrc to setoptions foramatching directory.If youdo switch this option on you should also consider setting the'secure' option (seeinitialization).Also see.vimrc andgui-init.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'fileencoding''fenc'E213'fileencoding''fenc'string (default: "")local to bufferSets the character encoding for the file of this buffer.When'fileencoding'is different from'encoding', conversion will bedone whenwriting the file.  For reading see below.When'fileencoding'is empty, the same valueas'encoding' will beused (no conversion when reading orwritinga file).No error will be given when the valueis set, only whenitis used,only whenwritinga file.Conversion will also be done when'encoding' and'fileencoding' arebothaUnicode encoding and'fileencoding'is not utf-8.  That'sbecause internallyUnicodeis always storedas utf-8.WARNING: Conversion can cause loss of information!  When'encoding'is "utf-8" or anotherUnicode encoding, conversionis most likely done ina way that the reverse conversionresults in the same text.  When'encoding'is not "utf-8" somecharacters may be lost!See'encoding' for the possible values.  Additionally, values may bespecified that can be handled by the converter, seembyte-conversion.When readinga file'fileencoding' will be set from'fileencodings'.To reada file ina certain encodingit won't work by setting'fileencoding', use the++enc argument.  One exception: when'fileencodings'is empty the value of'fileencoding'is used.Fora new file the global value of'fileencoding'is used.Prepending "8bit-" and "2byte-" has no meaning here, they are ignored.When the optionis set, the valueis converted to lowercase.  Thusyou can setit withuppercase values too.  '_' characters arereplaced with '-'.  Ifa nameis recognized from thelist for'encoding',itis replaced by the standard name.  For example"ISO8859-2" becomes "iso-8859-2".When this optionis set, afterstarting to edita file, the'modified'optionis set, because the file would be different when written.Keep in mind thatchanging'fenc' fromamodeline happensAFTER the text has been read, thusit applies to when the file will bewritten.  If youdo set'fenc' ina modeline, you might want to set'nomodified' to avoid not being able to ":q".This option can not be changed when'modifiable'is off.'fe'NOTE: Before version 6.0 this option specified the encoding for thewhole of Vim, this wasa mistake.  Now use'encoding' instead.  Theold short name was'fe', whichis no longer used.'fileencodings''fencs''fileencodings''fencs'string (default: "ucs-bom",    "ucs-bom,utf-8,default,latin1" when'encoding'is set toaUnicode value)globalThisisalist of character encodings considered whenstarting to editan existing file.  Whena fileis read, Vim tries to use the firstmentioned character encoding.  If an erroris detected, the next onein thelistis tried.  When an encodingis found that works,'fileencoding'is set to it.  If all fail,'fileencoding'is set toan empty string, which means the value of'encoding'is used.WARNING: Conversion can cause loss of information!  When'encoding'is "utf-8" (or one of the otherUnicode variants)conversionis most likely done ina way that the reverseconversion results in the same text.  When'encoding'is not"utf-8" some non-ASCII characters may be lost!  You can usethe++bad argument to specify whatis done with charactersthat can't be converted.For an empty file ora file with only ASCII characters most encodingswill work and the first entry of'fileencodings' will be used (except"ucs-bom", which requires the BOM to be present).  If you preferanother encoding use anBufReadPostautocommand event to test if yourpreferred encodingis to be used.  Example:au BufReadPost * if search('\S', 'w') == 0 |\ set fenc=iso-2022-jp | endifThis sets'fileencoding' to "iso-2022-jp" if the file does not containnon-blank characters.When the++enc argumentis used then the value of'fileencodings'isnot used.Note that'fileencodings'is not used fora new file, the global valueof'fileencoding'is used instead.  You can setit with::setglobal fenc=iso-8859-2This means thata non-existing file may geta different encoding thanan empty file.The special value "ucs-bom" can be used to check foraUnicode BOM(Byte Order Mark)at the start of the file.  Itmust not be precededby "utf-8" or anotherUnicode encoding for this to work properly.An entry for an 8-bit encoding (e.g., "latin1") should be the last,because Vim cannot detect an error, thus the encodingis alwaysaccepted.The special value "default" can be used for the encoding from theenvironment.  OnMS-Windows thisis the system encoding.  Otherwisethisis the default value for'encoding'.  Itis useful when'encoding'is set to "utf-8" and your environment usesa non-latin1encoding, suchas Russian.When'encoding'is "utf-8" anda file contains an illegal bytesequenceit won't be recognizedas UTF-8.  You can use the8g8command to find the illegal byte sequence.WRONG VALUES:WHAT'S WRONG:latin1,utf-8"latin1" will always be usedutf-8,ucs-bom,latin1BOM won't be recognized in anutf-8filecp1250,latin1"cp1250" will always be usedIf'fileencodings'is empty,'fileencoding'is not modified.See'fileencoding' for the possible values.Setting this option does not have an effect until the next timea fileis read.'fileformat''ff''fileformat''ff'string (MS-Windows default: "dos",Unix default: "unix")local to bufferThis gives the<EOL> of the current buffer, whichis used forreading/writing the buffer from/toa file:dos<CR><NL>unix<NL>mac<CR>When "dos"is used,CTRL-Zat theend ofa fileis ignored.Seefile-formats andfile-read.For the character encoding of the file see'fileencoding'.When'binary'is set, the value of'fileformat'is ignored, file I/Oworks likeit was set to "unix".This optionis set automatically whenstarting to edita file and'fileformats'is not empty and'binary'is off.When this optionis set, afterstarting to edita file, the'modified'optionis set, because the file would be different when written.This option can not be changed when'modifiable'is off.For backwards compatibility: When this optionis set to "dos",'textmode'is set, otherwise'textmode'is reset.'fileformats''ffs''fileformats''ffs'string (default:Vim+ViMS-Windows: "dos,unix",VimUnix: "unix,dos",ViCygwin: "unix,dos",Viothers: "")globalThis gives the end-of-line (<EOL>) formats that will be tried whenstarting to edita new buffer and when readinga file into an existingbuffer:- When empty, the format defined with'fileformat' will be used  always.  Itis not set automatically.- When set to one name, that format will be used whenevera new bufferis opened.'fileformat'is set accordingly for that buffer.  The'fileformats' name will be used whena fileis read into an existing  buffer, no matter what'fileformat' for that bufferis set to.- When more than one nameis present, separated by commas, automatic<EOL> detection will be done when readinga file.  Whenstarting to  edita file,a checkis done for the<EOL>:  1. If all linesend in<CR><NL>, and'fileformats' includes "dos",'fileformat'is set to "dos".  2. Ifa<NL>is found and'fileformats' includes "unix",'fileformat'is set to "unix".Note that whena<NL>is found withouta     preceding<CR>, "unix"is preferred over "dos".  3. If'fileformat' has not yet been set, and ifa<CR>is found, and     if'fileformats' includes "mac",'fileformat'is set to "mac".     This means that "mac"is only chosen when:      "unix"is not present or no<NL>is found in the file, and      "dos"is not present or no<CR><NL>is found in the file.     Except: if "unix" was chosen, but thereisa<CR> before     the first<NL>, and there appear to be more<CR>s than<NL>s in     the first few lines, "mac"is used.  4. If'fileformat'is still not set, the first name from'fileformats'is used.  When readinga file into an existing buffer, the sameis done, but  this happens like'fileformat' has been set appropriately for that  file only, the optionis not changed.When'binary'is set, the value of'fileformats'is not used.When Vim starts up with an empty buffer the first itemis used.  Youcan overrule this by setting'fileformat' in your .vimrc.For systems witha Dos-like<EOL> (<CR><NL>), when reading files thatare ":source"ed and forvimrc files, automatic<EOL> detection may bedone:- When'fileformats'is empty, thereis no automatic detection.  Dos  format will be used.- When'fileformats'is set to one or more names, automatic detectionis done.  Thisis based on the first<NL> in the file: If thereisa<CR> in front of it, Dos formatis used, otherwiseUnix formatis  used.Also seefile-formats.For backwards compatibility: When this optionis set to an emptystring or one format (no commais included),'textauto'is reset,otherwise'textauto'is set.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'fileignorecase''fic''nofileignorecase''nofic''fileignorecase''fic'boolean(default on for systems wherecase in file namesis normally ignored)globalWhen setcaseis ignored when using file names and directories.See'wildignorecase' for only ignoringcase when doing completion.'filetype''ft''filetype''ft'string (default: "")local to bufferlocal-noglobalWhen this optionis set, theFileTypeautocommand eventis triggered.Allautocommands that match with the value of this option will beexecuted.  Thus the value of'filetype'is used in place of the filename.Otherwise this option does not always reflect the current file type.This optionis normally set when the file typeis detected.  To enablethis use the ":filetype on" command.:filetypeSetting this option toa different valueis most useful ina modeline,fora file for which the file typeis not automatically recognized.Example, for in an IDL file:/* vim: set filetype=idl : */FileTypefiletypesWhena dot appears in the value then this separates twofiletypenames,it should therefore not be used fora filetype.  Example:/* vim: set filetype=c.doxygen : */This will use the "c"filetype first, then the "doxygen" filetype.This works both forfiletype plugins and forsyntax files.  More thanone dot may appear.This optionis not copied to another buffer, independent of the 's' or'S' flag in'cpoptions'.Only alphanumeric characters, '-' and '_' can be used (anda '.'isallowedas delimiter when combining different filetypes).'fillchars''fcs''fillchars''fcs'string(default "vert:|,fold:-,eob:~,lastline:@")global or local towindowglobal-localCharacters to fill the statuslines, vertical separators, speciallines in thewindow and truncated text in theins-completion-menu.Itisa comma-separatedlist of items.  Each item hasa name,a colonand the value of that item:E1511  item namedefaultUsed for  stl''statusline of the currentwindow  stlnc''statusline of the non-currentwindows  vert'|'vertical separators:vsplit  fold'-'filling'foldtext'  foldopen'-'mark the beginning ofa fold  foldclose'+'showa closed fold  foldsep'|'open fold middle characterdiff'-'deleted lines of the'diff' option  eob'~'empty lines below theend ofa buffer  lastline'@''display' contains lastline/truncate  trunc'>'truncated text in theins-completion-menu.  truncrl'<'sameas "trunc" in'rightleft' mode  tpl_vert'|'vertical separators of'tabpanel'Any one thatis omitted will fall back to the default.Example:    :set fillchars=stl:\ ,stlnc:\ ,vert:\|,fold:-,diff:-,tpl_vert:\|All items support single-byte andmultibyte characters.  Butdouble-width characters are not supported.E1512The highlighting used for these items:  item namehighlight group  stlStatusLinehl-StatusLine  stlncStatusLineNChl-StatusLineNC  vertVertSplithl-VertSplit  foldFoldedhl-Folded  foldopenFoldColumnhl-FoldColumn  foldcloseFoldColumnhl-FoldColumn  foldsepFoldColumnhl-FoldColumndiffDiffDeletehl-DiffDelete  eobEndOfBufferhl-EndOfBuffer  lastlineNonTexthl-NonText  truncone of the many Popup menu highlighting groups likehl-PmenuSel  truncrlsameas "trunc"'findfunc''ffu'E1514'findfunc''ffu'string(default empty)global or local to bufferglobal-local{not available when compiled without the+evalfeature}Function thatis called to obtain the filename(s) for the:findcommand.  When this optionis empty, the internalfile-searchingmechanismis used.The value can be the name ofa function,alambda oraFuncref.Seeoption-value-function for more information.The functionis called with two arguments.  The first argumentisaString andis the:find command argument.  The second argumentisaBoolean andis set tov:true when the functionis called to getaList of command-line completion matches for the:find command.The function should returnaList of strings.The functionis called only once per:find command invocation.The function can process all the directories specified in'path'.Ifa matchis found, the function should returnaList containingone or more file names.  Ifa matchis not found, the functionshould return an empty List.If anyerrors are encountered during the function invocation, anemptyListis usedas the return value.Itis not allowed to change text or jump to anotherwindow whileexecuting the'findfunc'textlock.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.Examples:    " Use glob()    func FindFuncGlob(cmdarg, cmdcomplete)let pat = a:cmdcomplete ? $'{a:cmdarg}*' : a:cmdargreturn glob(pat, v:false, v:true)    endfunc    set findfunc=FindFuncGlob    " Use the 'git ls-files' output    func FindGitFiles(cmdarg, cmdcomplete)let fnames = systemlist('git ls-files')return fnames->filter('v:val =~? a:cmdarg')    endfunc    set findfunc=FindGitFiles'fixendofline''fixeol''nofixendofline''nofixeol''fixendofline''fixeol'boolean(default on)local to bufferWhenwritinga file and this optionis on,<EOL>at theend of filewill be restored if missing.  Turn this option off if you want topreserve the situation from the original file.When the'binary' optionis set the value of this option doesn'tmatter.See the'endofline' option.Seeeol-and-eof for example settings.'fkmap''fk''nofkmap''nofk''fkmap''fk'boolean (default off)global{only available when compiled with the+rightleftfeature}This option was for using Farsi, which has been removed.  Seefarsi.txt.'foldclose''fcl''foldclose''fcl'string (default "")global{not available when compiled without the+foldingfeature}When set to "all",a foldis closed when the cursor isn't init andits levelis higher than'foldlevel'.  Useful if you wantfolds toautomatically close when moving out of them.'foldcolumn''fdc''foldcolumn''fdc'number (default 0)local towindow{not available when compiled without the+foldingfeature}When non-zero,a column with the specified widthis shownat the sideof thewindow which indicates open and closed folds.  The maximumvalueis 12.Seefolding.'foldenable''fen''nofoldenable''nofen''foldenable''fen'boolean (default on)local towindow{not available when compiled without the+foldingfeature}When off, allfolds are open.  This option can be used to quicklyswitch between showing all text unfolded and viewing the text withfolds (including manually opened or closed folds).  It can be toggledwith thezi command.  The'foldcolumn' will remain blank when'foldenable'is off.This optionis set by commands that createa new fold or closea fold.Seefolding.'foldexpr''fde''foldexpr''fde'string (default: "0")local towindow{not available when compiled without the+foldingor+eval features}Theexpression used for when'foldmethod'is "expr".  Itis evaluatedfor each line to obtain its fold level.  The contextis set to thescript where'foldexpr' was set,script-local items can be accessed.Seefold-expr for the usage.Theexpression will be evaluated in thesandbox if set fromamodeline, seesandbox-option.This option can't be set fromamodeline when the'diff' optionison or the'modelineexpr' optionis off.Itis not allowed to change text or jump to anotherwindow whileevaluating'foldexpr'textlock.'foldignore''fdi''foldignore''fdi'string (default: "#")local towindow{not available when compiled without the+foldingfeature}Used only when'foldmethod'is "indent".  Linesstarting withcharacters in'foldignore' will get their fold level from surroundinglines.  Whitespaceis skipped before checking for this character.The default "#" works well forC programs.  Seefold-indent.'foldlevel''fdl''foldlevel''fdl'number (default: 0)local towindow{not available when compiled without the+foldingfeature}Sets the fold level: Folds witha higher level will be closed.Setting this option to zero will close all folds.  Higher numbers willclose fewer folds.This optionis set by commands likezm,zM andzR.Seefold-foldlevel.'foldlevelstart''fdls''foldlevelstart''fdls'number (default: -1)global{not available when compiled without the+foldingfeature}Sets'foldlevel' whenstarting to edit another buffer ina window.Useful to always start editing with allfolds closed (value zero),somefolds closed (one) or nofolds closed (99).Thisis done before reading any modeline, thusa setting inamodelineoverrules this option.  Starting to edita file fordiff-mode alsoignores this option and closes all folds.Itis also done beforeBufReadPre autocommands, to allow an autocmd tooverrule the'foldlevel' value for specific files.When the valueis negative,itis not used.'foldmarker''fmr'E536'foldmarker''fmr'string (default: "{{{,}}}")local towindow{not available when compiled without the+foldingfeature}The start andend marker used when'foldmethod'is "marker".  Theremust be one comma, which separates the start andend marker.  Themarkerisa literalstring (a regularexpression would be too slow).Seefold-marker.'foldmethod''fdm''foldmethod''fdm'string (default: "manual")local towindow{not available when compiled without the+foldingfeature}The kind offolding used for the current window.  Possible values:fold-manual  manual    Folds are created manually.fold-indent  indent    Lines with equal indent forma fold.fold-exprexpr'foldexpr' gives the fold level ofa line.fold-marker  marker    Markers are used to specify folds.fold-syntaxsyntaxSyntax highlighting items specify folds.fold-diffdiff    Fold text thatis not changed.'foldminlines''fml''foldminlines''fml'number (default: 1)local towindow{not available when compiled without the+foldingfeature}Sets the number of screen lines above whicha fold can be displayedclosed.  Also for manually closed folds.  With the default value ofonea fold can only be closed ifit takes up two or more screen lines.Set to zero to be able to closefolds of just one screen line.Note that this only has an effect on whatis displayed.  After using"zc" to closea fold, whichis displayed open because it's smallerthan'foldminlines',a following "zc" may closea containing fold.'foldnestmax''fdn''foldnestmax''fdn'number (default: 20)local towindow{not available when compiled without the+foldingfeature}Sets the maximum nesting offolds for the "indent" and "syntax"methods.  This avoids that too manyfolds will be created.  Using morethan 20 doesn't work, because the internal limitis 20.'foldopen''fdo''foldopen''fdo'string (default: "block,hor,mark,percent,quickfix,     search,tag,undo")global{not available when compiled without the+foldingfeature}Specifies for which type of commandsfolds will be opened, if thecommand moves the cursor intoa closed fold.  Itisa comma-separatedlist of items.NOTE: When the commandis part ofamapping this optionis not used.Add thezv command to themapping to get the same effect.(rationale: themapping may want tocontrol openingfolds itself)itemcommandsallanyblock"(", "{", "[[", "[{", etc.horhorizontal movements: "l", "w", "fx", etc.insertany command inInsert modejumpfar jumps: "G", "gg", etc.markjumping toa mark: "'m",CTRL-O, etc.percent"%"quickfix":cn", ":crew", ":make", etc.searchsearch fora pattern: "/", "n", "*", "gd", etc.(not fora searchpattern ina ":" command)Also for[s and]s.tagjumping toa tag: ":ta",CTRL-T, etc.undoundo or redo: "u" andCTRL-RWhenamovement commandis used for anoperator (e.g., "dl" or "y%")this optionis not used.  This means theoperator will include thewhole closed fold.Note that vertical movements are not here, becauseit would makeitvery difficult to move ontoa closed fold.Ininsert mode thefolds containing the cursor will always be openwhen textis inserted.To closefolds you can re-apply'foldlevel' with thezx command orset the'foldclose' option to "all".'foldtext''fdt''foldtext''fdt'string (default: "foldtext()")local towindow{not available when compiled without the+foldingfeature}Anexpression whichis used to specify the text displayed fora closedfold.  The contextis set to thescript where'foldexpr' was set,script-local items can be accessed.  Seefold-foldtext for theusage.Theexpression will be evaluated in thesandbox if set fromamodeline, seesandbox-option.This option cannot be set inamodeline when'modelineexpr'is off.Itis not allowed to change text or jump to anotherwindow whileevaluating'foldtext'textlock.'formatexpr''fex''formatexpr''fex'string (default "")local to buffer{not available when compiled without the+evalfeature}Expression whichis evaluated to formata range of lines for thegqoperator or automaticformatting (see'formatoptions').  When thisoptionis empty'formatprg'is used.Thev:lnum  variable holds the first line to be formatted.Thev:count variable holds the number of lines to be formatted.Thev:char  variable holds the character thatis going to be      inserted if theexpressionis being evaluated due to      automatic formatting.  This can be empty.  Don'tinsertit yet!Example::set formatexpr=mylang#Format()This will invoke the mylang#Format() function in theautoload/mylang.vim file in'runtimepath'.autoloadThe advantage of usinga function call without argumentsis thatitisfaster, seeexpr-option-function.Theexpressionis also evaluated when'textwidth'is set and addingtext beyond that limit.  This happens under the same conditionsaswhen internalformattingis used.  Make sure the cursoris kept in thesame spot relative to the text then!  Themode() function willreturn "i" or "R" in this situation.When theexpression evaluates to non-zero Vim will fall back to usingthe internal format mechanism.If theexpression starts with s: or<SID>, thenitis replaced withthescript ID(local-function). Example:set formatexpr=s:MyFormatExpr()set formatexpr=<SID>SomeFormatExpr()Otherwise, theexpressionis evaluated in the context of thescriptwhere the option was set, thusscript-local items are available.Theexpression will be evaluated in thesandbox when set fromamodeline, seesandbox-option.  That stops the option from working,sincechanging the buffer textis not allowed.This option cannot be set inamodeline when'modelineexpr'is off.NOTE: This optionis set to "" when'compatible'is set.'formatlistpat''flp''formatlistpat''flp'string (default: "^\s*\d\+[\]:.)}\t ]\s*")local to bufferApattern thatis used to recognizealist header.  Thisis used forthe "n" flag in'formatoptions'.Thepatternmust match exactly the text that will be the indent forthe line below it.  You can use/\ze tomark theend of the matchwhile still checking more characters.  Theremust bea characterfollowing the pattern, whenit matches the whole lineitis handledlike thereis no match.The default recognizesa number, followed by an optional punctuationcharacter and white space.'formatoptions''fo''formatoptions''fo'string (Vim default: "tcq",Vi default: "vt")local to bufferThisisa sequence of letters which describes how automaticformattingis to be done.Seefo-table for possible values andgq for how to format text.When the'paste' optionis on, noformattingis done (like'formatoptions'is empty).  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.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'formatprg''fp''formatprg''fp'string (default "")global or local to bufferglobal-localThe name of an external program that will be used to format the linesselected with thegq operator.  The programmust take the input onstdin and produce the output on stdout.  TheUnix program "fmt"issucha program.If the'formatexpr' optionis not emptyit will be used instead.Otherwise, if'formatprg' optionis an empty string, the internalformat function will be usedC-indenting.Environmentvariables are expanded:set_env.  Seeoption-backslashabout including spaces and backslashes.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'fsync''fs''nofsync''nofs''fsync''fs'boolean(default on)globalWhen on, the library function fsync() will be called afterwritingafile.  This will flusha file to disk, ensuring thatitis safelywritten even on filesystems whichdo metadata-only journaling.  Thiswill force the harddrive to spin up on Linux systems running in laptopmode, soit may be undesirable in some situations.  Be warned thatturning this off increases the chances of data loss aftera crash.  Onsystems without an fsync() implementation, this variableis alwaysoff.Also see'swapsync' for controlling fsync() on swap files.'fsync' also applies towritefile() (unlessa flagis used tooverrule it) and whenwritingundo files (seeundo-persistence).This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'gdefault''gd''nogdefault''nogd''gdefault''gd'boolean(default off)globalWhen on, the ":substitute" flag 'g'is default on.  This means thatall matches ina line are substituted instead of one.  Whena 'g' flagis given toa ":substitute" command, this willtoggle the substitutionof all or one match.  Seecomplex-change.command'gdefault' on'gdefault' off:s///  subst. all  subst. one:s///g  subst. one  subst. all:s///gg  subst. all  subst. oneNOTE: This optionis reset when'compatible'is set.Setting this option may break plugins that rely on the defaultbehavior of the 'g' flag. This will also make the 'g' flag have theopposite effect of that documented in:s_g.This optionis not used inVim9 script.'grepformat''gfm''grepformat''gfm'string(default "%f:%l:%m,%f:%l%m,%f  %l%m")global or local to bufferglobal-localFormat to recognize for the ":grep" command output.Thisisa scanf-likestring that uses the same formatas the'errorformat' option: seeerrorformat.'grepprg''gp''grepprg''gp'string(default "grep-n ",Unix: "grep-n$* /dev/null",Win32: "findstr /n" or "grep-n",      VMS: "SEARCH/NUMBERS ")global or local to bufferglobal-localProgram to use for the:grep command.  This option may contain '%'and '#' characters, which are expanded like when used ina command-line.  The placeholder "$*"is allowed to specify where the argumentswill be included.  Environmentvariables are expanded:set_env.  Seeoption-backslash about including spaces and backslashes.When your "grep" accepts the "-H" argument, use this to make ":grep"also work well witha single file::set grepprg=grep\ -nHSpecial value: When'grepprg'is set to "internal" the:grep commandworks like:vimgrep,:lgrep like:lvimgrep,:grepadd like:vimgrepadd and:lgrepadd like:lvimgrepadd.See also thesection:make_makeprg, since most of the comments thereapply equally to'grepprg'.For Win32, the defaultis "findstr /n" if "findstr.exe" can be found,otherwise it's "grep-n".This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'guicursor''gcr'E545E546E548E549'guicursor''gcr'string(default "n-v-c:block-Cursor/lCursor,ve:ver35-Cursor,o:hor50-Cursor,i-ci:ver25-Cursor/lCursor,r-cr:hor20-Cursor/lCursor,sm:block-Cursor-blinkwait175-blinkoff150-blinkon175",forWin32 console:"n-v-c:block,o:hor50,i-ci:hor15,r-cr:hor30,sm:block")global{only available when compiled withGUI enabled, andforWin32 console}This option tells Vim what the cursor should look like in differentmodes.  It fully works in the GUI.  InaWin32 console, only theheight of the cursor can be changed.  This can be done by specifyingablock cursor, ora percentage fora vertical or horizontal cursor.Fora console the't_SI','t_SR', and't_EI'escape sequences areused.The optionisa comma-separatedlist of parts.  Each part consist ofamode-list and an argument-list:mode-list:argument-list,mode-list:argument-list,..The mode-listisa dash separatedlist of these modes:nNormal modevVisual modeveVisual mode with'selection' "exclusive" (sameas 'v',if not specified)oOperator-pending modeiInsert moderReplace modecCommand-lineNormal (append) modeciCommand-lineInsert modecrCommand-lineReplace modesmshowmatch inInsert modeaall modesTheargument-listisa dash separatedlist of these arguments:hor{N}horizontal bar,{N} percent of the character heightver{N}vertical bar,{N} percent of the character widthblockblock cursor, fills the whole character[only one of the above three should be present]blinkwait{N}cursor-blinkingblinkon{N}blinkoff{N}blink times for cursor: blinkwaitis the delay beforethe cursor starts blinking, blinkonis the time thatthe cursoris shown and blinkoffis the time that thecursoris not shown.  The times are in msec.  When oneof the numbersis zero, thereis no blinking.  Thedefault is: "blinkwait700-blinkon400-blinkoff250".These numbers are used fora missing entry.  Thismeans that blinkingis enabled by default.  To switchblinking off you can use "blinkon0".  The cursor onlyblinks when Vimis waiting for input, not whileexecutinga command.To make the cursor blink in an xterm, seexterm-blink.{group-name}a highlight group name, that sets the color and fontfor the cursor{group-name}/{group-name}Two highlight group names, the firstis used whenno language mappings are used, the other when theyare.language-mappingExamples of parts:   n-c-v:block-nCursorin Normal,Command-line andVisual mode, useablock cursor with colors from the "nCursor"highlight group   i-ci:ver30-iCursor-blinkwait300-blinkon200-blinkoff150InInsert andCommand-lineInsert mode, usea30% verticalbar cursor with colors from the"iCursor" highlight group.  Blinka bitfaster.The 'a' modeis different.  It will set the givenargument-list forall modes.  It does not reset anything to defaults.  This can be usedtodoa common setting for all modes.  For example, to switch offblinking: "a:blinkon0"Examples of cursor highlighting:    :highlight Cursor gui=reverse guifg=NONE guibg=NONE    :highlight Cursor gui=NONE guifg=bg guibg=fg'guifont''gfn'E235E596'guifont''gfn'string(default "")global{only available when compiled with GUI enabled}Thisisalist of fonts which will be used for theGUI version of Vim.In its simplest form the valueis just one font name.Seegui-font for the details.'guifontset''gfs'E250E252E234E597E598'guifontset''gfs'string(default "")global{only available when compiled withGUI enabled andwith the+xfontset feature}{not available in the GTK+ GUI}When not empty,specifies two (or more) fonts to be used.  The firstone for normal English, the second one for your special language.  Seexfontset.'guifontwide''gfw'E231E533E534'guifontwide''gfw'string(default "")global{only available when compiled with GUI enabled}When not empty,specifiesa comma-separatedlist of fonts to be usedfor double-width characters.  The first font that can be loadedisused.  Seegui-fontwide.'guiheadroom''ghr''guiheadroom''ghr'number(default 50)global{only for GTK and X11 GUI}The number of pixels subtracted from the screen height when fittingtheGUIwindow on the screen.  Set this before theGUIis started,e.g., in yourgvimrc file.  When zero, the whole screen height willbe used by the window.  When positive, the specified number of pixellines will be left forwindow decorations and other items on thescreen.  Setit toa negative value to allowwindows taller than thescreen.'guiligatures''gli'E1243'guiligatures''gli'string(default "")global{only for GTK and Win32 GUI}List of ASCII characters that, when combined together, can create morecomplex shapes. Each charactermust bea printable ASCII characterwitha value in the 32-127 range.Example::set guiligatures=!\"#$%&()*+-./:<=>?@[]^_{\|~Changing this option updates screen output immediately. Setit to anemptystring to disable ligatures.'guioptions''go''guioptions''go'string(default "egmrLtT"   (MS-Windows,   "t"is removed indefaults.vim), "aegimrLtT" (GTK and Motif),)global{only available when compiled with GUI enabled}This option only has an effect in theGUI version of Vim.  Itisasequence of letters which describes what components andoptions of theGUI should be used.To avoid problems with flags that are added in the future, use the"+=" and "-=" feature of ":set"add-option-flags.Valid characters areas follows:'go-!'  '!'External commands are executed inaterminal window.  Withoutthis flag theMS-WindowsGUI will opena consolewindow toexecute the command.  TheUnixGUI will simulatea dumbterminal tolist the command output.Theterminalwindow will be positionedat the bottom, and growupwardsas needed.'go-a'  'a'Autoselect:  If present, then whenever VISUAL modeis started,or theVisual area extended, Vim tries to become the owner ofthe windowing system's global selection.  This means that theVisually highlighted textis available for pasting into otherapplicationsas wellas into Vim itself.  When theVisual modeends, possibly due to an operation on the text, or when anapplication wants to paste the selection, the highlighted textis automatically yanked into the "* selection register.Thus the selectionis still available for pasting into otherapplications after the VISUAL mode has ended.    If not present, then Vim won't become the owner of thewindowing system's global selection unless explicitly told tobyayank or delete operation for the "* register.The same applies to the modeless selection.'go-P'  'P'Like autoselect but using the "+register instead of the "*register.'go-A'  'A'Autoselect for the modeless selection.  Like 'a', but onlyapplies to the modeless selection.    'guioptions'   autoselect Visual  autoselect modeless ""-- "a"yesyes "A"-yes "aA"yesyesWhen usingaterminal see the'clipboard' option.'go-c'  'c'Use console dialogs instead ofpopup dialogs for simplechoices.'go-d'  'd'Use dark theme variant if available. Currently only works forGTK+ GUI.'go-e'  'e'Addtab pages when indicated with'showtabline'.'guitablabel' can be used to change the text in the labels.When 'e'is missinga non-GUItab pages line may be used.TheGUI tabs are only supported on some systems, currentlyGTK, Motif,Mac OS/X, Haiku, and MS-Windows.'go-f'  'f'Foreground: Don't use fork() to detach theGUI from the shellwhereit was started.  Use this for programs that wait for theeditor to finish (e.g., an e-mail program).  Alternatively youcan use "gvim-f" or ":gui-f" to start theGUI in theforeground.gui-forkNote: Set this option in thevimrc file.  The forking may havehappened already when thegvimrc fileis read.'go-i'  'i'Usea Vim icon.  ForGTK withKDEitis used in the left-uppercorner of the window.  It's black&white on non-GTK, because oflimitations of X11.  Fora color icon, seeX11-icon.'go-m'  'm'Menubaris present.'go-M'  'M'The system menu "$VIMRUNTIME/menu.vim"is not sourced.Notethat this flagmust be added in the.vimrc file, beforeswitching onsyntax orfiletype recognition (when thegvimrcfileis sourced the system menu has already been loaded; the`:syntax on` and `:filetype on` commands load the menu too).'go-g'  'g'Grey menu items: Make menu items that are not active grey.  If'g'is not included inactive menu items are not shownat all.'go-t'  't'Include tearoff menu items.  Currently only works for Win32,GTK+, andMotif 1.2 GUI.'go-T'  'T'Include Toolbar.  Currently only in Win32, GTK+,Motif andPhoton GUIs.'go-r'  'r'Right-hand scrollbaris always present.'go-R'  'R'Right-hand scrollbaris present when thereisa verticallysplit window.'go-l'  'l'Left-hand scrollbaris always present.'go-L'  'L'Left-hand scrollbaris present when thereisa verticallysplit window.'go-b'  'b'Bottom (horizontal) scrollbaris present.  Its size depends onthe longest visible line, or on the cursor line if the 'h'flagis included.gui-horiz-scroll'go-h'  'h'Limit horizontal scrollbar size to the length of the cursorline.  Reduces computations.gui-horiz-scrollAnd yes, you may even have scrollbars on the left AND the right ifyou really want to :-).  Seegui-scrollbars for more information.'go-v'  'v'Usea vertical button layout for dialogs.  When not included,a horizontal layoutis preferred, but whenit doesn't fitavertical layoutis used anyway.  Not supported inGTK 3.'go-p'  'p'Use Pointer callbacks forX11 GUI.  Thisis required for somewindow managers.  If the cursoris not blinking or hollowatthe right moment, try adding this flag.  Thismust be donebeforestarting the GUI.  Setit in yourgvimrc.  Adding orremovingit after theGUI has started has no effect.'go-F'  'F'Adda footer.  Only for Motif.  Seegui-footer.'go-k'  'k'Keep theGUIwindow size when adding/removinga scrollbar, ortoolbar, tabline, etc.  Instead, the behavioris similar towhen thewindowis maximized and will adjust'lines' and'columns' to fit to the window.  Without the 'k' flag Vim willtry to keep'lines' and'columns' the same when adding andremovingGUI components.'guipty''noguipty''guipty'boolean(default on)global{only available when compiled with GUI enabled}Only in the GUI: If on, an attemptis made to opena pseudo-tty forI/O to/from shell commands.  Seegui-pty.'guitablabel''gtl''guitablabel''gtl'string(default empty)global{only available when compiled with GUI enabled}When non-empty describes the text to use ina label of theGUItabpages line.  When empty and when the resultis empty Vim will useadefault label.  Seesetting-guitablabel for more info.The format of this optionis like that of'statusline'.'guitabtooltip'is used for the tooltip, see below.Theexpression will be evaluated in thesandbox when set fromamodeline, seesandbox-option.This option cannot be set inamodeline when'modelineexpr'is off.Only used when theGUItab pages lineis displayed.  'e'must bepresent in'guioptions'.  For the non-GUItab pages line'tabline'isused.'guitabtooltip''gtt''guitabtooltip''gtt'string(default empty)global{only available when compiled with GUI enabled}When non-empty describes the text to use ina tooltip for theGUItabpages line.  When empty Vim will usea default tooltip.This optionis otherwise just like'guitablabel' above.You can includea line break.  Simplestmethodis to use:let::let &guitabtooltip = "line one\nline two"'helpfile''hf''helpfile''hf'string(default (MS-Windows) "$VIMRUNTIME\doc\help.txt" (others) "$VIMRUNTIME/doc/help.txt")globalName of the mainhelp file.  All distributedhelp files should beplaced together in one directory.  Additionally, all "doc" directoriesin'runtimepath' will be used.Environmentvariables are expanded:set_env.  For example:"$VIMRUNTIME/doc/help.txt".  If$VIMRUNTIMEis not set,$VIMis alsotried.  Also see$VIMRUNTIME andoption-backslash about includingspaces and backslashes.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'helpheight''hh''helpheight''hh'number(default 20)globalMinimal initial height of thehelpwindow whenitis opened with the":help" command.  The initial height of thehelpwindowis half of thecurrent window, or (when the'ea' optionis on) the sameas otherwindows.  When the heightisless than'helpheight', the heightisset to'helpheight'.  Set to zero to disable.'helplang''hlg''helplang''hlg'string(default:messages language or empty)global{only available when compiled with the+multi_langfeature}Comma-separatedlist of languages.  Vim will use the first languagefor which the desiredhelp can be found.  The Englishhelp will alwaysbe usedasa last resort.  You can add "en" to prefer English overanother language, but that will only findtags that exist in thatlanguage and not in the English help.Example::set helplang=de,itThis will first search German, then Italian and finally Englishhelpfiles.When usingCTRL-] and ":help!" ina non-Englishhelp file Vim willtry to find thetag in the current language before using this option.Seehelp-translated.'hidden''hid''nohidden''nohid''hidden''hid'boolean(default off)globalWhen offa bufferis unloaded whenitisabandoned.  When onabuffer becomes hidden whenitisabandoned.  If the bufferis stilldisplayed in another window,it does not become hidden, of course.The commands that move through the bufferlist sometimes makea bufferhidden even if the'hidden' optionis off when these three are true:- the bufferis modified-'autowrite'is off orwritingis not possible- the '!' flag was usedAlso seewindows.txt.To only make one buffer hidden use the'bufhidden' option.This optionis set for one command with ":hide{command}":hide.WARNING: It'seasy to forget that you have changes in hidden buffers.Think twice when using ":q!" or ":qa!".'highlight''hl''highlight''hl'string(default (asa single string):     "8:SpecialKey,~:EndOfBuffer,@:NonText,     d:Directory,e:ErrorMsg,i:IncSearch,     l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,     a:LineNrAbove,b:LineNrBelow,     N:CursorLineNr,r:Question,s:StatusLine,     S:StatusLineNC,c:VertSplit,t:Title,     v:Visual,V:VisualNOS,w:WarningMsg,     W:WildMenu,f:Folded,F:FoldColumn,     A:DiffAdd,C:DiffChange,D:DiffDelete,     T:DiffText,E:DiffTextAdd,>:SignColumn,     -:Conceal,B:SpellBad,P:SpellCap,     R:SpellRare, L:SpellLocal,+:Pmenu,     =:PmenuSel, k:PmenuMatch,<:PmenuMatchSel,     [:PmenuKind,]:PmenuKindSel,{:PmenuExtra,}:PmenuExtraSel,     x:PmenuSbar,X:PmenuThumb,*:TabLine,     #:TabLineSel,_:TabLineFill,!:CursorColumn,     .:CursorLine,o:ColorColumn,q:QuickFixLine,     z:StatusLineTerm,Z:StatusLineTermNC,     g:MsgArea,h:ComplMatchIns")globalThis option can be used to set highlighting mode forvariousoccasions.  Itisa comma-separatedlist of character pairs.  Thefirst character ina pair gives the occasion, the second the mode touse for that occasion.  The occasions are:hl-SpecialKey   8  Meta and special keys listed with ":map"hl-EndOfBuffer~  lines after the last line in the bufferhl-NonText@  '@'at theend of thewindow and    characters from'showbreak'hl-Directoryd  directories inCTRL-D listing and other special    things in listingshl-ErrorMsge  errormessageshl-IncSearchi'incsearch' highlightinghl-CurSearchy  current instance of last searchpatternhl-Searchl  last searchpattern highlighting (see'hlsearch')hl-MoreMsgmmore-prompthl-ModeMsgM  Mode (e.g., "-- INSERT--")hl-MsgAreagCommand-line and message areahl-ComplMatchInsh  matched text of currently inserted completionhl-LineNrn  line number for ":number" and ":#" commands, and    when'number' or'relativenumber' optionis set.hl-LineNrAbovea  line number above the cursor for when the'relativenumber' optionis set.hl-LineNrBelowb  line number below the cursor for when the'relativenumber' optionis set.hl-CursorLineNrN liken for when'cursorline' or'relativenumber'is    set.hl-Questionrhit-enter prompt and yes/no questionshl-StatusLines  status line of currentwindowstatus-linehl-StatusLineNCS  status lines of not-currentwindowshl-Titlet  Titles for output from ":set all", ":autocmd" etc.hl-VertSplitc  column used to separate vertically splitwindowshl-VisualvVisual modehl-VisualNOSVVisual mode when Vimis "Not Owning the    Selection" OnlyX11 Gui'sgui-x11,xterm-clipboard andwayland-selectionshl-WarningMsgw  warningmessageshl-WildMenuWwildcard matches displayed for'wildmenu'hl-Foldedf  line used for closedfoldshl-FoldColumnF'foldcolumn'hl-DiffAddA  added line indiff modehl-DiffChangeC  changed line indiff modehl-DiffDeleteD  deleted line indiff modehl-DiffTextT  changed text indiff modehl-DiffTextAddE  inserted text indiff modehl-SignColumn>  column used forsignshl-Conceal-  the placeholders used for concealed characters    (see'conceallevel')hl-SpellBadB  misspelledwordspellhl-SpellCapPword that should start with capitalspellhl-SpellRareR  rarewordspellhl-SpellLocalLword from other regionspellhl-Pmenu+popup menu normal linehl-PmenuSel=popup menu selected linehl-PmenuKind[popup menu "kind" normal linehl-PmenuKindSel]popup menu "kind" selected linehl-PmenuExtra{popup menu "extra" normal linehl-PmenuExtraSel}popup menu "extra" selected linehl-PmenuSbarxpopup menu scrollbarhl-PmenuThumbXpopup menu scrollbar thumbhl-PmenuMatchkpopup menu matched texthl-PmenuMatchSel<popup menu matched text in selected lineThe display modes are:rreverse(termcap entry "mr" and "me")iitalic(termcap entry "ZH" and "ZR")bbold(termcap entry "md" and "me")sstandout(termcap entry "so" and "se")uunderline(termcap entry "us" and "ue")cundercurl(termcap entry "Us" and "Ce")2doubleunderline (termcap entry "Ds" and "Ce")ddottedunderline (termcap entry "ds" and "Ce")=dashedunderline (termcap entry "Ds" and "Ce")tstrikethrough(termcap entry "Ts" and "Te")nno highlighting-no highlighting:usea highlight groupThe defaultis used for occasions that are not included.If you want to change what the display modes do, seedos-colorsfor an example.When using the ':' display mode, thismust be followed by the name ofa highlight group.A highlight group can be used to define any typeof highlighting, including using color.  See:highlight on how todefine one.  The default usesa different group for each occasion.Seehighlight-default for the default highlight groups.'history''hi''history''hi'number(Vim default: 200,Vi default: 0)globalAhistory of ":" commands, andahistory of previous search patternsis remembered.  This option decides how many entries may be stored ineach of these histories (seecmdline-editing and'messagesopt' forthe number ofmessages to remember).The maximum valueis 10000.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'hkmap''hk''nohkmap''nohk''hkmap''hk'boolean (default off)global{only available when compiled with the+rightleftfeature}When on, the keyboardis mapped for the Hebrew character set.Normally you would set'allowrevins' and useCTRL-_ ininsert mode totoggle this option.  Seerileft.txt.NOTE: This optionis reset when'compatible'is set.'hkmapp''hkp''nohkmapp''nohkp''hkmapp''hkp'boolean (default off)global{only available when compiled with the+rightleftfeature}When on, phonetic keyboardmappingis used.'hkmap'must also be on.Thisis useful if you havea non-Hebrew keyboard.Seerileft.txt.NOTE: This optionis reset when'compatible'is set.'hlsearch''hls''nohlsearch''nohls''hlsearch''hls'boolean(default off)global{not available when compiled without the+extra_search feature}When thereisa previous search pattern, highlight all its matches.The type of highlighting used can be set with the 'l' occasion in the'highlight' option.  This uses the "Search" highlight group bydefault.Note that only the matching textis highlighted, any offsetsare not applied.  If the "CurSearch" highlight groupis set then thecurrent matchis highlighted with that.See also:'incsearch' and:match.When you get bored lookingat the highlighted matches, you can turnitoff with:nohlsearch.  This does not change the option value,assoonas you usea search command, the highlighting comes back.'redrawtime'specifies the maximum time spent on finding matches.When the searchpattern can match an end-of-line, Vim will try tohighlight all of the matched text.  However, this depends on where thesearch starts.  This will be the first line in thewindow or the firstline belowa closed fold.A match ina previous line whichis notdrawn may not continue ina newly drawn line.You can specify whether the highlight statusis restored onstartupwith the 'h' flag in'viminfo'viminfo-h.NOTE: This optionis reset when'compatible'is set.'icon''noicon''icon'boolean(default off, on when title can be restored)globalWhen on, the icon text of thewindow will be set to the value of'iconstring' (ifitis not empty), or to the name of the filecurrently being edited.  Only the last part of the nameis used.Overridden by the'iconstring' option.Only works if theterminal supports settingwindow icons (currentlyonlyX11GUI and terminals witha non-empty't_IS' option- these areUnix xterm and iris-ansi by default, where't_IS'is taken from thebuiltin termcap).When Vim was compiled with HAVE_X11 defined, the original icon will berestored if possibleX11.  SeeX11-icon forchanging the icon onX11.ForMS-Windows the icon can be changed, seewindows-icon.'iconstring''iconstring'string(default "")globalWhen this optionis not empty,it will be used for the icon text ofthe window.  This happens only when the'icon' optionis on.Only works if theterminal supports settingwindow icon text(currently onlyX11GUI and terminals witha non-empty't_IS' option).Does not work for MS-Windows.When Vim was compiled with HAVE_X11 defined, the original icon will berestored if possibleX11.When this option contains printf-style '%' items, they will beexpanded according to the rules used for'statusline'.  See'titlestring' for example settings.This option cannot be set inamodeline when'modelineexpr'is off.{not available when compiled without the |+statusline| feature}'ignorecase''ic''noignorecase''noic''ignorecase''ic'boolean(default off)globalIgnorecase in search patterns,cmdline-completion, whensearching in thetags file, non-Vim9expr-== and forInsert-modecompletionins-completion.Also see'smartcase' and'tagcase'.Can be overruled by using "\c" or "\C" in the pattern, see/ignorecase.'imactivatefunc''imaf''imactivatefunc''imaf'string (default "")globalThis optionspecifiesa function that will be called toactivate or deactivate the Input Method.  The value can be the name ofa function,alambda oraFuncref. Seeoption-value-function formore information.Itis not used in theMS-WindowsGUI version.Theexpression will be evaluated in thesandbox when set fromamodeline, seesandbox-option.Example:function ImActivateFunc(active)  if a:active    ... do something  else    ... do something  endif  " return value is not usedendfunctionset imactivatefunc=ImActivateFunc'imactivatekey''imak''imactivatekey''imak'string (default "")global{only available when compiled with+xim and+GUI_GTK}E599Specifies the key that your Input Method in X-Windows uses foractivation.  When thisis specified correctly, vim can fullycontrolIM with'imcmdline','iminsert' and'imsearch'.You can't use this option to change the activation key, the optiontells Vim what the key is.Format:[MODIFIER_FLAG-]KEY_STRINGThese characters can be used for MODIFIER_FLAG (caseis ignored):S    Shift keyL    Lock keyC    Control key1    Mod1 key2    Mod2 key3    Mod3 key4    Mod4 key5    Mod5 keyCombinations are allowed, for example "S-C-space" or "SC-space" areboth shift+ctrl+space.See <X11/keysymdef.h> and XStringToKeysym for KEY_STRING.Example::set imactivatekey=S-space"S-space" means shift+space.  Thisis the activation key for kinput2+canna (Japanese), and ami (Korean).'imcmdline''imc''noimcmdline''noimc''imcmdline''imc'boolean (default off)globalWhen set the Input Methodis always on whenstarting to edita commandline, unless enteringa searchpattern (see'imsearch' for that).Setting this optionis useful when your inputmethod allows enteringEnglish characters directly, e.g., when it's used to type accentedcharacters with dead keys.'imdisable''imd''noimdisable''noimd''imdisable''imd'boolean (default off, on for some systems (SGI))globalWhen set the Input Methodis never used.  Thisis useful to disablethe IM whenit doesn't work properly.Currently this optionis on by default for SGI/IRIX machines.  Thismay change in later releases.'iminsert''imi''iminsert''imi'number (default 0)local to bufferSpecifies whether:lmap or an Input Method (IM)is to be used inInsert mode.  Valid values:0:lmapis off and IMis off1:lmapis ON and IMis off2:lmapis off and IMis ONTo always reset the option to zero when leavingInsert mode with<Esc>this can be used::inoremap <ESC> <ESC>:set iminsert=0<CR>This makes:lmap and IM turn off automatically when leavingInsertmode.Note that this option changes when usingCTRL-^ inInsert modei_CTRL-^.The valueis set to 1 when setting'keymap' toa valid keymap name.Itis also used for the argument of commands like "r" and "f".The value0 may not work correctly withMotif with someXIMmethods.  Use'imdisable' to disableXIM then.You can set'imactivatefunc' and'imstatusfunc' to handle IME/XIMvia external command if Vimis not compiled with the+xim,+multi_byte_ime orglobal-ime.'imsearch''ims''imsearch''ims'number (default -1)local to bufferSpecifies whether:lmap or an Input Method (IM)is to be used whenenteringa search pattern.  Valid values:-1the value of'iminsert'is used, makesit look like'iminsert'is also used when typinga searchpattern0:lmapis off and IMis off1:lmapis ON and IMis off2:lmapis off and IMis ONNote that this option changes when usingCTRL-^ inCommand-line modec_CTRL-^.The valueis set to 1 whenitis not -1 and setting the'keymap'option toa valid keymap name.The value0 may not work correctly withMotif with someXIMmethods.  Use'imdisable' to disableXIM then.'imstatusfunc''imsf''imstatusfunc''imsf'string (default "")globalThis optionspecifiesa function thatis called to obtain the statusof Input Method.  Itmust returna positive number whenIMEis active.The value can be the name ofa function,alambda oraFuncref.Seeoption-value-function for more information.Itis not used in theMS-WindowsGUI version.Example:function ImStatusFunc()  let is_active = ...do something  return is_active ? 1 : 0endfunctionset imstatusfunc=ImStatusFuncNOTE: This functionis invoked very often.  Keepit fast.Theexpression will be evaluated in thesandbox when set fromamodeline, seesandbox-option.'imstyle''imst''imstyle''imst'number (default 1)global{only available when compiled with+xim and+GUI_GTK}This optionspecifies the input style of Input Method:0   use on-the-spot style1   over-the-spot styleSee:xim-input-styleFora long time on-the-spot style had been used in theGTK version ofvim, however,itis known thatit causes troubles when using mappings,single-repeat, etc.  Therefore over-the-spot style becomes thedefault now.  This should work fine for most people, however if youhave any problem with it, try using on-the-spot style.Theexpression will be evaluated in thesandbox when set fromamodeline, seesandbox-option.'include''inc''include''inc'string(default "^\s*#\s*include")global or local to bufferglobal-local{not available when compiled without the+find_in_path feature}Pattern to be used to find an include command.  Itisa searchpattern, just like for the "/" command (Seepattern).  The defaultvalueis forC programs.  This optionis used for the commands "[i","]I", "[d", etc.Normally the'isfname' optionis used to recognize the file name thatcomes after the matched pattern.  But if "\zs" appears in thepatternthen the text matched from "\zs" to the end, or until "\ze" ifitappears,is usedas the file name.  Use this to include charactersthat are not in'isfname', suchasa space.  You can then use'includeexpr' to process the matched text.Seeoption-backslash about including spaces and backslashes.'includeexpr''inex''includeexpr''inex'string(default "")local to buffer{not available when compiled without the+find_in_path or+eval features}Expression to be used to transform thestring found with the'include'option toa file name.  Mostly useful to change "." to "/" for Java::setlocal includeexpr=substitute(v:fname,'\\.','/','g')The "v:fname" variable will be set to the file name that was detected.Note the double backslash: the:set command first halves them, thenone remainsit the value, where "\." matchesa dot literally.  Forsimple character replacementstr() avoids the need for escaping::setlocal includeexpr=tr(v:fname,'.','/')Also used for thegf command if an unmodified file name can't befound.  Allows doing "gf" on the name after an'include' statement.Note: Not used for<cfile>.If theexpression starts with s: or<SID>, thenitis replaced withthescript ID(local-function). Example:setlocal includeexpr=s:MyIncludeExpr()setlocal includeexpr=<SID>SomeIncludeExpr()Otherwise, theexpressionis evaluated in the context of thescriptwhere the option was set, thusscript-local items are available.Itis more efficient if the valueis justa function call withoutarguments, seeexpr-option-function.Theexpression will be evaluated in thesandbox when set fromamodeline, seesandbox-option.This option cannot be set inamodeline when'modelineexpr'is off.Itis not allowed to change text or jump to anotherwindow whileevaluating'includeexpr'textlock.'incsearch''is''noincsearch''nois''incsearch''is'boolean(default off, set indefaults.vim if the+reltime featureis supported)global{not available when compiled without the+extra_search features}While typinga search command, show where the pattern,asit was typedso far, matches.  The matchedstringis highlighted.  If thepatternis invalid or not found, nothingis shown.  The screen will be updatedoften, thisis only useful on fast terminals.Also applies to thepattern in commands::global:lvimgrep:lvimgrepadd:smagic:snomagic:sort:substitute:vglobal:vimgrep:vimgrepaddNote that the match will be shown, but the cursor will return to itsoriginal position when no matchis found and when pressing<Esc>.  Youstill need to finish the search command with<Enter> to move thecursor to the match.You can use theCTRL-G andCTRL-T keys to move to the next andprevious match.c_CTRL-Gc_CTRL-TWhen compiled with the+reltime feature Vim only searches for abouthalfa second.  Witha complicatedpattern and/ora lot of text thematch may not be found.  Thisis to avoid that Vim hangs while youare typing the pattern.The highlighting can be set with the 'i' flag in'highlight'.When'hlsearch'is on, all matched strings are highlighted too whiletypinga search command. See also:'hlsearch'.If you don't want to turn'hlsearch' on, but want to highlight allmatches while searching, you can turn on and off'hlsearch' withautocmd.  Example:augroup vimrc-incsearch-highlight  autocmd!  autocmd CmdlineEnter /,\? :set hlsearch  autocmd CmdlineLeave /,\? :set nohlsearchaugroup ENDCTRL-L can be used to add one character from after the current matchto the command line.  If'ignorecase' and'smartcase' are set and thecommand line has nouppercase characters, the added characterisconverted to lowercase.CTRL-RCTRL-W can be used to add thewordat theend of the currentmatch, excluding the characters that were already typed.NOTE: This optionis reset when'compatible'is set.'indentexpr''inde''indentexpr''inde'string(default "")local to buffer{not available when compiled without the+evalfeature}Expression whichis evaluated to obtain the proper indent fora line.Itis used whena new lineis created, for the=operator andinInsert modeas specified with the'indentkeys' option.When this optionis not empty,it overrules the'cindent' and'smartindent' indenting.  When'lisp'is set, this optionisonly used when'lispoptions' contains "expr:1".When'paste'is set this optionis not used for indenting.Theexpressionis evaluated withv:lnum set to the line number forwhich the indentis to be computed.  The cursoris also in this linewhen theexpressionis evaluated (butit may be moved around).If theexpression starts with s: or<SID>, thenitis replaced withthescript ID(local-function). Example:set indentexpr=s:MyIndentExpr()set indentexpr=<SID>SomeIndentExpr()Otherwise, theexpressionis evaluated in the context of thescriptwhere the option was set, thusscript-local items are available.The advantage of usinga function call without argumentsis thatitisfaster, seeexpr-option-function.Theexpressionmust return the number of spaces worth of indent.  Itcan return "-1" to keep the current indent (this means'autoindent'isused for the indent).Functions useful for computing the indent areindent(),cindent()andlispindent().The evaluation of theexpressionmust not have side effects!  Itmustnot change the text, jump to another window, etc.  Afterwards thecursor positionis always restored, thus the cursor may be moved.Normally this option would be set to calla function::set indentexpr=GetMyIndent()Errormessages will be suppressed, unless the'debug' option contains"msg".Seeindent-expression.NOTE: This optionis set to "" when'compatible'is set.Theexpression will be evaluated in thesandbox when set fromamodeline, seesandbox-option.This option cannot be set inamodeline when'modelineexpr'is off.Itis not allowed to change text or jump to anotherwindow whileevaluating'indentexpr'textlock.'indentkeys''indk''indentkeys''indk'string(default "0{,0},0),0],:,0#,!^F,o,O,e")local to bufferAlist of keys that, when typed inInsert mode, cause reindenting ofthe current line.  Only happens if'indentexpr' isn't empty.The formatis identical to'cinkeys', seeindentkeys-format.SeeC-indenting andindent-expression.'infercase''inf''noinfercase''noinf''infercase''inf'boolean(default off)local to bufferWhen doing keyword completion ininsert modeins-completion, and'ignorecase'is also on, thecase of the matchis adjusted dependingon the typed text.  If the typed text containsalowercaseletterwhere the match has an uppercase letter, the completed partis madelowercase.  If the typed text has nolowercase letters and the matchhasalowercaseletter where the typed text has anuppercase letter,and thereisaletter before it, the completed partis made uppercase.With'noinfercase' the matchis used as-is.'isexpand''ise''isexpand''ise'string(default: "")local to bufferDefines characters and patterns for completion ininsert mode.  Usedby thecomplete_match() function to determine thestarting positionfor completion.  Thisisa comma-separatedlist of triggers.  Eachtrigger can be:-A single character like "." or "/"-A sequence of characters like "->", "/*", or "/**"Note: Use "\\," to adda literal commaas trigger character, seeoption-backslash.Examples:set isexpand=.,->,/*,\\,'insertmode''im''noinsertmode''noim''insertmode''im'boolean(default off)globalMakes Vim work ina way thatInsert modeis the default mode.  Usefulif you want to use Vimasa modeless editor.  Used forevim.TheseInsert mode commands will be useful:- Use the cursor keys to move around.- UseCTRL-O to execute oneNormal mode commandi_CTRL-O.  When  thisisa mapping,itis executedas if'insertmode' was off.Normal mode remains active until themappingis finished.- UseCTRL-L to executea number ofNormal mode commands, then use<Esc> to get back toInsert mode.Note thatCTRL-L moves the cursor  left, like<Esc> does when'insertmode' isn't set.i_CTRL-LThese items change when'insertmode'is set:- whenstarting to edit ofa file, Vim goes toInsert mode.-<Esc> inInsert modeisa no-op and beeps.-<Esc> inNormal mode makes Vimgo toInsert mode.-CTRL-L inInsert modeisa command,itis not inserted.-CTRL-Z inInsert mode suspends Vim, seeCTRL-Z.i_CTRL-ZHowever, when<Esc>is used insidea mapping,it behaves like'insertmode' was not set.  This was done to be able to use the samemappings with'insertmode' set or not set.When executing commands with:normal'insertmode'is not used.NOTE: This optionis reset when'compatible'is set.'isfname''isf''isfname''isf'string(default for Win32:     "@,48-57,/,\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,="    for AMIGA: "@,48-57,/,.,-,_,+,,,$,:"    for VMS: "@,48-57,/,.,-,_,+,,,#,$,%,<,>,[,],:,;,~"    for OS/390: "@,240-249,/,.,-,_,+,,,#,$,%,~,="    otherwise: "@,48-57,/,.,-,_,+,,,#,$,%,~,=")globalThe characters specified by this option are included in file names andpath names.  Filenames are used for commands like "gf", "[i" and inthetags file.  Itis also used for "\f" inapattern.Multi-byte characters 256 and above are always included, only thecharacters up to 255 are specified with this option.ForUTF-8 the characters 0xa0 to 0xff are includedas well.Think twice before adding whitespace to this option.  Althoughaspace may appear insidea file name, the effect will be that Vimdoesn't know wherea file name starts or ends when doing completion.It most likely works better withoutaspace in'isfname'.Note that on systems usingabackslashas path separator, Vim tries todo its best to makeit workas you would expect.  Thatisa bittricky, sinceVi originally used thebackslash toescape specialcharacters.  Vim will not removeabackslash in front ofa normal filename character on these systems, butit will onUnix and alikes.  The'&' and '^' are not included by default, because these are special forcmd.exe.The format of this optionisalist of parts, separated with commas.Each part can bea single character number ora range.A rangeis twocharacter numbers with '-' in between.A character number can beadecimal number between0 and 255 or the ASCII character itself (doesnot work for digits).  Example:"_,-,128-140,#-43"(include '_' and '-' and the range128 to 140 and '#' to 43)Ifa part starts with '^', the following character number or rangewill be excluded from the option.  The optionis interpreted from leftto right.  Put the excluded character after the range whereitisincluded.  To include '^' itself useitas the last character of theoption or theend ofa range.  Example:"^a-z,#,^"(exclude 'a' to 'z', include '#' and '^')If the characteris '@', all characters where isalpha() returnsTRUEare included.  Normally these are the charactersa toz andA to Z,plus accented characters.  To include '@' itself use "@-@".  Examples:"@,^a-z"All alphabetic characters, excluding lowercase ASCII letters."a-z,A-Z,@-@"All letters plus the '@' character.A comma can be included by usingit wherea character numberisexpected.  Example:"48-57,,,_"Digits, comma and underscore.A comma can be excluded by prependinga '^'.  Example:" -~,^,,9"All characters fromspace to '~', excludingcomma, plus<Tab>.Seeoption-backslash about including spaces and backslashes.'isident''isi''isident''isi'string(default for Win32:   "@,48-57,_,128-167,224-235"otherwise: "@,48-57,_,192-255")globalThe characters given by this option are included in identifiers.Identifiers are used in recognizing environmentvariables and afteramatch of the'define' option.  Itis also used for "\i" inapattern.  See'isfname' fora description of the format of thisoption.  For '@' only characters up to 255 are used.Careful: If you change this option,it might break expandingenvironment variables.  E.g., when '/'is included and Vim tries toexpand "$HOME/.viminfo".  Maybe you should change'iskeyword' instead.'iskeyword''isk''iskeyword''isk'string (Vim default for Win32:    "@,48-57,_,128-167,224-235"   otherwise:  "@,48-57,_,192-255"Vi default: "@,48-57,_")local to bufferKeywords are used in searching and recognizing with many commands:"w", "*", "[i", etc.  Itis also used for "\k" inapattern.  See'isfname' fora description of the format of this option.  For '@'characters above 255 check the "word" characterclass (any characterthatis not whitespace or punctuation).ForC programs you could use "a-z,A-Z,48-57,_,.,-,>".Forahelp fileitis set to all non-blank printable characters except'*','"' and'|' (so thatCTRL-] ona command finds thehelp for thatcommand).When the'lisp' optionis on the '-' characteris always included.This option also influencessyntax highlighting, unless thesyntaxuses:syn-iskeyword.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'isprint''isp''isprint''isp'string(default forWin32 and VMS:"@,~-255"; otherwise: "@,161-255")globalThe characters given by this option are displayed directly on thescreen.  Itis also used for "\p" inapattern.  The characters fromspace (ASCII 32) to '~' (ASCII 126) are always displayed directly,even when they are not included in'isprint' or excluded.  See'isfname' fora description of the format of this option.Non-printable characters are displayed with two characters:0-  31"^@"- "^_" 32- 126always single characters   127"^?"128- 159"~@"- "~_"160- 254"| "- "|~"   255"~?"When'encoding'isaUnicode one, illegal bytes from 128 to 255 aredisplayedas<xx>, with the hexadecimal value of the byte.When'display' contains "uhex" all unprintable characters aredisplayedas<xx>.The SpecialKey highlighting will be used for unprintable characters.hl-SpecialKeyMulti-byte characters 256 and above are always included, only thecharacters up to 255 are specified with this option.  Whena characteris printable butitis not available in the current font,areplacement character will be shown.Unprintable and zero-widthUnicode characters are displayedas<xxxx>.Thereis no option to specify these characters.'joinspaces''js''nojoinspaces''nojs''joinspaces''js'boolean(default on)globalInsert two spaces aftera '.', '?' and '!' witha join command.When'cpoptions' includes the 'j' flag, onlydo this aftera '.'.Otherwise only onespaceis inserted.NOTE: This optionis set when'compatible'is set.'jumpoptions''jop''jumpoptions''jop'string(default "")globalList of words that change the behavior of thejumplist.  stack         Make thejumplist behave like the tagstack.Relative location of entries in thejumplistispreservedat the cost of discarding subsequent entrieswhen navigating backwards in thejumplist and thenjumping toa location.jumplist-stack'key''key'string(default "")local to buffer{only available when compiled with the+cryptvfeature}The key thatis used for encrypting and decrypting the current buffer.Seeencryption and'cryptmethod'.Careful: Do not set the key value by hand, someone might see the typedkey.  Use the:X command.  But you can make'key' empty::set key=Itis not possible to get the value of this option with ":set key" or"echo &key".  Thisis to avoid showingit to someone who shouldn'tknow.  It also means you cannot seeit yourself once you have set it,be careful not to makea typing error!You also cannot use:set-=,:set+=,:set^= on this option toprevent an attacker from guessing substrings in your key.You can use "&key" in anexpression to detect whetherencryptionisenabled.  When'key'is setit returns "*****" (five stars).'keymap''kmp'E544'keymap''kmp'string(default "")local to buffer{only available when compiled with the+keymapfeature}Name ofa keyboard mapping.  Seembyte-keymap.Setting this option toa valid keymap name has the side effect ofsetting'iminsert' to one, so that the keymap becomes effective.'imsearch'is also set to one, unlessit was -1Only alphanumeric characters, '.', '-' and '_' can be used.'keymodel''km''keymodel''km'string(default "")globalList of comma-separated words, which enable special things that keyscan do.  These values can be used:   startselUsinga shifted special key starts selection (eitherSelect mode orVisual mode, depending on "key" beingpresent in'selectmode').   stopselUsinga not-shifted special key stops selection.Special keys in this context are the cursor keys,<End>,<Home>,<PageUp> and<PageDown>.The'keymodel' optionis set by the:behave command.'keyprotocol''kpc''keyprotocol''kpc'string(default: see below)globalSpecifies what keyboard protocol to use depending on the value of'term'.  The supported keyboard protocols names are:nonewhatever theterminal usesmok2modifyOtherKeys level 2,as supported by xtermkittyKitty keyboard protocol,as supported by KittyThe option valueisalist of comma separated items.  Each item hasapattern thatis matched against the'term' option,a colon and theprotocol name to be used.  To illustrate this, the default value wouldbe set with:   set keyprotocol=kitty:kitty,foot:kitty,ghostty:kitty,wezterm:kitty   set keyprotocol+=xterm:mok2This means that when'term' contains "kitty, "foot", "ghostty" or"wezterm" somewhere, then the "kitty" protocolis used.  When'term'contains "xterm" somewhere, then the "mok2" protocolis used.The first matchis used, thus if you want to have "kitty" use thekitty protocol, but "badkitty" not, then you should match "badkitty"first and use the "none" value:   set keyprotocol=badkitty:none,kitty:kittyThe optionis used after'term' has been changed.  First thetermcapentries are set, possibly using the builtin list, seebuiltin-terms.Then this optionis inspected and if thereisa match anda protocolis specified the following happens:noneNothing, the regulart_TE andt_TI values remainmok2Thet_TE valueis changed to:    CSI >4;mdisablesmodifyOtherKeysThet_TI valueis changed to:    CSI >4;2menablesmodifyOtherKeys    CSI ?4mrequest themodifyOtherKeys statekittyThet_TE valueis changed to:    CSI >4;mdisablesmodifyOtherKeys    CSI =0;1udisables the kitty keyboard protocolThet_TI valueis changed to:    CSI =1;1uenables the kitty keyboard protocol    CSI ?urequest kitty keyboard protocol state    CSI >crequest the termresponseIf you notice problems, suchas characters being displayed thatdisappear afterCTRL-L, you might want to try making this optionempty.  Then set the'term' option to haveit take effect:set keyprotocol=let &term = &term'keywordprg''kp''keywordprg''kp'string(default "man" or "man-s",  DOS: ":help",  VMS: "help")global or local to bufferglobal-localProgram to use for theK command.  Environmentvariables areexpanded:set_env.  ":help" may be used to access the Vim internalhelp.  (Note that previously setting the global option to the emptyvalue did this, whichis now deprecated.)When the first characteris ":", the commandis invokedasa VimEx command with[count] addedas an argument ifitis not zero.When "man", "man-s" or anEx commandis used, Vim will automaticallytranslateacount for the "K" command and passitas the firstargument.  For "man-s" the "-s"is removed when thereis no count.Seeoption-backslash about including spaces and backslashes.Example::set keywordprg=man\ -sThis option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'langmap''lmap'E357E358'langmap''lmap'string(default "")global{only available when compiled with the+langmapfeature}This option allows switching your keyboard intoa special languagemode.  When you are typing text inInsert mode the characters areinserted directly.  When inNormal mode the'langmap' option takescare of translating these special characters to the original meaningof the key.  This means you don't have to change the keyboard mode tobe able to executeNormal mode commands.Thisis the opposite of the'keymap' option, where characters aremapped inInsert mode.Also consider setting'langremap' to off, to prevent'langmap' fromapplying to characters resulting froma mapping.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.Example (for Greek, in UTF-8):greek    :set langmap=ΑA,ΒB,ΨC,ΔD,ΕE,ΦF,ΓG,ΗH,ΙI,ΞJ,ΚK,ΛL,ΜM,ΝN,ΟO,ΠP,QQ,ΡR,ΣS,ΤT,ΘU,ΩV,WW,ΧX,ΥY,ΖZ,αa,βb,ψc,δd,εe,φf,γg,ηh,ιi,ξj,κk,λl,μm,νn,οo,πp,qq,ρr,σs,τt,θu,ωv,ςw,χx,υy,ζzExample (exchanges meaning ofz andy for commands):    :set langmap=zy,yz,ZY,YZThe'langmap' optionisalist of parts, separated with commas.  Eachpart can be in one of two forms:1.Alist of pairs.  Each pairisa "from" character immediately    followed by the "to" character.  Examples: "aA", "aAbBcC".2.Alist of "from" characters,a semicolon andalist of "to"    characters.  Example: "abc;ABC"Example: "aA,fgh;FGH,cCdDeE"Special characters need to be preceded witha backslash.  These are";", ',','"','|' andbackslash itself.This will allow you to activate vim actions without having to switchback and forth between the languages.  Your language characters willbe understoodas normal vim English characters (according to thelangmap mappings) in the following cases:o Normal/Visual mode (commands, buffer/register names, user mappings)o Insert/Replace Mode: Register names afterCTRL-Ro Insert/Replace Mode: MappingsCharacters entered inCommand-line mode will NOT be affected bythis option.Note that this option can be changedat any timeallowing to switch between mappings for different languages/encodings.Useamapping to avoid having to typeit each time!'langmenu''lm''langmenu''lm'string(default "")global{only available when compiled with the+menu and+multi_lang features}Language to use for menu translation.  Tells which fileis loadedfrom the "lang" directory in'runtimepath':"lang/menu_" .. &langmenu .. ".vim"(without the spaces).  For example, to always use the Dutch menus, nomatter what $LANGis set to::set langmenu=nl_NL.ISO_8859-1When'langmenu'is empty,v:langis used.Only normal file name characters can be used, "/\*?[|<>" are illegal.If your $LANGis set toa non-English language but youdo want to usethe English menus::set langmenu=noneThis optionmust be set before loading menus, switching onfiletypedetection orsyntax highlighting.  Once themenus are defined settingthis option has no effect.  But you coulddo this::source $VIMRUNTIME/delmenu.vim:set langmenu=de_DE.ISO_8859-1:source $VIMRUNTIME/menu.vimWarning: This deletes allmenus that you defined yourself!'langnoremap''lnr''nolangnoremap''nolnr''langnoremap''lnr'boolean (default off, set indefaults.vim)global{only available when compiled with the+langmapfeature}Thisis just like'langremap' but with the value inverted.  It onlyexists for backwards compatibility.  When setting'langremap' then'langnoremap'is set to the inverted value, and the other way around.'langremap''lrm''nolangremap''nolrm''langremap''lrm'boolean (default on, set to off indefaults.vim)global{only available when compiled with the+langmapfeature}When off, setting'langmap' does not apply to characters resulting froma mapping.  This basically means, if you noticed that setting'langmap' disables some of your mappings, try resetting this option.This option defaults to on for backwards compatibility.  Setit off ifthat works for you to avoid mappings to break.'laststatus''ls''laststatus''ls'number(default 1)globalThe value of this option influences when the lastwindow will haveastatus line:0: never1: only if there areat least twowindows2: alwaysThe screen looks nicer witha status line if you have severalwindows, butit takes another screen line.status-line'lazyredraw''lz''nolazyredraw''nolz''lazyredraw''lz'boolean(default off)globalWhen this optionis set, the screen will not be redrawn whileexecuting macros,registers and other commands that have not beentyped.  Also, updating thewindow titleis postponed.  To force anupdate use:redraw.This may occasionally cause display errors.  Itis only meant to be settemporarily when performing an operation where redrawing may causeflickering or causea slowdown.'lhistory''lhi''lhistory''lhi'number(default: 10)local towindow{only available when compiled with the+quickfixfeature}Like'chistory', but for the locationlist stack associated withawindow.  If the optionis changed in either the locationlistwindowitself or thewindow thatis associated with the locationlist stack,the new value will also be applied to the other one.  This means thisvalue will always be the same fora given locationlistwindow and itscorresponding window.  Seequickfix-stack for additional info.'linebreak''lbr''nolinebreak''nolbr''linebreak''lbr'boolean(default off)local towindow{not available when compiled without the+linebreakfeature}If on, Vim will wrap long linesata character in'breakat' ratherthanat the last character that fits on the screen.  Unlike'wrapmargin' and'textwidth', this does notinsert<EOL>s in the file,it only affects the way the fileis displayed, not its contents.If'breakindent'is set, lineis visually indented. Then, the valueof'showbreak'is used toput in front of wrapped lines. This optionis not used when the'wrap' optionis off.Note that<Tab> characters after an<EOL> are mostly not displayedwith the right amount of white space.'lines'E593'lines'number(default 24 orterminal height)globalNumber of lines of the Vim window.Normally you don't need to set this.  Itis done automatically by theterminalinitialization code.  Also seeposix-screen-size.When Vimis running in theGUI or ina resizable window, setting thisoption will cause thewindow size to be changed.  When you only wantto use the size for the GUI,put the command in yourgvimrc file.Vimlimits the number of lines to what fits on the screen.  You canuse this command to get the tallestwindow possible::set lines=999Minimum valueis 2, maximum valueis 1000.If you get fewer lines than expected, check the'guiheadroom' option.When you set this option and Vimis unable to change the physicalnumber of lines of the display, the display may be messed up.'linespace''lsp''linespace''lsp'number(default 0, 1 forWin32 GUI)global{only in the GUI}Number of pixel lines inserted between characters.  Useful if the fontuses the full character cell height, making lines touch each other.When non-zero thereis room for underlining.With some fonts there can be too much room between lines (to havespace for ascents and descents).  Thenit makes sense to set'linespace' toa negative value.  This may cause display problemsthough!'lisp''nolisp''lisp'boolean(default off)local to bufferLisp mode: When<Enter>is typed ininsert mode set the indent forthe next line to Lisp standards (well, sort of).  Also happens with"cc" or "S".'autoindent'must also be on for this to work.  The 'p'flag in'cpoptions' changes themethod of indenting:Vi compatible orbetter.  Also see'lispwords'.The '-' characteris included in keyword characters.  Redefines the"="operator to use this same indentation algorithm rather thancalling an external program if'equalprg'is empty.This optionis not used when'paste'is set.'lispoptions''lop''lispoptions''lop'string(default "")local to bufferComma-separatedlist of items that influence the Lisp indenting whenenabled with the'lisp' option.  Currently only one itemissupported:expr:1use'indentexpr' for Lisp indenting whenitis setexpr:0do not use'indentexpr' for Lisp indenting (default)Note that when using'indentexpr' the=operator indents all thelines, otherwise the first lineis not indented (Vi-compatible).'lispwords''lw''lispwords''lw'string(defaultis very long)global or local to bufferglobal-localComma-separatedlist of words that influence the Lisp indenting whenenabled with the'lisp' option.'list''nolist''list'boolean(default off)local towindowList mode: By default show tabsasCTRL-Iis displayed, display$afterend of line.  Useful to see the difference between tabs andspaces and for trailing blanks.  Further changed by the'listchars'option.The cursoris displayedat the start of thespaceaTab characteroccupies, notat theendas usual inNormal mode.  To get this cursorposition while displaying Tabs with spaces, use::set list lcs=tab:\ \Note thatlist mode will also affectformatting (set with'textwidth'or'wrapmargin') when'cpoptions' includes 'L'.  See'listchars' forchanging the way tabs are displayed.'listchars''lcs''listchars''lcs'string(default "eol:$")global or local towindowglobal-localStrings to use in'list' mode and for the:list command.  Itisacomma-separatedlist ofstring settings.E1511lcs-eol  eol:cCharacter to showat theend of each line.  Whenomitted, thereis no extra characterat theend of theline.lcs-tab  tab:xy[z]Two or three characters to be used to showa tab.The third characteris optional.  tab:xyThe 'x'is always used, then 'y'as many timesas willfit.  Thus "tab:>-" displays:>>->--etc.  tab:xyzThe 'z'is always used, then 'x'is prepended, andthen 'y'is usedas many timesas will fit.  Thus"tab:<->" displays:><><-><-->etc.When "tab:"is omitted,atabis shownas ^I.lcs-space  space:cCharacter to show fora space.  When omitted, spacesare left blank.lcs-multispace  multispace:c...One or more characters to use cyclically to show formultiple consecutive spaces.  Overrides the "space"setting, except for single spaces.  When omitted, the"space" settingis used.  For example,`:set listchars=multispace:---+` shows ten consecutivespaces as:---+---+--lcs-lead  lead:cCharacter to show for leading spaces.  When omitted,leading spaces are blank.  Overrides the "space" and"multispace" settings for leading spaces.  You cancombineit with "tab:", for example::set listchars+=tab:>-,lead:.lcs-leadmultispace  leadmultispace:c...Like thelcs-multispace value, but for leadingspaces only.  Also overrideslcs-lead for leadingmultiple spaces.`:set listchars=leadmultispace:---+` shows tenconsecutive leading spaces as:---+---+--XXXWhere "XXX" denotes the first non-blank characters inthe line.lcs-trail  trail:cCharacter to show for trailing spaces.  When omitted,trailing spaces are blank.  Overrides the "space" and"multispace" settings for trailing spaces.lcs-extends  extends:cCharacter to show in the last column, when'wrap'isoff and the line continues beyond the right of thescreen.lcs-precedes  precedes:cCharacter to show in the first visible column of thephysical line, when thereis text preceding thecharacter visible in the first column.lcs-conceal  conceal:cCharacter to show in place of concealed text, when'conceallevel'is set to 1.lcs-nbsp  nbsp:cCharacter to show fora non-breakablespace character(0xA0 (160 decimal) and U+202F).  Left blank whenomitted.The characters ':' and ',' should not be used.UTF-8 characters canbe used when'encoding'is "utf-8", otherwise only printablecharacters are allowed.  All charactersmust be single width.E1512Each character can be specifiedas hex:set listchars=eol:\\x24set listchars=eol:\\u21b5set listchars=eol:\\U000021b5Note thata doublebackslashis used.  The number of hex charactersmust be exactly 2 for \\x, 4 for \\u and 8 for \\U.Examples:    :set lcs=tab:>-,trail:-    :set lcs=tab:>-,eol:<,nbsp:%    :set lcs=extends:>,precedes:<The "NonText" highlighting will be used for "eol", "extends" and"precedes".  "SpecialKey" will be used for "tab", "nbsp", "space","multispace", "lead" and "trail".hl-NonTexthl-SpecialKey'lpl''nolpl''loadplugins''noloadplugins''loadplugins''lpl'boolean(default on)globalWhen on theplugin scripts are loaded whenstarting upload-plugins.This option can be reset in yourvimrc file to disable the loadingof plugins.Note that using the "-u NONE", "-u DEFAULTS" and "--noplugin" commandline arguments reset this option.  See-u and--noplugin.'luadll''luadll'string(default depends on the build)global{only available when compiled with the+lua/dynfeature}Specifies the name of theLua shared library. The defaultisDYNAMIC_LUA_DLL, which was specifiedat compile time.Environmentvariables are expanded:set_env.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'macatsui''nomacatsui''macatsui'boolean(default on)global{not supported}No longer supported,as theMac OSXGUI code was removed.'magic''nomagic''magic'boolean(default on)globalChanges the special characters that can be used in search patterns.Seepattern.WARNING: Switching this option off most likely breaks plugins!  Thatis because many patterns assume it's on and will fail when it's off.Only switchit off when working with oldVi scripts.  In any othersituation write patterns that work when'magic'is on.  Include "\M"when you want to/\M.InVim9script the value of'magic'is ignored, patterns behave likeitis always set.'makeef''mef''makeef''mef'string(default: "")global{not available when compiled without the+quickfixfeature}Name of the errorfile for the:make command (see:make_makeprg)and the:grep command.Whenitis empty, an internally generated temp file will be used.When "##"is included,itis replaced bya number to make the nameunique.  This makes sure that the ":make" command doesn't overwrite anexisting file.NOT used for the ":cf" command.  See'errorfile' for that.Environmentvariables are expanded:set_env.Seeoption-backslash about including spaces and backslashes.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'makeencoding''menc''makeencoding''menc'string(default "")global or local to bufferglobal-localEncoding used for reading the output of external commands.  When empty,encodingis not converted.Thisis used for:make,:lmake,:grep,:lgrep,:grepadd,:lgrepadd,:cfile,:cgetfile,:caddfile,:lfile,:lgetfile,and:laddfile.This would be mostly useful when you useMS-Windows and set'encoding'to "utf-8".  If+iconvis enabled and GNU libiconvis used, setting'makeencoding' to "char" has the same effectas setting to the systemlocale encoding.  Example::set encoding=utf-8:set makeencoding=char" system locale is used'makeprg''mp''makeprg''mp'string(default "make", VMS: "MMS")global or local to bufferglobal-localProgram to use for the ":make" command.  See:make_makeprg.This option may contain '%' and '#' characters (see:_% and:_#),which are expanded to the current and alternate file name.  Use::Stoescape file names incase they contain special characters.Environmentvariables are expanded:set_env.  Seeoption-backslashabout including spaces and backslashes.Note thata'|'must be escaped twice: once for ":set" and once forthe interpretation ofa command.  When you useafilter called"myfilter"doit like this:    :set makeprg=gmake\ \\\|\ myfilterThe placeholder "$*" can be given (even multiple times) to specifywhere the arguments will be included, for example:    :set makeprg=latex\ \\\\nonstopmode\ \\\\input\\{$*}This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'matchpairs''mps''matchpairs''mps'string(default "(:),{:},[:]")local to bufferCharacters that form pairs.  The% command jumps from one to theother.Only character pairs are allowed that are different, thus you cannotjump between two double quotes.The charactersmust be separated bya colon.The pairsmust be separated bya comma.  Example for including '<' and'>' (for HTML)::set mps+=<:>A more exotic example, to jump between the '=' and ';' in anassignment, useful for languages likeC and Java::au FileType c,cpp,java set mps+==:;Fora more advanced way of using "%", see thematchit.vimplugin inthe $VIMRUNTIME/pack/dist/opt/matchit directory.add-local-help'matchtime''mat''matchtime''mat'number(default 5)globalTenths ofa second to show the matching paren, when'showmatch'isset.Note that thisis not in milliseconds, like otheroptions thatseta time.  Thisis to be compatible with Nvi.'maxcombine''mco''maxcombine''mco'number (default 2)globalThe maximum number of combining characters supported for displaying.Only used when'encoding'is "utf-8".The defaultis OK for most languages.  Hebrew may require 4.Maximum valueis 6.Even when this optionis set to 2 you can still edit text with morecombining characters, you just can't see them.  Useg8 orga.When set to 0, you will not be able to see any combining characters.Seembyte-combining.'maxfuncdepth''mfd''maxfuncdepth''mfd'number(default 100)global{not available when compiled without the+evalfeature}Maximum depth of function calls for user functions.  This normallycatches endless recursion.  When usinga recursive function withmore depth, set'maxfuncdepth' toa bigger number.  But this will usemore memory, thereis the danger of failing when memoryis exhausted.Increasing this limit above 200 also changes the maximum forExcommand recursion, seeE169.See also:function.Also used for maximum depth of callback functions.'maxmapdepth''mmd'E223'maxmapdepth''mmd'number(default 1000)globalMaximum number of timesamappingis done without resulting inacharacter to be used.  This normally catches endless mappings, like":mapxy" with ":mapyx".  It still does not catch ":mapg wg",because the 'w'is used before the nextmappingis done.  See alsokey-mapping.'maxmem''mm''maxmem''mm'number(default between 256 to 5120 (system dependent) or half the amount of memory available)globalMaximum amount of memory (in Kbyte) to use for one buffer.  When thislimitis reached allocating extra memory fora buffer will causeother memory to be freed.The maximum usable valueis about 2000000.  Use this to work withoutalimit.The valueis ignored when'swapfile'is off.Also see'maxmemtot'.'maxmempattern''mmp''maxmempattern''mmp'number(default 1000)globalMaximum amount of memory (in Kbyte) to use forpattern matching.The maximum valueis about 2000000.  Use this to work withouta limit.E363When Vim runs into the limitit gives an error message and mostlybehaves likeCTRL-C was typed.Running into the limit often means that thepatternis veryinefficient or too complex.  This may already happen with thepattern"\(.\)*" ona very long line.  ".*" works much better.Might also happen on redraw, whensyntax rules try to matcha complextext structure.Vim may run out of memory before hitting the'maxmempattern' limit, inwhichcase you get an "Out of memory" error instead.'maxmemtot''mmt''maxmemtot''mmt'number(default between 2048 and 10240 (system dependent) or half the amount of memory available)globalMaximum amount of memory in Kbyte to use for allbuffers together.The maximum usable valueis about 2000000 (2 Gbyte).  Use this to workwithouta limit.On 64 bit machines higher values might work.  But hey,do you reallyneed more than 2 Gbyte for text editing?  Keep in mind that textisstored in the swap file, one can edit files> 2 Gbyte anyway.  Wedoneed the memory to storeundo info.Buffers with'swapfile' off stillcount to the total amount of memoryused.Also see'maxmem'.'menuitems''mis''menuitems''mis'number(default 25)global{not available when compiled without the+menufeature}Maximum number of items to use ina menu.  Used formenus that aregenerated fromalist of items, e.g., the Buffers menu.  Changing thisoption has no direct effect, the menumust be refreshed first.'messagesopt''mopt''messagesopt''mopt'string(default "hit-enter,history:500")globalOption settings for outputting messages.  It can consist of thefollowing items.  Itemsmust be separated bya comma.hit-enterUseahit-enter prompt when the messageis longer than'cmdheight' size.wait:{n}Instead of usingahit-enter prompt, simply wait for{n} milliseconds so that the user hasa chance to readthe message.  The maximum value of{n}is 10000.  Use0 to disable the wait (but then the user may miss animportant message).This itemis ignored when "hit-enter"is present, butrequired when "hit-enter"is not present.history:{n}Determines how many entries are remembered in the:messages history.  The maximum valueis 10000.Settingit to zero clears the message history.This itemmust always be present.'mkspellmem''msm''mkspellmem''msm'string(default "460000,2000,500")global{not available when compiled without the+syntaxfeature}Parameters for:mkspell.  This tunes when to start compressing theword tree.  Compression can be slow when there are many words, butit's needed to avoid running out of memory.  The amount of memory usedperword depends very much on how similar the words are, that's whythis tuningis complicated.There are three numbers, separated by commas:{start},{inc},{added}For most languages the uncompressedword tree fits in memory.{start}gives the amount of memory in Kbyte that can be used before anycompressionis done.  It should bea bit smaller than the amount ofmemory thatis available to Vim.When going over the{start} limit the{inc} numberspecifies theamount of memory in Kbyte that can be allocated before anothercompressionis done.A low number means compressionis done afterless words are added, whichis slow.A high number means more memorywill be allocated.After doing compression,{added} times 1024 words can be added beforethe{inc} limitis ignored and compressionis done when any extraamount of memoryis needed.A low number means thereisa smallerchance of hitting the{inc} limit,less memoryis used but it'sslower.The languages for which these numbers are important are Italian andHungarian.  The default works for when you have about 512 Mbyte.  Ifyou have 1 Gbyte you could use::set mkspellmem=900000,3000,800If you haveless than 512 Mbyte:mkspell may fail for somelanguages, no matter what you set'mkspellmem' to.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'modeline''ml''nomodeline''noml''modeline''ml'boolean(Vim default: on (off for root),Vi default: off)local to bufferIf'modeline'is on'modelines' gives the number of lines thatischecked for set commands.  If'modeline'is off or'modelines'is zerono lines are checked.  Seemodeline.'modelineexpr''mle''nomodelineexpr''nomle''modelineexpr''mle'boolean (default: off)globalWhen on allow someoptions that are anexpression to be set in themodeline.  Check the option for whetheritis affected by'modelineexpr'.  Also seemodeline.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'modelines''mls''modelines''mls'number(default 5)globalIf'modeline'is on'modelines' gives the number of lines thatischecked for set commands.  If'modeline'is off or'modelines'is zerono lines are checked.  Seemodeline.NOTE:'modeline'is set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'modifiable''ma''nomodifiable''noma'E21'modifiable''ma'boolean(default on)local to bufferWhen off the buffer contents cannot be changed.  The'fileformat' and'fileencoding'options also can't be changed.Can be reset onstartup with the-M command line argument.'modified''mod''nomodified''nomod''modified''mod'boolean(default off)local to bufferlocal-noglobalWhen on, the bufferis considered to be modified.  This optionis setwhen:1.A change was made to the text sinceit was last written.  Using theundo command togo back to the original text will reset the   option.  But undoing changes that were made beforewriting the   buffer will set the option again, since the textis different from   whenit was written.2.'fileformat' or'fileencoding'is different from its original   value.  The original valueis set when the bufferis read or   written.A ":set nomodified" command also resets the original   values to the current values and the'modified' option will be   reset.   Similarly for'eol' and'bomb'.This optionis not set whena changeis made to the bufferas theresult ofa BufNewFile, BufRead/BufReadPost, BufWritePost,FileAppendPost orVimLeaveautocommand event.  Seegzip-example foran explanation.When'buftype'is "nowrite" or "nofile" this option may be set, butwill be ignored.Note that the text may actually be the same, e.g.'modified'is setwhen using "rA" on an "A".'more''nomore''more'boolean(Vim default: on,Vi default: off)globalWhen on, listings pause when the whole screenis filled.  You will getthemore-prompt.  When this optionis off there are no pauses, thelisting continues until finished.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'mouse''mouse'string(default "", "a" forGUI and Win32,set to "a" or "nvi" indefaults.vim)globalEnable the use of the mouse.  Works for most terminals (xterm,Win32win32-mouse,QNX pterm, *BSD console withsysmouse and Linux consolewith gpm).  For using the mouse in the GUI, seegui-mouse.  Themouse can be enabled for different modes:nNormal mode and Terminal modesvVisual modeiInsert modecCommand-line modehall previous modes when editingahelp fileaall previous modesrforhit-enter andmore-prompt promptNormally you would enable the mouse in all five modes with::set mouse=aIf yourterminal can't overrule the mouse events going to theapplication, use::set mouse=nviThen you can press ":", select text for the system, and press Esc togoback to Vim using the mouse events.Indefaults.vim "nvi"is used if the'term' optionis not matching"xterm".When the mouseis not enabled, theGUI will still use the mouse formodeless selection.  This doesn't move the text cursor.Seemouse-using.  Also see'clipboard'.Note: When enabling the mouse ina terminal, copy/paste will use the"*register if thereis access to an X-server.  The xterm handling ofthe mouse buttons can still be used by keeping theshift key pressed.Also see the'clipboard' option.'mousefocus''mousef''nomousefocus''nomousef''mousefocus''mousef'boolean(default off)global{only works in the GUI}Thewindow that the mouse pointeris onis automatically activated.Whenchanging thewindow layout orwindow focus in another way, themouse pointeris moved to thewindow with keyboard focus.  Offis thedefault becauseit makes using the pull downmenusa little goofy,asa pointer transit may activateawindow unintentionally.MS-Windows: Also see'scrollfocus' for whatwindowis scrolled whenusing the mouse scroll wheel.'mousehide''mh''nomousehide''nomh''mousehide''mh'boolean(default on)global{only works in the GUI}When on, the mouse pointeris hidden when characters are typed.The mouse pointeris restored when the mouseis moved.'mousemodel''mousem''mousemodel''mousem'string(default "extend", "popup" for Win32)globalSets the model to use for the mouse.  The name mostlyspecifies whatthe right mouse buttonis used for:   extendRight mouse buttonextendsa selection.  This workslike in an xterm.popupRight mouse button pops upa menu.  The shifted leftmouse buttonextendsa selection.  This works likewith Microsoft Windows.   popup_setpos Like "popup", but the cursor will be moved to theposition where the mouse was clicked, and thus theselected operation will act upon the clicked object.If clicking insidea selection, that selection willbe acted upon, i.e. no cursor move.  This implies ofcourse, that right clicking outsidea selection willendVisual mode.Overview of what button does what for each model:mouse    extendpopup(_setpos)left click    place cursorplace cursorleft drag    start selectionstart selectionshift-left    searchwordextend selectionright click    extend selectionpopup menu (place cursor)right drag    extend selection-middle click    pastepasteIn the "popup" model the right mouse button producesa pop-up menu.You need to define this first, seepopup-menu.Note that you can further refine the meaning of buttons with mappings.Seegui-mouse-mapping.  But mappings are NOT used for modelessselection (because that's handled in theGUI code directly).The'mousemodel' optionis set by the:behave command.'mousemoveevent''mousemev''nomousemoveevent''nomousemev''mousemoveevent''mousemev'boolean(default off)global{only works in the GUI}When on, mouse move events are delivered to the input queue and areavailable for mapping. The default, off, avoids the mousemovementoverhead except when needed. Seegui-mouse-mapping.Warning: Setting this option can make pending mappings to be abortedwhen the mouseis moved.Currently only works in the GUI, may be made to work inaterminallater.'mouseshape''mouses'E547'mouseshape''mouses'string(default "i-r:beam,s:updown,sd:udsizing,vs:leftright,vd:lrsizing,m:no,ml:up-arrow,v:rightup-arrow")global{only available when compiled with the+mouseshapefeature}This option tells Vim what the mouse pointer should look like indifferent modes.  The optionisa comma-separatedlist of parts, muchlike used for'guicursor'.  Each part consists ofa mode/location-listand an argument-list:mode-list:shape,mode-list:shape,..The mode-listisa dash separatedlist of these modes/locations:In a normal window:nNormal modevVisual modeveVisual mode with'selection' "exclusive" (sameas 'v',if not specified)oOperator-pending modeiInsert moderReplace modeOthers:cappending to the command-lineciinserting in the command-linecrreplacing in the command-linemat the 'Hit ENTER' or 'More' promptsmlidem, but cursor in the last lineeany mode, pointer below lastwindowsany mode, pointer ona status linesdany mode, while dragginga status linevsany mode, pointer ona vertical separator linevdany mode, while dragginga vertical separator lineaeverywhereThe shapeis one of the following:availnamelooks likewxg   arrowNormal mouse pointerwx     blankno pointerat all (use with care!)wxg   beamI-beamwxgupdownup-down sizing arrowswxgleftrightleft-right sizing arrowswxgbusyThe system's usual busy pointerwxgnoThe system's usual 'no input' pointerxgudsizingindicates up-down resizingxglrsizingindicates left-right resizingxgcrosshairlikea big thin+xg   hand1black handxghand2white handx     pencilwhat you write withxgquestionbig?x     rightup-arrowarrow pointing right-upwx     up-arrowarrow pointing upx<number>anyX11 pointer number (see X11/cursorfont.h)The "avail" column containsa 'w' if the shapeis available for Win32,x forX11 (includingGTK+ 2),g forGTK+ 3.Any modes not specified or shapes not available use the normal mousepointer.Example::set mouseshape=s:udsizing,m:nowill make the mouse turn toa sizing arrow over the status lines andindicate no input when thehit-enter promptis displayed (sinceclicking the mouse has no effect in this state.)'mousetime''mouset''mousetime''mouset'number(default 500)globalOnly for GUI,Win32 andUnix with xterm.  Defines the maximumtime in msec between two mouse clicks for the second click to berecognizedasa multi click.'mzquantum''mzq''mzquantum''mzq'number(default 100)global{not available when compiled without the+mzschemefeature}The number of milliseconds between polls forMzScheme threads.Negative or zero value means no thread scheduling.NOTE: This optionis set to the Vim default value when'compatible'is reset.'mzschemedll''mzschemedll'string(default depends on the build)global{only available when compiled with the+mzscheme/dynfeature}Specifies the name of theMzScheme shared library. The defaultisDYNAMIC_MZSCH_DLL which was specifiedat compile time.Environmentvariables are expanded:set_env.The valuemust be set in thevimrcscript or earlier.  In thestartup, before theload-plugins step.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'mzschemegcdll''mzschemegcdll'string(default depends on the build)global{only available when compiled with the+mzscheme/dynfeature}Specifies the name of theMzScheme GC shared library. The defaultisDYNAMIC_MZGC_DLL which was specifiedat compile time.The value can be equal to'mzschemedll' ifit includes the GC code.Environmentvariables are expanded:set_env.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'nrformats''nf''nrformats''nf'string(default "bin,octal,hex",   set to "bin,hex" indefaults.vim)local to bufferThis defines what bases Vim will consider for numbers when using theCTRL-A andCTRL-X commands for adding to and subtracting froma numberrespectively; seeCTRL-A for more info on these commands.alphaIf included, single alphabetical characters will beincremented or decremented.  Thisis useful foralist withaletterindex a), b), etc.octal-nrformatsoctalIf included, numbers that start witha zero will be consideredto be octal.  Example: UsingCTRL-A on "007" results in "010".hexIf included, numbersstarting with "0x" or "0X" will beconsidered to be hexadecimal.  Example: UsingCTRL-X on"0x100" results in "0x0ff".binIf included, numbersstarting with "0b" or "0B" will beconsidered to be binary.  Example: UsingCTRL-X on"0b1000" subtracts one, resulting in "0b0111".unsigned    If included, numbers are recognizedas unsigned. Thusaleading dash or negative sign won't be consideredas part ofthe number.  Examples:    UsingCTRL-X on "2020" in "9-2020" results in "9-2019"    (without "unsigned"it would become "9-2021").    UsingCTRL-A on "2020" in "9-2020" results in "9-2021"    (without "unsigned"it would become "9-2019").    UsingCTRL-X on "0" orCTRL-A on "18446744073709551615"    (2^64- 1) has no effect, overflowis prevented.blankIf included, treat numbersas signed or unsigned based onpreceding whitespace.  Ifa number witha leading dash has itsdash immediately preceded bya non-whitespace character (i.e.,notatab ora " "), the negative sign won't be consideredaspart of the number.  For example:    UsingCTRL-A on "14" in "Carbon-14" results in "Carbon-15"    (without "blank"it would become "Carbon-13").    UsingCTRL-X on "8" in "Carbon -8" results in "Carbon -9"    (because -8is preceded by whitespace.  If "unsigned" was    set,it would result in "Carbon -7").If this formatis included, overflowis preventedas if"unsigned" were set.  If both this format and "unsigned" areincluded, "unsigned" will take precedence.Numbers which simply begin witha digit in the range 1-9 are alwaysconsidered decimal.  This also happens for numbers that are notrecognizedasoctal or hex.'number''nu''nonumber''nonu''number''nu'boolean(default off)local towindowPrint the line number in front of each line.  When the 'n' optionisexcluded from'cpoptions'a wrapped line will not use the column ofline numbers (thisis the default when'compatible' isn't set).The'numberwidth' option can be used to set the room used for the linenumber.Whena long, wrapped line doesn't start with the first character, '-'characters areput before the number.For highlighting seehl-LineNr, andhl-CursorLineNr, and the:sign-define "numhl" argument.number_relativenumberThe'relativenumber' option changes the displayed number to berelative to the cursor.  Together with'number' there are thesefour combinations (cursor in line 3):'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(Vim default: 4Vi default: 8)local towindow{only available when compiled with the+linebreakfeature}Minimal number of columns to use for the line number.  Only relevantwhen the'number' or'relativenumber' optionis set orprinting lineswitha line number. Since onespaceis always between the number andthe text, thereis oneless character for the number itself.The valueis the minimum width.A bigger widthis used when needed tofit the highest line number in the buffer respectively the number ofrows in the window, depending on whether'number' or'relativenumber'is set. Thus with the Vim default of 4 thereis room fora line numberup to 999. When the buffer has 1000 lines five columns will be used.The minimum valueis 1, the maximum valueis 20.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'omnifunc''ofu''omnifunc''ofu'string(default: empty)local to buffer{not available when compiled without the+evalfeature}This optionspecifiesa function to be used forInsert mode omnicompletion withCTRL-XCTRL-O.i_CTRL-X_CTRL-OSeecomplete-functions for an explanation of how the functionisinvoked and whatit should return.  The value can be the name ofafunction,alambda oraFuncref. Seeoption-value-function formore information.This optionis usually set byafiletype plugin::filetype-plugin-onThis option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'opendevice''odev''noopendevice''noodev''opendevice''odev'boolean(default off)global{only for MS-Windows}E796Enable reading andwriting from devices.  This may get Vim stuck onadevice that can be opened but doesn't actuallydo the I/O.  Thereforeitis off by default.Note that onMS-Windows editing "aux.h", "lpt1.txt" and the like alsoresult in editinga device.'operatorfunc''opfunc''operatorfunc''opfunc'string(default: empty)globalThis optionspecifiesa function to be called by theg@ operator.See:map-operator for more info and an example.  The value can bethe name ofa function,alambda oraFuncref. Seeoption-value-function for more information.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'osfiletype''oft''osfiletype''oft'string (default: "")local to bufferThis option was supported on RISC OS, which has been removed.'packpath''pp''packpath''pp'string(default: see'runtimepath')Directories used to find packages.  Seepackages.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'paragraphs''para''paragraphs''para'string(default "IPLPPPQPP TPHPLIPpLpItpplpipbp")globalSpecifies the nroff macros that separate paragraphs.  These are pairsof two letters (seeobject-motions).'paste''nopaste''paste'boolean(default off)globalPut Vim in Paste mode.  Thisis useful if you want to cut or copysome text from onewindow and pasteit in Vim.  This will avoidunexpected effects.Setting this optionis useful when using Vim ina terminal, where Vimcannot distinguish between typed text and pasted text.  In the GUI, Vimknows about pasting and will mostlydo the right thing without'paste'being set.  The sameistrue foraterminal where Vim handles themouse clicks itself.This optionis reset whenstarting the GUI.  Thus if you setit inyour.vimrcit will work ina terminal, but not in the GUI.  Setting'paste' in theGUI has side effects: e.g., the Paste toolbar buttonwill no longer work inInsert mode, becauseit usesa mapping.When the'paste' optionis switched on (also whenit was already on):-mapping inInsert mode andCommand-line modeis 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 to0-'textwidth'is set to0-'wrapmargin'is set to0-'varsofttabstop'is made emptyTheseoptions keep their value, but their effectis disabled:-'cindent'-'formatoptions'is used likeitis empty-'indentexpr'-'lisp'-'smartindent'NOTE: When you start editing another file while the'paste' optionison, settings from the modelines orautocommands may change thesettings again, causing trouble when pasting text.  You might want toset the'paste' option again.When the'paste' optionis reset the mentionedoptions are restored tothe value before the moment'paste' was switched from off to on.Resetting'paste' before ever settingit does not have any effect.Sincemapping doesn't work while'paste'is active, you need to usethe'pastetoggle' option totoggle the'paste' option with some key.'pastetoggle''pt''pastetoggle''pt'string(default "")globalWhen non-empty,specifies the key sequence that toggles the'paste'option.  Thisis like specifyinga mapping:    :map {keys} :set invpaste<CR>Where{keys}is the value of'pastetoggle'.The differenceis thatit will work even when'paste'is set.'pastetoggle' works inInsert mode andNormal mode, but not inCommand-line mode.Mappings are checked first, thus overrule'pastetoggle'.  However,when'paste'is on mappings are ignored inInsert mode, thus you candothis:    :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 pastemode everythingis inserted literally, except the'pastetoggle' keysequence.When the value has several bytes'ttimeoutlen' applies.'pex''patchexpr''patchexpr''pex'string(default "")global{not available when compiled without the+difffeature}Expression whichis evaluated to applya patch toa file and generatethe resulting new version of the file.  Seediff-patchexpr.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'patchmode''pm'E205E206'patchmode''pm'string(default "")globalWhen non-empty the oldest version ofa fileis kept.  This can be usedto keep the original version ofa file if you arechanging files inasource distribution.  Only the first time thata fileis writtenacopy of the original file will be kept.  The name of the copyis thename of the original file with thestring in the'patchmode' optionappended.  This option should start witha dot.  Useastring like".orig" or ".org".'backupdir'must not be empty for this to work(Detail: Thebackup fileis renamed to the patchmode file after thenew file has been successfully written, that's whyitmust be possibleto writeabackup file).  If there was no file to be backed up, anempty fileis created.When the'backupskip'pattern matches,a patchmode fileis not made.Using'patchmode' for compressed files appends the extensionat theend (e.g., "file.gz.orig"), thus the resulting name isn't alwaysrecognizedasa compressed file.Only normal file name characters can be used, "/\*?[|<>" are illegal.'path''pa'E343E345E347E854'path''pa'string(default on Unix: ".,/usr/include,,"   other systems: ".,,")global or local to bufferglobal-localThisisalist of directories which will be searched when using thegf, [f, ]f, ^Wf,:find,:sfind,:tabfind and other commands,provided that the file being searched for hasa relative path (notstarting with "/", "./" or "../").  The directories in the'path'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 haveaspace ina directory  name, precedeit with an extra backslash, andescape the space::set path=.,/dir/with\\\ space- To includea comma ina directory name precedeit with an extra  backslash::set path=.,/dir/with\\,comma- To search relative to the directory of the current file, use::set path=.- To search in the current directory use an emptystring between two  commas::set path=,,-A directory name mayend ina ':' or '/'.- Environmentvariables are expanded:set_env.- When usingnetrw.vim URLs can be used.  For example, adding  "http://www.vim.org" will make ":find index.html" work.- Search upwards and downwards ina directory tree using "*", "**" and  ";".  Seefile-searching for info and syntax.- Careful with '\' characters, type two to get one in the option::set path=.,c:\\include  Or just use '/' instead::set path=.,c:/includeDon't forget "." or files won't even be found in the same directoryasthe file!The maximum lengthis limited.  How much depends on the system, mostlyitis something like 256 or 1024 characters.You can check if all the include files are found, using the value of'path', see:checkpath.The use of:set+= and:set-=is preferred when adding or removingdirectories from the list.  This avoids problems whena future versionuses another default.  To remove the current directory use::set path-=To add the current directory use::set path+=To use an environment variable, you probably need to replace theseparator.  Hereis an example to append $INCL, in which directorynames are separated witha semicolon::let &path = &path .. "," .. substitute($INCL, ';', ',', 'g')Replace the ';' witha ':' or whatever separatoris used.Note thatthis doesn't work when $INCL containsa comma or white space.'perldll''perldll'string(default depends on the build)global{only available when compiled with the+perl/dynfeature}Specifies the name of thePerl shared library. The defaultisDYNAMIC_PERL_DLL, which was specifiedat compile time.Environmentvariables are expanded:set_env.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'preserveindent''pi''nopreserveindent''nopi''preserveindent''pi'boolean(default off)local to bufferWhenchanging the indent of the current line, preserveas much of theindent structureas possible.  Normally the indentis replaced byaseries of tabs followed by spacesas required (unless'expandtab'isenabled, in whichcase only spaces are used).  Enabling this optionmeans the indent will preserveas many existing charactersas possiblefor indenting, and only add additional tabs or spacesas required.'expandtab' does not apply to the preserved white space,aTab remainsa Tab.NOTE: When using ">>" multiple times the resulting indentisa mix oftabs and spaces.  You might not like this.NOTE: This optionis reset when'compatible'is set.Also see'copyindent'.Use:retab to clean up white space.'previewheight''pvh''previewheight''pvh'number (default 12)global{not available when compiled without the+quickfixfeature}Default height fora preview window.  Used for:ptag and associatedcommands.  Used forCTRL-W_} when nocountis given.  Not used when'previewpopup'is set.'previewpopup''pvp''previewpopup''pvp'string (default empty)global{not available when compiled without the+textpropor+quickfix feature}When not emptyapopupwindowis used for commands that would openapreview window.  Seepreview-popup.Not used for theinsert completion info, add "popup" to'completeopt' for that.'previewwindow''nopreviewwindow''pvw''nopvw'E590'previewwindow''pvw'boolean (default off)local towindowlocal-noglobal{not available when compiled without the+quickfixfeature}Identifies the preview window.  Only onewindow can have this optionset.  It's normally not set directly, but by using one of the commands:ptag,:pedit, etc.'printdevice''pdev''printdevice''pdev'string(default empty)global{only available when compiled with the+printerfeature}The name of the printer to be used for:hardcopy.Seepdev-option.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'printencoding''penc''printencoding''penc'string(default empty, except for some systems)global{only available when compiled with the+printerand+postscript features}Sets the character encoding used when printing.Seepenc-option.'printexpr''pexpr''printexpr''pexpr'string(default: see below)global{only available when compiled with the+printerand+postscript features}Expression used to print the PostScript produced with:hardcopy.Seepexpr-option.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'printfont''pfn''printfont''pfn'string(default "courier")global{only available when compiled with the+printerfeature}The name of the font that will be used for:hardcopy.Seepfn-option.'printheader''pheader''printheader''pheader'string  (default "%<%f%h%m%=Page %N")global{only available when compiled with the+printerfeature}The format of the header produced in:hardcopy output.Seepheader-option.'printmbcharset''pmbcs''printmbcharset''pmbcs'string (default "")global{only available when compiled with the+printerand+postscript features}The CJK character set to be used for CJK output from:hardcopy.Seepmbcs-option.'printmbfont''pmbfn''printmbfont''pmbfn'string (default "")global{only available when compiled with the+printerand+postscript features}List of font names to be used for CJK output from:hardcopy.Seepmbfn-option.'printoptions''popt''printoptions''popt'string (default "")global{only available when compiled with |+printer| feature}List of items thatcontrol the format of the output of:hardcopy.Seepopt-option.'prompt''noprompt''prompt'boolean(default on)globalWhen ona ":" promptis used inEx mode.'pumheight''ph''pumheight''ph'number(default 0)globalDetermines the maximum number of items to show in thepopup menu forInsert mode completion.  When zeroas muchspaceas availableis used.ins-completion-menu.'pummaxwidth''pmw''pummaxwidth''pmw'number(default 0)globalDetermines the maximum width to use for thepopup menu for completion.When zero, thereis no maximum width limit, otherwise thepopup menuwill never be wider than this value.  Truncated text will be indicatedby "trunc" value of'fillchars' option.This option takes precedence over'pumwidth'.ins-completion-menu.'pumwidth''pw''pumwidth''pw'number(default 15)globalDetermines the minimum width to use for thepopup menu forInsert modecompletion.ins-completion-menu.'pythondll''pythondll'string(default depends on the build)global{only available when compiled with the+python/dynfeature}Specifies the name of thePython 2.x shared library. The defaultisDYNAMIC_PYTHON_DLL, which was specifiedat compile time.Environmentvariables are expanded:set_env.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'pythonhome''pythonhome'string(default "")global{only available when compiled with the+python/dynfeature}Specifies the name of thePython 2.xhome directory. When'pythonhome'and the PYTHONHOME environment variable are not set, PYTHON_HOME,which was specifiedat compile time, will be used for thePython 2.xhome directory.Environmentvariables are expanded:set_env.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'pythonthreedll''pythonthreedll'string(default depends on the build)global{only available when compiled with the+python3/dynfeature}Specifies the name of thePython 3 shared library. The defaultisDYNAMIC_PYTHON3_DLL, which was specifiedat compile time.Environmentvariables are expanded:set_env.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'pythonthreehome''pythonthreehome'string(default "")global{only available when compiled with the+python3/dynfeature}Specifies the name of thePython 3home directory. When'pythonthreehome' and the PYTHONHOME environment variable are not set,PYTHON3_HOME, which was specifiedat compile time, will be used forthePython 3home directory.Environmentvariables are expanded:set_env.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'pyxversion''pyx''pyxversion''pyx'number(default depends on the build)global{only available when compiled with the+python orthe+python3 feature}Specifies thepython version used for pyx*functions and commandspython_x.  The default valueisas follows:Compiled with     Default+python and+python30only+python  2only+python3  3Available values are 0, 2 and 3.If'pyxversion'is 0,itis set to 2 or 3 after the first execution ofany python2/3 commands or functions.  E.g.:py sets to 2, and:py3sets to 3.:pyx setsit to 3 ifPython 3is available, otherwise setsto 2 ifPython 2is available.See also:has-pythonxIf Vimis compiled with only+python or+python3 setting'pyxversion' has no effect.  The pyx*functions and commands arealways the sameas the compiled version.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'quickfixtextfunc''qftf''quickfixtextfunc''qftf'string (default "")global{only available when compiled with the+quickfixfeature}This optionspecifiesa function to be used to get the text to displayin thequickfix and locationlist windows.  This can be used tocustomize the information displayed in thequickfix or locationwindowfor each entry in the correspondingquickfix or location list.  Seequickfix-window-function for an explanation of how to write thefunction and an example.  The value can be the name ofa function,alambda oraFuncref. Seeoption-value-function for moreinformation.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'quoteescape''qe''quoteescape''qe'string(default "\")local to bufferThe characters that are used toescapequotes ina string.  Used forobjects like a',a" anda`a'.When one of the characters in this optionis found insidea string,the following character will be skipped.  The default value makes thetext "foo\"bar\\" considered to be one string.'readonly''ro''noreadonly''noro''readonly''ro'boolean(default off)local to bufferlocal-noglobalIf on, writes fail unless you usea '!'.  Protects you fromaccidentally overwritinga file.  Default on when Vimis startedin read-only mode("vim-R") or when the executableis called "view".When using ":w!" the'readonly' optionis reset for the currentbuffer, unless the 'Z' flagis in'cpoptions'.When using the ":view" command the'readonly' optionis set for thenewly edited buffer.See'modifiable' for disallowing changes to the buffer.'redrawtime''rdt''redrawtime''rdt'number(default 2000)global{only available when compiled with the+reltimefeature}The time in milliseconds for redrawing the display.  This applies tosearching for patterns for'hlsearch',:match highlighting andsyntaxhighlighting.When redrawing takes more than this many milliseconds no furthermatches will be highlighted.Forsyntax highlighting the time applies per window.  When over thelimitsyntax highlightingis disabled untilCTRL-Lis used.Thisis used to avoid that Vim hangs when usinga very complicatedpattern.'regexpengine''re''regexpengine''re'number(default 0)globalThis selects the defaultregexp engine.two-enginesThe possible values are:0automatic selection1old engine2NFA engineNote that when using theNFA engine and thepattern contains somethingthatis not supported thepattern will not match.  Thisis only usefulfor debugging theregexp engine.Using automatic selection enables Vim to switch the engine, if thedefault engine becomes too costly.  E.g., when theNFA engine uses toomany states.  This should prevent Vim from hanging ona combination ofa complexpattern with long text.'relativenumber''rnu''norelativenumber''nornu''relativenumber''rnu'boolean(default off)local towindowShow the line number relative to the line with the cursor in front ofeach line. Relative line numbershelp you use thecount you canprecede some vertical motion commands (e.g.jk+ -) with, withouthaving to calculateit yourself. Especially useful in combination withother commands (e.g.ydc<>gqgw =).When the 'n' optionis excluded from'cpoptions'a wrappedline will not use the column of line numbers (thisis the default when'compatible' isn't set).The'numberwidth' option can be used to set the room used for the linenumber.Whena long, wrapped line doesn't start with the first character, '-'characters areput before the number.Seehl-LineNr  andhl-CursorLineNr for the highlighting used forthe number.The number in front of the cursor line also depends on the value of'number', seenumber_relativenumber for all combinations of the twooptions.'remap''noremap''remap'boolean(default on)globalAllows for mappings to work recursively.  If youdo not want this fora single entry, use the :noremap[!] command.NOTE: To avoid portability problems with Vim scripts, always keepthis optionat the default "on".  Only switchit off when working witholdVi scripts.'renderoptions''rop''renderoptions''rop'string  (default: empty)global{only available when compiled withGUI and DIRECTX onMS-Windows}Selecta text renderer and set its options.  Theoptions depend on therenderer.Syntax:set rop=type:{renderer}(,{name}:{value})*Currently, only one optional rendereris available.renderbehaviordirectxVim will draw text using DirectX (DirectWrite).  It makesdrawn glyphs more beautiful than default GDI.It requires'encoding'is "utf-8", and only works onMS-Windows Vista or newer version.Options:  name    meaningtypevalue  gamma    gammafloat1.0- 2.2 (maybe)  contrast  enhancedContrastfloat(unknown)  level    clearTypeLevelfloat(unknown)  geom    pixelGeometryint0- 2 (see below)  renmode   renderingModeint0- 6 (see below)  taamode   textAntialiasModeint0- 3 (see below)  scrlines  Scroll Linesint(deprecated)See this URL for detail (except for scrlines):https://msdn.microsoft.com/en-us/library/dd368190.aspxFor geom: structure ofa device pixel.0- DWRITE_PIXEL_GEOMETRY_FLAT  1- DWRITE_PIXEL_GEOMETRY_RGB  2- DWRITE_PIXEL_GEOMETRY_BGRSee this URL for detail:https://msdn.microsoft.com/en-us/library/dd368114.aspxFor renmode:method of rendering glyphs.0- DWRITE_RENDERING_MODE_DEFAULT  1- DWRITE_RENDERING_MODE_ALIASED  2- DWRITE_RENDERING_MODE_GDI_CLASSIC  3- DWRITE_RENDERING_MODE_GDI_NATURAL  4- DWRITE_RENDERING_MODE_NATURAL  5- DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC  6- DWRITE_RENDERING_MODE_OUTLINESee this URL for detail:https://msdn.microsoft.com/en-us/library/dd368118.aspxFor taamode: antialiasing mode used for drawing text.0- D2D1_TEXT_ANTIALIAS_MODE_DEFAULT  1- D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE  2- D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE  3- D2D1_TEXT_ANTIALIAS_MODE_ALIASEDSee this URL for detail:https://msdn.microsoft.com/en-us/library/dd368170.aspxFor scrlines:This was used for optimizingscrolling behavior, however thisis now deprecated.  If specified,itis simply ignored.Example:  set encoding=utf-8  set gfn=Ricty_Diminished:h12  set rop=type:directxIf selecta raster font (Courier, Terminal or FixedSys whichhave ".fon" extension in file name) to'guifont',it will bedrawn by GDIasa fallback.NOTE: Itis known that some fonts andoptions combinationcauses trouble on drawing glyphs.- 'renmode:5' and 'renmode:6' will not work with some    special made fonts (True-Type fonts which includes only    bitmap glyphs).- 'taamode:3' will not work with some vector fonts.NOTE: With this option, you can display colored emoji(emoticon) in Windows 8.1 or later.  To display colored emoji,there are some conditions which you should notice.- If your font includes non-colored emoji already,it will    be used.- If your font doesn't have emoji, the system chooses an    alternative symbol font.  On Windows 10, "Segoe UI Emoji"    will be used.- When this alternative font didn't have fixed width glyph,    emoji might be rendered beyond the bounding box of drawing    cell.Other render types are currently not supported.'report''report'number(default 2)globalThreshold for reporting number of lines changed.  When the number ofchanged linesis more than'report'a message will be given for most":" commands.  If you wantit always, set'report' to 0.For the ":substitute" command the number of substitutionsis usedinstead of the number of lines.'restorescreen''rs''norestorescreen''nors''restorescreen''rs'boolean(default on)global{only in MS-Windows console version}When set, the screen contentsis restored whenexiting Vim.  This alsohappens when executing external commands.For non-Windows Vim: You can set or reset the't_ti' and't_te'options in your .vimrc.  To disable restoring:set t_ti= t_te=To enable restoring (for an xterm):set t_ti=^[7^[[r^[[?47h t_te=^[[?47l^[8(Where ^[is an<Esc>, typeCTRL-V<Esc> toinsert it)'revins''ri''norevins''nori''revins''ri'boolean(default off)global{only available when compiled with the+rightleftfeature}Inserting characters inInsert mode will work backwards.  See "typingbackwards"ins-reverse.  This option can be toggled with theCTRL-_command inInsert mode, when'allowrevins'is set.NOTE: This optionis reset when'compatible'is set.This optionis reset when'paste'is set and restored when'paste'isreset.'rightleft''rl''norightleft''norl''rightleft''rl'boolean(default off)local towindow{only available when compiled with the+rightleftfeature}When on, display orientation becomes right-to-left, i.e., charactersthat are stored in the file appear from the right to the left.Using this option,itis possible to edit files for languages thatare written from the right to the left suchas Hebrew and Arabic.This optionis per window, soitis possible to edit mixed filessimultaneously, or toview the same file in both ways (thisisuseful whenever you havea mixed text file with both right-to-leftand left-to-right strings so that both sets are displayed properlyin different windows).  Also seerileft.txt.'rightleftcmd''rlc''rightleftcmd''rlc'string(default "search")local towindow{only available when compiled with the+rightleftfeature}Eachword in this option enables the command line editing to work inright-to-left mode fora group of commands:search"/" and "?" commandsThisis useful for languages suchas Hebrew,Arabic and Farsi.The'rightleft' optionmust be set for'rightleftcmd' to take effect.'rubydll''rubydll'string(default: depends on the build)global{only available when compiled with the+ruby/dynfeature}Specifies the name of theRuby shared library. The defaultisDYNAMIC_RUBY_DLL, which was specifiedat compile time.Environmentvariables are expanded:set_env.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'ruler''ru''noruler''noru''ruler''ru'boolean(default off, set indefaults.vim)globalShow the line and column number of the cursor position, separated byacomma.  When thereis room, the relative position of the displayedtext in the fileis shown on the far right:Topfirst lineis visibleBotlast lineis visibleAllfirst and last line are visible45%relative position in the fileIf'rulerformat'is set,it will determine the contents of the ruler.Eachwindow has its own ruler.  Ifawindow hasa status line, theruleris shown there.  Otherwiseitis shown in the last line of thescreen.  If the statuslineis given by'statusline' (i.e. not empty),this option takes precedence over'ruler' and'rulerformat'.If the number of characters displayedis different from the number ofbytes in the text (e.g., fora TAB oramultibyte character), boththe text column (byte number) and the screen column are shown,separated witha dash.For an empty line "0-1"is shown.For an empty buffer the line number will also be zero: "0,0-1".This optionis reset when'paste'is set and restored when'paste'isreset.If you don't want to see the ruler all the time but want to know whereyou are, use "gCTRL-G"g_CTRL-G.NOTE: This optionis reset when'compatible'is set.'rulerformat''ruf''rulerformat''ruf'string(default empty)global{not available when compiled without the+statuslinefeature}When this optionis not empty,it determines the content of the rulerstring,as displayed for the'ruler' option.The format of this optionis like that of'statusline'.This option cannot be set inamodeline when'modelineexpr'is off.The default ruler widthis 17 characters.  To make the ruler 15characters wide,put "%15("at the start and "%)"at the end.Example::set rulerformat=%15(%c%V\ %p%%%)'runtimepath''rtp'vimfiles'runtimepath''rtp'string(default:Unix:  "$HOME/.vim or$XDG_CONFIG_HOME/vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/.vim/after"Amiga: "home:vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,home:vimfiles/after"MS-Windows: "$HOME/vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/vimfiles/after"Haiku: "$BE_USER_SETTINGS/vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$BE_USER_SETTINGS/vim/after"VMS:   "sys$login:vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,sys$login:vimfiles/after")globalThisisalist of directories which will be searched for runtimefiles:  filetype.vimfiletypes by file namenew-filetype  scripts.vimfiletypes by file contentsnew-filetype-scripts  autoload/automatically loaded scriptsautoload-functions  colors/color scheme files:colorscheme  compiler/compiler files:compiler  doc/documentationwrite-local-help  ftplugin/filetype pluginswrite-filetype-plugin  import/files that are found by:import  indent/indent scriptsindent-expression  keymap/keymapping filesmbyte-keymap  lang/message translations:menutrans andmulti-langmenu.vimGUImenusmenu.vim  pack/packages:packadd  plugin/plugin scriptswrite-plugin  print/files forprintingpostscript-print-encoding  spell/spell checking filesspell  syntax/syntax filesmysyntaxfile  tutor/files forvimtutortutorAnd any other file searched for with the:runtime command.For$XDG_CONFIG_HOME seexdg-base-dir.The defaults for most systems are setup to search five locations:1. In yourhome directory, for your personal preferences.2. Ina system-wide Vim directory, for preferences from the system   administrator.3. In $VIMRUNTIME, for files distributed with Vim.after-directory4. In the "after" directory in the system-wide Vim directory.  Thisis   for the system administrator to overrule or add to the distributed   defaults (rarely needed)5. In the "after" directory in yourhome directory.  Thisis for   personal preferences to overrule or add to the distributed defaults   or system-wide settings (rarely needed).More entries are added when usingpackages.  Ifit gets very longthen `:set rtp` will be truncated, use `:echo &rtp` to see the fullstring.Note that, unlike'path', nowildcards like "**" are allowed.Normalwildcards are allowed, but can significantly slow down searching forruntime files.  For speed, useas few itemsas possible and avoidwildcards.See:runtime.Example::set runtimepath=~/vimruntime,/mygroup/vim,$VIMRUNTIMEThis will use the directory "~/vimruntime" first (containing yourpersonal Vim runtime files), then "/mygroup/vim" (shared betweenagroup of people) and finally "$VIMRUNTIME" (the distributed runtimefiles).You probably should always include$VIMRUNTIME somewhere, to use thedistributed runtime files.  You canputa directory before$VIMRUNTIMEto find files which replacea distributed runtime files.  You canputa directory after$VIMRUNTIME to find files which add to distributedruntime files.When Vimis started with--clean thehome directory entries are notincluded.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'scroll''scr''scroll''scr'number(default: half thewindow height)local towindowlocal-noglobalNumber of lines to scroll withCTRL-U andCTRL-D commands.  Will beset to half the number of lines in thewindow when thewindow sizechanges.  This may happen when enabling thestatus-line or'tabline' option after setting the'scroll' option.If you giveacount to theCTRL-U orCTRL-D commandit willbe usedas the new value for'scroll'.  Reset to half thewindowheight with ":set scroll=0".'scrollbind''scb''noscrollbind''noscb''scrollbind''scb'boolean  (default off)local towindowSee alsoscroll-binding.  When this optionis set,scrolling thecurrentwindow also scrolls other scrollbindwindows (windows thatalso have this option set).  This optionis useful for viewing thedifferences between two versions ofa file, see'diff'.See'scrollopt' foroptions that determine how this option should beinterpreted.This optionis mostly reset when splittingawindow to edit anotherfile.  This means that ":split | edit file" results in twowindowswith scroll-binding, but ":split file" does not.'scrollfocus''scf''noscrollfocus''noscf''scrollfocus''scf'boolean  (default off)global{only for MS-Windows GUI}When using the scroll wheel and this optionis set, thewindow underthe mouse pointeris scrolled.  With this option off the currentwindowis scrolled.Systems other thanMS-Windows always behave like this optionis on.'scrolljump''sj''scrolljump''sj'number(default 1)globalMinimal number of lines to scroll when the cursor gets off thescreen (e.g., with "j").  Not used for scroll commands (e.g.,CTRL-E,CTRL-D).  Useful if yourterminal scrolls very slowly.When set toa negative number from -1 to -100 thisis usedas thepercentage of thewindow height.  Thus -50 scrolls half thewindowheight.NOTE: This optionis set to 1 when'compatible'is set.'scrolloff''so''scrolloff''so'number(default 0, set to 5 indefaults.vim)global or local towindowglobal-localMinimal number of screen lines to keep above and below the cursor.This will make some context visible around where you are working.  Ifyou setit toa very large value (999) the cursor line will always bein the middle of thewindow (exceptat the start orend of the file orwhen long lines wrap).After using the local value,go back the global value with one ofthese two:setlocal scrolloff<setlocal scrolloff=-1Forscrolling horizontally see'sidescrolloff'.NOTE: This optionis set to0 when'compatible'is set.'scrollopt''sbo''scrollopt''sbo'string(default "ver,jump")globalThisisa comma-separatedlist of words thatspecifies how'scrollbind'windows should behave.'sbo' stands for ScrollBindOptions.The following words are available:    verBind verticalscrolling for'scrollbind'windows    horBind horizontalscrolling for'scrollbind'windows    jumpApplies to the offset between twowindows for verticalscrolling.  This offsetis the difference in the firstdisplayed line of the bound windows.  When movingaround ina window, another'scrollbind'window mayreacha position before the start or after theend ofthe buffer.  The offsetis not changed though, whenmoving back the'scrollbind'window will try to scrollto the desired position when possible.When now making thatwindow the current one, twothings can be done with the relative offset:1. When "jump"is not included, the relative offsetis   adjusted for the scroll position in the new current   window.  When going back to the other window, the   new relative offset will be used.2. When "jump"is included, the otherwindows are   scrolled to keep the same relative offset.  When   going back to the other window,it still uses the   same relative offset.Also seescroll-binding.When'diff' modeis active there alwaysis vertical scroll binding,even when "ver" isn't there.'sections''sect''sections''sect'string(default "SHNHH HUnhsh")globalSpecifies the nroff macros that separate sections.  These are pairs oftwo letters (Seeobject-motions).  The default makesasection startat the nroff macros ".SH", ".NH", ".H", ".HU", ".nh" and ".sh".'secure''nosecure'E523'secure'boolean(default off)globalWhen on, ":autocmd", shell and write commands are not allowed in".vimrc" and ".exrc" in the current directory and map commands aredisplayed.  Switchit off only if you know that you will not run intoproblems, or when the'exrc' optionis off.  OnUnix this optionisonly used if the ".vimrc" or ".exrc"is not owned by you.  This can bedangerous if the systems allows users todoa "chown".  You better set'secure'at theend of your ~/.vimrc then.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'selection''sel''selection''sel'string(default "inclusive")globalThis option defines the behavior of the selection.  Itis only usedinVisual andSelect mode.Possible values:   valuepast line     inclusive   old   noyesinclusive   yesyesexclusive   yesno"past line" means that the cursoris allowed to be positioned onecharacter past the line."inclusive" means that the last character of the selectionis includedin an operation.  For example, when "x"is used to delete theselection.When "old"is used and'virtualedit' allows the cursor to move pasttheend of line the line break still isn't included.When "exclusive"is used, cursor position in visual mode will beadjusted forinclusive motionsinclusive-motion-selection-exclusive.Note:- When "exclusive"is used and selecting from theend backwards, you  cannot include the last character ofa line, whenstarting inNormal  mode and'virtualedit' empty.- when "exclusive"is used witha single character visual selection,  Vim will behaveas if the'selection'isinclusive (in other words,  you cannot visually select an empty region).The'selection' optionis set by the:behave command.'selectmode''slm''selectmode''slm'string(default "")globalThisisa comma-separatedlist of words, whichspecifies when to startSelect mode instead ofVisual mode, whena selectionis started.Possible values:   mousewhen using the mouse   keywhen using shifted special keys   cmdwhen using "v", "V" orCTRL-VSeeSelect-mode.The'selectmode' optionis set by the:behave command.'sessionoptions''ssop''sessionoptions''ssop'string(default: "blank,buffers,curdir,folds, help,options,tabpages,winsize,terminal")global{not available when compiled without the+mksessionfeature}Changes the effect of the:mksession command.  Itisa commaseparatedlist of words.  Eachword enables saving and restoringsomething:   wordsave and restore   blankemptywindowsbuffershidden and unloaded buffers, not just those inwindows   curdirthe current directoryfoldsmanually created folds, opened/closedfolds and localfoldoptions   globalsglobalvariables that start with anuppercaseletterand containat least onelowercase letter.  OnlyString andNumber types are stored.helpthehelpwindow   localoptionsoptions and mappings local toawindow or buffer (notglobal values for local options)optionsalloptions and mappings (also global values for localoptions)   skiprtpexclude'runtimepath' and'packpath' from theoptions   resizesize of the Vim window:'lines' and'columns'   sesdirthe directory in which the session fileis locatedwill become the current directory (useful withprojects accessed overanetwork from differentsystems)   slashbackslashes in file names replaced with forwardslashes   tabpagesalltab pages; without this only the currenttab pageis restored, so that you can makea session for eachtab page separatelyterminalincludeterminalwindows where the command can berestoredunixwithUnix end-of-line format (single<NL>), even whenon Windows orDOS   winposposition of the whole Vimwindow   winsizewindow sizesDon't include both "curdir" and "sesdir".When neither "curdir" nor "sesdir"is included, file names are storedwith absolute paths.If you leave out "options" many things won't work well after restoringthe session."slash" and "unix" are useful on Windows when sharing session fileswith Unix.  TheUnix version of Vim cannot sourcedos format scripts,but the Windows version of Vim can sourceunix format scripts.'shell''sh'E91'shell''sh'string(default $SHELL or "sh", Win32: "cmd.exe")globalName of the shell to use for! and:! commands.  Whenchanging thevalue also check these options:'shelltype','shellpipe','shellslash''shellredir','shellquote','shellxquote' and'shellcmdflag'.Itis allowed to give an argument to the command, e.g.  "csh-f".Seeoption-backslash about including spaces and backslashes.Environmentvariables are expanded:set_env.Inrestricted-mode shell commands will not be possible.  This modeis used if the value of $SHELL ends in "false" or "nologin".If the name of the shell containsa space, you need to encloseit inquotes andescape the space.  Example with quotes::set shell=\"c:\program\ files\unix\sh.exe\"\ -fNote thebackslash before eachquote (to avoidstartinga comment) andeachspace (to avoid ending the option value).  Alsonote that the"-f"is not inside the quotes, becauseitis not part of the commandname.  Vim automagically recognizes the backslashes that are pathseparators.Example with escapedspace (Vim willdo this when initializing theoption from $SHELL)::set shell=/bin/with\\\ space/shThe resulting value of'shell'is "/bin/with\ space/sh", twobackslashes are consumed by:set.Under MS-Windows, when the executable ends in ".com"itmust beincluded.  Thus setting the shell to "command.com" or "4dos.com"works, but "command" and "4dos"do not work for all commands (e.g.,filtering).For unknown reasons, when using "4dos.com" the current directoryischanged to "C:\".  To avoid this set'shell' like this::set shell=command.com\ /c\ 4dosThis option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'shellcmdflag''shcf''shellcmdflag''shcf'string(default: "-c"; Win32, when'shell' contains "powershell": "-Command", or whenit does not contain "sh" somewhere: "/c")globalFlag passed to the shell to execute "!" and ":!" commands; e.g.,"bash.exe-c ls", "powershell.exe -Command dir", or "cmd.exe /c dir".For MS-Windows, the defaultis set according to the value of'shell',to reduce the need to set this option by the user.OnUnixit can have more than one flag.  Each whitespace separatedpartis passedas an argument to the shell command.Seeoption-backslash about including spaces and backslashes.Also seedos-shell anddos-powershell for MS-Windows.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'shellpipe''sp''shellpipe''sp'string(default ">", ">%s 2>&1", "| tee", "|& tee" "2>&1| tee", or "2>&1 | Out-File -Encoding default")global{not available when compiled without the+quickfixfeature}String to be used toput the output of the ":make" command in theerror file.  See also:make_makeprg.  Seeoption-backslash aboutincluding spaces and backslashes.The name of the temporary file can be represented by "%s" if necessary(the file nameis appended automatically if no %s appears in the valueof this option).For theAmiga the defaultis ">".  ForMS-Windows using powershell thedefaultis "2>&1 | Out-File -Encoding default", otherwise the defaultis ">%s 2>&1".  The outputis directly saved ina file and not echoedto the screen.ForUnix the defaultis "| tee".  The stdout of the compileris savedina file and echoed to the screen.  If the'shell' optionis "csh" or"tcsh" after initializations, the default becomes "|& tee".  If the'shell' optionis "sh", "ksh", "mksh", "pdksh", "zsh", "zsh-beta","bash", "fish", "ash" or "dash" the default becomes "2>&1| tee".  Thismeans that stderris also included.  Before using the'shell' optionapathis removed, thus "/bin/sh" uses "sh".ForUnix and MS-Windows, when the'shell' optionis "pwsh" the defaultbecomes ">%s 2>&1" and the outputis not echoed to the screen.Theinitialization of this optionis done after reading the ".vimrc"and the other initializations, so that when the'shell' optionis setthere, the'shellpipe' option changes automatically, unlessit wasexplicitly set before.When'shellpipe'is set to an empty string, no redirection of the":make" output will be done.  Thisis useful if you usea'makeprg'that writes to'makeef' by itself.  If you want no piping, butdowant to include the'makeef', set'shellpipe' toa single space.Don't forget to precede thespace witha backslash: ":set sp=\ ".In the future pipes may be used for filtering and this option willbecome obsolete (at least for Unix).This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'shellquote''shq''shellquote''shq'string(default: "")globalQuoting character(s),put around the command passed to the shell, forthe "!" and ":!" commands.  The redirectionis kept outside of thequoting.  See'shellxquote' to include the redirection.  It'sprobably not useful to set both options.Thisis an emptystring by default.  Only known to be useful forthird-party shells on MS-Windows-like systems, suchas the MKS KornShell or bash, whereit should be "\"".  Seedos-shell.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'shellredir''srr''shellredir''srr'string(default ">", ">&", ">%s 2>&1", or "2>&1 | Out-File -Encoding default")globalString to be used toput the output ofafilter command ina temporaryfile.  See also:!.  Seeoption-backslash about including spacesand backslashes.The name of the temporary file can be represented by "%s" if necessary(the file nameis appended automatically if no %s appears in the valueof this option).The defaultis ">".  For Unix, if the'shell' optionis "csh" or"tcsh" during initializations, the default becomes ">&".  If the'shell' optionis "sh", "ksh", "mksh", "pdksh", "zsh", "zsh-beta","bash", "fish", or "pwsh", the default becomes ">%s 2>&1".  This meansthat stderris also included.  For Win32, theUnix checks are done andadditionally "cmd"is checked for, which makes the default ">%s 2>&1",and "powershell"is checked for which makes the default"2>&1 | Out-File -Encoding default" (seedos-powershell).  Also, thesame names with ".exe" appended are checked for.Theinitialization of this optionis done after reading the ".vimrc"and the other initializations, so that when the'shell' optionis setthere, the'shellredir' option changes automatically unlessit wasexplicitly set before.In the future pipes may be used for filtering and this option willbecome obsolete (at least for Unix).This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'shellslash''ssl''noshellslash''nossl''shellslash''ssl'boolean(default off)global{only for MS-Windows}When set,a forward slashis used when expanding file names.  Thisisuseful whena Unix-like shellis used instead of cmd.exe, pwsh.exe, orpowershell.exe.  Backward slashes can still be typed, but they arechanged to forward slashes by Vim.Note that setting or resetting this option has no effect for someexisting file names, thus this option needs to be set before openingany file for best results.  This might change in the future.'shellslash' only works whenabackslash can be usedasa pathseparator.  To test if thisis so use:if exists('+shellslash')Also see'completeslash'.'shelltemp''stmp''noshelltemp''nostmp''shelltemp''stmp'boolean(Vi default off, Vim default on)globalWhen on, use temp files for shell commands.  When off usea pipe.When usinga pipeis not possible temp files are used anyway.Currentlya pipeis only supported onUnix andMS-Windows 2K andlater.  You can checkit with::if has("filterpipe")The advantage of usinga pipeis that nobody can read the temp fileand the'shell' command does not need to support redirection.The advantage of usinga temp fileis that the file type and encodingcan be detected.TheFilterReadPre,FilterReadPost andFilterWritePre,FilterWritePostautocommands event are not triggered when'shelltemp'is off.Thesystem() function does not respect this option and always usestemp files.NOTE: This optionis set to the Vim default value when'compatible'is reset.'shelltype''st''shelltype''st'number(default 0)global{only for the Amiga}On theAmiga this option influences the way how the commands workwhich usea shell.0 and 1: always use the shell2 and 3: use the shell only tofilter lines4 and 5: use shell only for ':sh' commandWhen not using the shell, the commandis executed directly.0 and 2: use "shell'shellcmdflag' cmd" to start external commands1 and 3: use "shell cmd" to start external commands'shellxescape''sxe''shellxescape''sxe'string(default: ""; for MS-Windows: "\"&|<>()@^")globalWhen'shellxquote'is set to "(" then the characters listed in thisoption will be escaped witha '^' character.  This makesit possibleto execute most external commands with cmd.exe.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'shellxquote''sxq''shellxquote''sxq'string(default: "";for Win32, when'shell'is cmd.exe: "("for Win32, when'shell'ispowershell.exe: "\""for Win32, when'shell' contains "sh"somewhere: "\""for Unix, when using system(): "\"")globalQuoting character(s),put around the command passed to the shell, forthe "!" and ":!" commands.  Includes the redirection.  See'shellquote' to exclude the redirection.  It's probably not usefulto set both options.When the valueis '(' then ')'is appended. When the valueis'"('then')"'is appended.When the valueis '(' then also see'shellxescape'.Thisis an emptystring by default on most systems, butis known to beuseful for onWin32 version, either for cmd.exe, powershell.exe, orpwsh.exe which automatically strips off the first and lastquote onacommand, or 3rd-party shells suchas the MKS Korn Shell or bash, whereit should be "\"".  The defaultis adjusted according the value of'shell', to reduce the need to set this option by the user.  Seedos-shell.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'shiftround''sr''noshiftround''nosr''shiftround''sr'boolean(default off)globalRound indent to multiple of'shiftwidth'.  Applies to> and<commands.CTRL-T andCTRL-D inInsert mode always round the indent toa multiple of'shiftwidth' (thisisVi compatible).NOTE: This optionis reset when'compatible'is set.'shiftwidth''sw''shiftwidth''sw'number(default 8)local to bufferNumber of columns that make up one level of (auto)indentation.  Usedby'cindent',<<,>>, etc.If set to 0, Vim uses the current'tabstop' value.  Useshiftwidth()to obtain the effective value in scripts.'shortmess''shm''shortmess''shm'string(Vim default "filnxtToOS",Vi default: "S",POSIX default: "AS")globalE1336This option helps to avoid all thehit-enter prompts caused by filemessages, for example withCTRL-G, and to avoid some other messages.Itisalist of flags: flagmeaning when presentfuse "(3 of 5)" instead of "(file 3 of 5)"shm-fiuse "[noeol]" instead of "[Incomplete last line]"shm-iluse "999L, 888B" instead of "999 lines, 888 bytes"shm-lmuse "[+]" instead of "[Modified]"shm-mnuse "[New]" instead of "[New File]"shm-nruse "[RO]" instead of "[readonly]"shm-rwuse "[w]" instead of "written" for file write messageshm-wand "[a]" instead of "appended" for ':w>> file' commandxuse "[dos]" instead of "[dos format]", "[unix]"shm-xinstead of "[unix format]" and "[mac]" instead of "[macformat]"aall of the aboveabbreviationsshm-aooverwrite message forwritinga file with subsequentshm-omessage for readinga file (useful for ":wn" or when'autowrite' on)Omessage for readinga file overwrites any previousshm-Omessage;  also forquickfix message (e.g., ":cn")sdon't give "search hit BOTTOM, continuingat TOP" orshm-s"search hit TOP, continuingat BOTTOM" messages; when usingthe searchcountdo not show "W" before thecount message(seeshm-S below)ttruncate file messageat the start ifitis too longshm-tto fit on the command-line, "<" will appear in the left mostcolumn; ignored inEx modeTtruncate othermessages in the middle if they are tooshm-Tlong to fit on the command line; "..." will appear in themiddle; ignored inEx modeWdon't give "written" or "[w]" whenwritinga fileshm-WAdon't give the "ATTENTION" message when an existingshm-Aswap fileis foundIdon't give theintro message whenstarting Vim,shm-Isee:introcdon't giveins-completion-menu messages; forshm-cexample, "-- XXX completion (YYY)", "match 1 of 2", "The onlymatch", "Pattern not found", "Backat original", etc.Cdon't givemessages while scanning forins-completionshm-Citems, for instance "scanningtags"quse "recording" instead of "recording @a"shm-qFdon't give the file info when editinga file, likeshm-F:silent was used for the command;note that this alsoaffectsmessages fromautocommands and'autoread' reloadingSdo not show searchcount message when searching, e.g.shm-S"[1/5]". When the "S" flagis not present (e.g. searchcountis shown), the "search hit BOTTOM, continuingat TOP" and"search hit TOP, continuingat BOTTOM"messages are onlyindicated bya "W" (Mnemonic: Wrapped)letter before thesearchcount statistics.This gives you the opportunity to avoid thata change betweenbuffersrequires you to hit<Enter>, but still givesas usefula messageaspossible for thespace available.  To get the whole message that youwould have got with'shm' empty, use ":file!"Useful values:    shm=No abbreviation of message.    shm=aAbbreviation, but no loss of information.    shm=atAbbreviation, and truncate message when necessary.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'shortname''sn''noshortname''nosn''shortname''sn'boolean(default off)local to bufferFilenames are assumed to be 8 characters plus one extension of 3characters.  Multiple dots in file names are not allowed.  When thisoptionis on, dots in file names are replaced with underscores whenadding an extension(".~" or ".swp").  This optionis usefulwhen editing files on anMS-DOS compatible filesystem, e.g., messydosor crossdos.'showbreak''sbr'E595'showbreak''sbr'string(default "")global or local towindowglobal-local{not available when compiled without the+linebreakfeature}String toputat the start of lines that have been wrapped.  Usefulvalues are "> " or "+++ "::set showbreak=>\Note thebackslash toescape the trailing space.  It's easier likethis::let &showbreak = '+++ 'Only printable single-cell characters are allowed, excluding<Tab> andcomma (ina future version the comma might be used to separate thepart thatis shownat theend andat the start ofa line).The characters are highlighted according to the '@' flag in'highlight'.Note that tabs after the showbreak will be displayed differently.If you want the'showbreak' to appear in between line numbers, add the"n" flag to'cpoptions'.A window-local value overrulesa global value.  If the global valueisset and you want no value in the currentwindow use NONE::setlocal showbreak=NONE'showcmd''sc''noshowcmd''nosc''showcmd''sc'boolean(Vim default: on, off for Unix,Vi default: off, set indefaults.vim)globalShow (partial) command in the last line of the screen.  Set thisoption off if yourterminalis slow.InVisual mode the size of the selected areais shown:- When selecting characters withina line, the number of characters.  If the number of bytesis differentitis also displayed: "2-6"  means two characters and six bytes.- When selecting more than one line, the number of lines.- When selectinga block, the size in screen characters:{lines}x{columns}.This information can be displayed in an alternative location using the'showcmdloc' option.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'showcmdloc''sloc''showcmdloc''sloc'string(default "last")globalThis option can be used to display the (partially) entered command inanother location.  Possible values are:  lastLast line of the screen (default).  statuslineStatus line of the current window.  tablineFirst line of the screen if'showtabline'is enabled.Setting this option to "statusline" or "tabline" means that these willbe redrawn whenever the command changes, which can be on every keypressed.The %S'statusline' item can be used in'statusline' or'tabline' toplace the text.  Withouta custom'statusline' or'tabline'it will bedisplayed ina convenient location.'showfulltag''sft''noshowfulltag''nosft''showfulltag''sft'boolean (default off)globalWhen completingaword ininsert mode (seeins-completion) from thetags file, show both thetag name anda tidied-up form of the searchpattern (if thereis one)as possible matches.  Thus, if you havematchedaC function, you can seeatemplate for what arguments arerequired (coding style permitting).Note that this doesn't work well together with having "longest" in'completeopt', because the completion from the searchpattern may notmatch the typed text.'showmatch''sm''noshowmatch''nosm''showmatch''sm'boolean(default off)globalWhena bracketis inserted, briefly jump to the matching one.  Thejumpis only done if the match can be seen on the screen.  The time toshow the match can be set with'matchtime'.A Beepis given if thereis no match (no matter if the match can beseen or not).This optionis reset when'paste'is set and restored when'paste'isreset.When the 'm' flagis not included in'cpoptions', typinga characterwill immediately move the cursor back to whereit belongs.See the "sm" field in'guicursor' for setting the cursor shape andblinking when showing the match.The'matchpairs' option can be used to specify the characters to showmatches for.'rightleft' and'revins' are used to look for oppositematches.Also see thematchparenplugin for highlighting the match when movingaroundpi_paren.txt.Note: Use of the short formis rated PG.'showmode''smd''noshowmode''nosmd''showmode''smd'boolean(Vim default: on,Vi default: off)globalIf in Insert,Replace orVisual modeputa message on the last line.Use the 'M' flag in'highlight' to set the type of highlighting forthis message.WhenXIM may be used the message will include "XIM".  But thisdoesn't meanXIMis really active, especially when'imactivatekey'isnot set.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'showtabline''stal''showtabline''stal'number(default 1)globalThe value of this optionspecifies when the line withtab page labelswill be displayed:0: never1: only if there areat least twotab pages2: alwaysThisis both for theGUI and non-GUI implementation of thetab pagesline.Seetab-page for more information abouttab pages.'showtabpanel''stpl''showtabpanel''stpl'number(default 0)global{not available when compiled without the+tabpanelfeature}The value of this optionspecifies when thetabpanel withtab pagelabels will be displayed:0: never1: only if there areat least twotab pages2: alwaysSeetab-page for more information abouttab page labels.'sidescroll''ss''sidescroll''ss'number(default 0)globalThe minimal number of columns to scroll horizontally.  Used only whenthe'wrap' optionis off and the cursoris moved off of the screen.Whenitis zero the cursor will beput in the middle of the screen.When usinga slowterminal setit toa large number or 0.  When usinga fastterminal usea small number or 1.  Not used for "zh" and "zl"commands.'sidescrolloff''siso''sidescrolloff''siso'number (default 0)global or local towindowglobal-localThe minimal number of screen columns to keep to the left and to theright of the cursor if'nowrap'is set.  Setting this option toavalue greater than0 while having'sidescroll' alsoata non-zerovalue makes some context visible in the line you arescrolling inhorizontally (exceptat beginning of the line).  Setting this optiontoa large value (like 999) has the effect of keeping the cursorhorizontally centered in the window,as longas one does not come tooclose to the beginning of the line.After using the local value,go back the global value with one ofthese two:setlocal sidescrolloff<setlocal sidescrolloff=-1NOTE: This optionis set to0 when'compatible'is set.Example: Try this together with'sidescroll' and'listchars'as in the following example to never allow the cursor to move onto the "extends" character: :set nowrap sidescroll=1 listchars=extends:>,precedes:< :set sidescrolloff=1'signcolumn''scl''signcolumn''scl'string(default "auto")local towindow{not available when compiled without the+signsfeature}Whether or not to draw the signcolumn. Valid values are:   "auto"only when thereisa sign to display   "no"never   "yes"always   "number"displaysigns in the'number' column. If the numbercolumnis not present, then behaves like "auto".'smartcase''scs''nosmartcase''noscs''smartcase''scs'boolean(default off)globalOverride the'ignorecase' option if the searchpattern contains uppercase characters.  Only used when the searchpatternis typed and'ignorecase' optionis on.  Used for the commands "/", "?", "n", "N",":g" and ":s" and when filtering matches for the completion menucompl-states.Not used for "*", "#", "gd",tag search, etc.  After "*" and "#" youcan make'smartcase' used by doinga "/" command, recalling the searchpattern fromhistory and hitting<Enter>.NOTE: This optionis reset when'compatible'is set.'smartindent''si''nosmartindent''nosi''smartindent''si'boolean(default off)local to bufferDo smart autoindenting whenstartinga new line.  Works for C-likeprograms, but can also be used for other languages.'cindent' doessomething like this, works better in most cases, butis more strict,seeC-indenting.  When'cindent'is on or'indentexpr'is set,setting'si' has no effect.'indentexpr'isa more advancedalternative.Normally'autoindent' should also be on when using'smartindent'.An indentis automatically inserted:- Aftera line ending in '{'.- Aftera linestarting witha keyword from'cinwords'.- Beforea linestarting with '}' (only with the "O" command).When typing '}'as the first character ina new line, that lineisgiven the same indentas the matching '{'.When typing '#'as the first character ina new line, the indent forthat lineis removed, the '#'isput in the first column.  The indentis restored for the next line.  If you don't want this, use thismapping: ":inoremap# X^H#", where ^His entered withCTRL-VCTRL-H.When using the ">>" command, linesstarting with '#' are not shiftedright.NOTE: This optionis reset when'compatible'is set.This optionis reset when'paste'is set and restored when'paste'isreset.'smarttab''sta''nosmarttab''nosta''smarttab''sta'boolean(default off)globalWhen enabled, the<Tab> key will indent by'shiftwidth' if the cursoris in leading whitespace.  The<BS> key has the opposite effect.In leading whitespace, this has the same effectas setting'softtabstop' to the value of'shiftwidth'.This optionis reset when'compatible'is set;itis temporarilydisabled when'paste'is enabled, and restored when'paste'is turnedoff.NOTE: in most cases, using'softtabstop'isa better option.  Havealookatsection30.5 of the user guide for detailedexplanations on how Vim works with tabs and spaces.'smoothscroll''sms''nosmoothscroll''nosms''smoothscroll''sms'boolean  (default off)local towindowScrolling works with screen lines.  When'wrap'is set and the firstline in thewindow wraps part ofit may not be visible,as ifitisabove the window. "<<<"is displayedat the start of the first line,highlighted withhl-NonText.You may also want to add "lastline" to the'display' option to showasmuch of the last lineas possible.NOTE: partly implemented, doesn't work yet forgj andgk.'softtabstop''sts''softtabstop''sts'number(default 0)local to bufferCreate softtab stops, separated by'softtabstop' number of columns.InInsert mode, pressing the<Tab> key will move the cursor to thenext softtab stop, instead ofinsertinga literal tab.<BS> behavessimilarly in reverse.  Vim insertsa minimal mix oftab andspacecharacters to produce the visual effect.This setting does not affect the display of existingtab characters.A value of0 disables this behaviour.A negative value makes Vim use'shiftwidth'.  If you plan to use'sts' and'shiftwidth' withdifferent values, you might consider setting'smarttab'.'softtabstop'is temporarily set to0 when'paste'is on and resetwhenitis turned off.  Itis also reset when'compatible'is set.The 'L' flag in'cpoptions' alterstab behavior when'list'isenabled.  See alsoins-expandtab ans user manualsection30.5 forin-depth explanations.If Vimis compiled with the+vartabs feature then the value of'softtabstop' will be ignored if'varsofttabstop'is set toanything other than an empty string.'spell''nospell''spell'boolean(default off)local towindow{not available when compiled without the+syntaxfeature}When onspell checking will be done.  Seespell.The languages are specified with'spelllang'.'spellcapcheck''spc''spellcapcheck''spc'string(default "[.?!]\_[\])'" \t]\+")local to buffer{not available when compiled without the+syntaxfeature}Pattern to locate theend ofa sentence.  The followingword will bechecked to start witha capital letter.  If not thenitis highlightedwith SpellCaphl-SpellCap (unless thewordis also badly spelled).When this checkis not wanted make this option empty.Only used when'spell'is set.Be careful with special characters, seeoption-backslash aboutincluding spaces and backslashes.To set this option automatically depending on the language, seeset-spc-auto.'spellfile''spf''spellfile''spf'string(default empty)local to buffer{not available when compiled without the+syntaxfeature}Name of thewordlist file where words are added for thezg andzwcommands.  Itmustend in ".{encoding}.add".  You need to include thepath, otherwise the fileis placed in the current directory.The path may include characters from'isfname', space, comma and '@'.E765It may also bea comma-separatedlist of names.Acount before thezg andzw commands can be used to access each.  This allows usinga personalwordlist file anda projectwordlist file.Whenawordis added while this optionis empty Vim will setit foryou: Using the first directory in'runtimepath' thatis writable.  Ifthereis no "spell" directory yetit will be created.  For the filename the first language name that appears in'spelllang'is used,ignoring the region.The resulting ".spl" file will be used forspell checking,it does nothave to appear in'spelllang'.Normally one fileis used for all regions, but you can add the regionname if you want to.  However,it will then only be used when'spellfile'is set to it, for entries in'spelllang' only fileswithout region name will be found.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'spelllang''spl''spelllang''spl'string(default "en")local to buffer{not available when compiled without the+syntaxfeature}A comma-separatedlist ofwordlist names.  When the'spell' optionison spellchecking will be done for these languages.  Example:set spelllang=en_us,nl,medicalThis means US English, Dutch and medical words are recognized.  Wordsthat are not recognized will be highlighted.Thewordlist namemust consist of alphanumeric characters,a dash oran underscore.  It should not includea comma or dot.  Usinga dashisrecommended to separate the twoletter language name fromaspecification.  Thus "en-rare"is used for rare English words.A region namemust come last and have the form "_xx", where "xx"isthe two-letter, lowercase region name.  You can use more than oneregion by listing them: "en_us,en_ca" supports both US and CanadianEnglish, but not words specific for Australia, New Zealand or GreatBritain. (Note: currently en_au and en_nz dictionaries are older thanen_ca, en_gb and en_us).If the name "cjk"is included East Asian characters are excluded fromspell checking.  Thisis useful when editing text that also has Asianwords.Note that the "medical" dictionary does not exist,itis just anexample ofa longer name.E757Asa specialcase the name ofa .spl file can be given as-is.  Thefirst "_xx" in the nameis removed and usedas the region name(_xxis an underscore, two letters and followed bya non-letter).Thisis mainly fortesting purposes.  Youmust make sure the correctencodingis used, Vim doesn't check it.When'encoding'is set theword lists are reloaded.  Thus it'sa goodidea to set'spelllang' after setting'encoding' to avoid loading thefiles twice.How the relatedspell files are foundis explained here:spell-load.If thespellfile.vimpluginis active and you usea language namefor which Vim cannot find the .spl file in'runtimepath' thepluginwill ask you if you want todownload the file.After this option has been set successfully, Vim will source the files"spell/LANG.vim" in'runtimepath'.  "LANG"is the value of'spelllang'up to the first character thatis not an ASCIIletter or number andnota dash.  Also seeset-spc-auto.'spelloptions''spo''spelloptions''spo'string(default "")local to buffer{not available when compiled without the+syntaxfeature}A comma-separatedlist ofoptions forspell checking:   camelWhenawordis CamelCased, assume "Cased"isaseparate word: every upper-case character inawordthat comes aftera lowercase character indicates thestart ofa new word.'spellsuggest''sps''spellsuggest''sps'string(default "best")global{not available when compiled without the+syntaxfeature}Methods used for spelling suggestions.  Both for thez= command andthespellsuggest() function.  Thisisa comma-separatedlist ofitems:bestInternalmethod that works best for English.  Findschanges like "fast" and usesa bit of sound-a-likescoring to improve the ordering.doubleInternalmethod that uses two methods and mixes theresults.  The firstmethodis "fast", the othermethodcomputes how much the suggestion sounds like the badword.  That only works when the languagespecifiessound folding.  Can be slow and doesn't always givebetter results.fastInternalmethod that only checks for simple changes:character inserts/deletes/swaps.  Works well forsimple typing mistakes.{number}The maximum number of suggestions listed forz=.Not used forspellsuggest().  The number ofsuggestionsis never more than the value of'lines'minus two.timeout:{millisec}   Limit the time searching for suggestions to{millisec} milliseconds.  Applies to the followingmethods.  When omitted the limitis 5000. Whennegative thereis no limit.  {only works when builtwith the+reltime feature}file:{filename} Read file{filename}, whichmust have two columns,separated bya slash.  The first column contains thebad word, the second column the suggested good word.Example:theribal/terribleUse this for common mistakes thatdo not appearat thetop of the suggestionlist with the internal methods.Lines withouta slash are ignored, use this forcomments.Theword in the second columnmust be correct,otherwiseit will not be used.  Add theword to an".add" file ifitis currently flaggedasa spellingmistake.The fileis used for all languages.expr:{expr}Evaluateexpression{expr}.  Usea function to avoidtrouble with spaces.  Bestis to calla functionwithout arguments, seeexpr-option-function.v:val holds the badly spelled word.  Theexpressionmust evaluate toaList of Lists, each withasuggestion anda score.Example:[['the', 33], ['that', 44]]Set'verbose' and usez= to see the scores that theinternal methods use.A lower scoreis better.This may invokespellsuggest() if you temporarilyset'spellsuggest' to exclude the "expr:" part.Errors are silently ignored, unless you set the'verbose' option toa non-zero value.Only one of "best", "double" or "fast" may be used.  The others mayappear several times in any order.  Example::set sps=file:~/.vim/sugg,best,expr:MySuggest()This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'splitbelow''sb''nosplitbelow''nosb''splitbelow''sb'boolean(default off)globalWhen on, splittingawindow willput the newwindow below the currentone.:split'splitkeep''spk''splitkeep''spk'string(default "cursor")globalThe value of this option determines the scroll behavior when opening,closing or resizing horizontal splits.Possible values are:  cursorKeep the same relative cursor position.  screenKeep the text on the same screen line.  toplineKeep the topline the same.For the "screen" and "topline" values, the cursor position will bechanged when necessary. In this case, thejumplist will be populatedwith the previous cursor position. For "screen", the text cannot alwaysbe kept on the same screen line when'wrap'is enabled.'splitright''spr''nosplitright''nospr''splitright''spr'boolean(default off)globalWhen on, splittingawindow willput the newwindow right of thecurrent one.:vsplit'startofline''sol''nostartofline''nosol''startofline''sol'boolean(default on)globalWhen "on" the commands listed below move the cursor to the firstnon-blank of the line.  When off the cursoris 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"- "d", "<<", "==" and ">>" withalinewiseoperator(operator-resulting-pos)- "%" withacount- bufferchanging commands (CTRL-^, :bnext, :bNext, etc.)-Ex commands that only hasa line number, e.g., ":25" or ":+".Incase of bufferchanging commands the cursoris placedat the columnwhereit was the last time the buffer was edited.NOTE: This optionis set when'compatible'is set.'statusline''stl'E540E542'statusline''stl'string(default empty)global or local towindowglobal-local{not available when compiled without the+statuslinefeature}When non-empty, this option determines the content of the status line.Also seestatus-line.The option consists of printf style '%' items interspersed withnormal text.  Each status line itemis of the form:  %-0{minwid}.{maxwid}{item}All fields except the{item} are optional.A single percent sign canbe givenas "%%".stl-%!When the option starts with "%!" thenitis usedas an expression,evaluated and the resultis usedas the option value.  Example::set statusline=%!MyStatusLine()Theg:statusline_winid variable will be set to thewindow-ID of thewindow that the status line belongs to.The result can contain %{} items that will be evaluated too.Note that the "%!"expressionis evaluated in the context of thecurrentwindow and buffer, while %{} items are evaluated in thecontext of thewindow that the statusline belongs to.When thereis error while evaluating the option thenit will be madeempty to avoid further errors.  Otherwise screen updating would loop.When the result contains unprintable characters the resultisunpredictable.Note that the only effect of'ruler' when this optionis set (and'laststatus'is 2)is controlling the output ofCTRL-G.field    meaning-    Leftjustify the item.  The defaultis right justified    when minwidis larger than the length of the item.0    Leading zeroes in numeric items.  Overridden by '-'.minwid    Minimum width of the item, paddingas set by '-'& '0'.    Valuemust be 50 or less.maxwid    Maximum width of the item.  Truncation occurs witha '<'    on the left for text items.  Numeric items will be    shifted down to maxwid-2 digits followed by '>'number    where numberis the amount of missing digits, much like    an exponential notation.itemA oneletter codeas described below.Followingisa description of the possible statusline items.  Thesecond character in "item"is the type:N for numberS forstringF for flagsas described below- not applicableitem  meaningfS   Path to the file in the buffer,as typed or relative to current      directory.FS   Full path to the file in the buffer.tS   File name (tail) of file in the buffer.mF   Modified flag, textis "[+]"; "[-]" if'modifiable'is off.MF   Modified flag, textis ",+" or ",-".rF   Readonly flag, textis "[RO]".RF   Readonly flag, textis ",RO".hF   Help buffer flag, textis "[help]".HF   Help buffer flag, textis ",HLP".wF   Previewwindow flag, textis "[Preview]".WF   Previewwindow flag, textis ",PRV".yF   Type of file in the buffer, e.g., "[vim]".  See'filetype'.YF   Type of file in the buffer, e.g., ",VIM".  See'filetype'.qS   "[Quickfix List]", "[Location List]" or empty.kS   Value of "b:keymap_name" or'keymap' when:lmap mappings are      being used: "<keymap>"nN   Buffer number.bN   Value of character under cursor.BN   As above, in hexadecimal.oN   Byte number in file of byte under cursor, first byteis 1.      Mnemonic: Offset from start of file (with one added){not available when compiled without |+byte_offset| feature}ON   As above, in hexadecimal.NN   Printer page number.  (Only works in the'printheader' option.)lN   Line number.LNNumber of lines in buffer.cN   Column number (byte index).vN   Virtual column number (screen column).VN   Virtual column numberas -{num}.  Not displayed if equal to 'c'.pN   Percentage through file in linesas inCTRL-G.PS   Percentage through file of displayed window.  Thisis like the      percentage described for'ruler'.  Always 3 in length, unless      translated.SS'showcmd' content, see'showcmdloc'.aS   Argumentlist statusas in default title.  ({current} of{max})      Empty if the argument filecountis zero or one.{ NF  Evaluate expression between '%{' and '}' and substitute result.Note that thereis no '%' before the closing '}'.  Theexpression cannot containa '}' character, calla function to      work around that.  Seestl-%{ below.{%-  Thisis almost sameas{ except the result of theexpressionis      re-evaluatedasa statusline format string.  Thus if the      return value ofexpr contains% items they will get expanded.      Theexpression can contain the} character, theend ofexpressionis denoted by %}.      For example:func! Stl_filename() abort    return "%t"endfuncstl=%{Stl_filename()}   results in"%t"stl=%{%Stl_filename()%} results in`"Name of current file"`%}-  End of{%expression(-   Start of item group.  Can be used for setting the width and      alignment ofa section.  Must be followed by %) somewhere.)-   End of item group.  No width fields allowed.TN   For'tabline': start oftab pageN label.  Use %T after the last      label.  This informationis used for mouse clicks.XN   For'tabline': start of closetabN label.  Use %X after the      label, e.g.: %3Xclose%X.  Use %999X fora "close currenttab"      mark.  This informationis used for mouse clicks.<-   Where to truncate line if too long.  Defaultisat the start.      No width fields allowed.=-   Separation point between alignment sections.  Eachsection will      be separated by an equal number of spaces.  With one %= what      comes afterit will be right-aligned.  With two %= thereisa      middle part, with whitespace left and right of it.      No width fields allowed.#-   Set highlight group.  The namemust follow and thena# again.      Thus use %#HLname# for highlight group HLname.  The same      highlightingis used, also for the statusline of non-current      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 numberNmust be between 1 and 9.  Seehl-User1..9When displayinga flag, Vim removes the leading comma, if any, whenthat flag comes right after plaintext.  This will makea nice displaywhen flags are used like in the examples below.When all items ina group becomes an emptystring (i.e. flags that arenot set) anda minwidis not set for the group, the whole group willbecome empty.  This will makea group like the following disappearcompletely from the statusline when none of the flags are set.:set statusline=...%(\ [%M%R%H]%)...Beware that anexpressionis evaluated each and every time the statuslineis displayed.stl-%{g:actual_curbufg:actual_curwinWhile evaluating %{} the current buffer and currentwindow will be settemporarily to that of thewindow (and buffer) whose statuslineiscurrently being drawn.  Theexpression will evaluate in this context.The variable "g:actual_curbuf"is set to thebufnr() number of thereal current buffer and "g:actual_curwin" to thewindow-ID of thereal current window.  These values are strings.The'statusline' option will be evaluated in thesandbox if set froma modeline, seesandbox-option.This option cannot be set inamodeline when'modelineexpr'is off.Itis not allowed to change text or jump to anotherwindow whileevaluating'statusline'textlock.If the statuslineis not updated when you wantit (e.g., after settinga variable that's used in an expression), you can force an update byusing:redrawstatus.A result of all digitsis regardeda number for display purposes.Otherwise the resultis takenas flag text and applied to the rulesdescribed above.Watch out forerrors in expressions.  They may render Vim unusable!If you are stuck, hold down ':' or 'Q' to geta prompt, then quit andedit your.vimrc or whatever with "vim--clean" to getit right.Examples:Emulate standard status line with'ruler' set  :set statusline=%<%f\ %h%w%m%r%=%-14.(%l,%c%V%)\ %PSimilar, but add ASCII value of char under the cursor (like "ga")  :set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %PDisplay bytecount and byte value, modified flag in red.  :set statusline=%<%f%=\ [%1*%M%*%n%R%H]\ %-19(%3l,%02c%03V%)%O'%02b'  :hi User1 term=inverse,bold cterm=inverse,bold ctermfg=redDisplaya ,GZ flag ifa compressed fileis loaded  :set statusline=...%r%{VarExists('b:gzflag','\ [GZ]')}%h...In the:autocmd's:  :let b:gzflag = 1And:  :unlet b:gzflagAnd define this function:  :function VarExists(var, val)  :    if exists(a:var) | return a:val | else | return '' | endif  :endfunction'suffixes''su''suffixes''su'string(default ".bak,~,.o,.h,.info,.swp,.obj")globalFiles with thesesuffixes geta lower priority when multiple filesmatcha wildcard.  Seesuffixes.  Commas can be used to separate thesuffixes.  Spaces after the comma are ignored.A dotis also seenasthe start ofa suffix.  To avoida dot or comma being recognizedasaseparator, precedeit withabackslash (seeoption-backslash aboutincluding spaces and backslashes).See'wildignore' for completely ignoring files.The use of:set+= and:set-=is preferred when adding or removingsuffixes from the list.  This avoids problems whena future versionuses another default.'suffixesadd''sua''suffixesadd''sua'string(default "")local to bufferComma-separatedlist of suffixes, which are used when searching forafile for the "gf", "[I", etc. commands.  Example::set suffixesadd=.java'swapfile''swf''noswapfile''noswf''swapfile''swf'boolean (default on)local to bufferUsea swapfile for the buffer.  This option can be reset whenaswapfileis not wanted fora specific buffer.  For example, withconfidential information that even rootmust not be able to access.Careful: All text will be in memory:- Don't use this for big files.- Recovery will be impossible!A swapfile will only be present when'updatecount'is non-zero and'swapfile'is set.When'swapfile'is reset, the swap file for the current bufferisimmediately deleted.  When'swapfile'is set, and'updatecount'isnon-zero,a swap fileis immediately created.Also seeswap-file and'swapsync'.If you want to opena new buffer without creatinga swap file for it,use the:noswapfile modifier.See'directory' for where the swap fileis created.This optionis used together with'bufhidden' and'buftype' tospecify special kinds of buffers.   Seespecial-buffers.'swapsync''sws''swapsync''sws'string(default "fsync")globalWhen this optionis not emptya swap fileis synced to disk afterwriting to it.  This takes some time, especially on busyunix systems.When this optionis empty parts of the swap file may be in memory andnot written to disk.  When the system crashes you may lose more work.OnUnix the system doesa sync now and then without Vim asking for it,so the disadvantage of setting this option offis small.  On somesystems the swap file will not be writtenat all.  Foraunix systemsettingit to "sync" will use the sync() call instead of the defaultfsync(), which may work better on some systems.The'fsync' optionis used for the actual file.'switchbuf''swb''switchbuf''swb'string(default "")globalThis option controls the behavior when switching between buffers.This optionis checked, when- jumping toerrors with thequickfix commands(:cc,:cn,:cp,  etc.).- jumping toatag using the:stag command.- openinga file using theCTRL-W_f orCTRL-W_F command.- jumping toa buffer usinga buffer split command (e.g.:sbuffer,:sbnext, or:sbrewind).Possible values (comma-separated list):   useopenIf included, jump to the first openwindow in thecurrenttab page that contains the specified buffer(if thereis one).  Otherwise: Do not examine otherwindows.   usetabLike "useopen", but also considerwindows in othertabpages.   splitIf included, split the currentwindow before loadinga buffer foraquickfix command that display errors.Otherwise:do not split, use currentwindow (when usedin thequickfix window: the previously usedwindow orsplit if thereis no other window).   vsplitJust like "split" but split vertically.   newtabLike "split", but opena newtab page.  Overrules"split" when both are present.   uselastIf included, jump to the previously usedwindow whenjumping toerrors withquickfix commands.Ifawindow has'winfixbuf' enabled,'switchbuf'is currently notapplied to the split window.'synmaxcol''smc''synmaxcol''smc'number(default 3000)local to buffer{not available when compiled without the+syntaxfeature}Maximum column in which to search forsyntax items.  In long lines thetext after this columnis not highlighted and following lines may notbe highlighted correctly, because thesyntax stateis cleared.This helps to avoid very slow redrawing for an XML file thatis onelong line.Set to zero to remove the limit.'syntax''syn''syntax''syn'string(default empty)local to bufferlocal-noglobal{not available when compiled without the+syntaxfeature}When this optionis set, thesyntax with this nameis loaded, unlesssyntax highlighting has been switched off with ":syntax off".Otherwise this option does not always reflect the currentsyntax (theb:current_syntax variable does).This optionis most useful ina modeline, fora file whichsyntaxisnot automatically recognized.  Example, in an IDL file:/* vim: set syntax=idl : */Whena dot appears in the value then this separates twofiletypenames.  Example:/* vim: set syntax=c.doxygen : */This will use the "c"syntax first, then the "doxygen" syntax.Note that the second onemust be prepared to be loadedas an addition,otherwiseit will be skipped.  More than one dot may appear.To switch offsyntax highlighting for the current file, use::set syntax=OFFTo switchsyntax highlighting on according to the current value of the'filetype' option::set syntax=ONWhat actually happens when setting the'syntax' optionis that theSyntaxautocommand eventis triggered with the valueas argument.This optionis not copied to another buffer, independent of the 's' or'S' flag in'cpoptions'.Only alphanumeric characters, '.', '-' and '_' can be used.'tabclose''tcl''tabclose''tcl'string(default "")globalThis option controls the behavior when closingtab pages (e.g., using:tabclose).  When empty Vim goes to the next (right)tab page.Possible values (comma-separated list):   leftIf included,go to the previoustab page instead ofthe next one.   uselastIf included,go to the previously usedtab page ifpossible.  This option takes precedence over theothers.'tabline''tal''tabline''tal'string(default empty)globalWhen non-empty, this option determines the content of thetab pageslineat the top of the Vim window.  When empty Vim will usea defaulttab pages line.  Seesetting-tabline for more info.Thetab pages line only appearsas specified with the'showtabline'option and only when thereis noGUItab line.  When 'e'is in'guioptions' and theGUI supportsatab line'guitablabel'is usedinstead.Note that the twotab pages lines are very different.The valueis evaluated like with'statusline'.  You can usetabpagenr(),tabpagewinnr() andtabpagebuflist() to figure outthe text to be displayed.  Use "%1T" for the first label, "%2T" forthe second one, etc.  Use "%X" items for closing labels.Whenchanging something thatis used in'tabline' that does nottriggerit to be updated, use:redrawtabline.This option cannot be set inamodeline when'modelineexpr'is off.Keep in mind that only one of thetab pagesis the current one, othersare invisible and you can't jump to their windows.'tabpagemax''tpm''tabpagemax''tpm'number(default 10)globalMaximum number oftab pages to be opened by the-p command lineargument or the ":tab all" command.tabpage'tabpanel''tpl'g:actual_curtabpage'tabpanel''tpl'string(default empty)globalWhen non-empty, this option determines the content of thetabpanel.The option consists of printf style '%' items interspersed withnormal text, similar to the'statusline' or'tabline'.Whenchanging something thatis used in'tabpanel' that does nottriggerit to be updated, use:redrawtabpanel.This option cannot be set inamodeline when'modelineexpr'is off.You can useg:actual_curtabpage withina function assigned totabpanel.g:actual_curtabpage represents current tab's label number.The option value can contain line breaks:set tabpanel=%!TabPanel()function! TabPanel() abort  return printf("(%2d)\n  %%f", g:actual_curtabpage)endfunctionThe result is:+-----------+---------------------------------|(1)        ||  ~/aaa.txt||(2)        ||  ~/.vimrc ||           ||           ||           |'tabpanelopt''tplo''tabpanelopt''tplo'string(default "")globalOptional settings for thetabpanel,  It can consist of the followingitems.  Itemsmust be separated bya comma.align:{text}Specifies the position of the tabpanel.Currently supported positions are:leftleft-siderightright-side(default "left")columns:{n}Number of columns of the tabpanel.If this valueis0 orless than'columns', thetab panel will not be displayed.(default 20)vertUsea vertical separator for tabpanel.The vertical separator characteris taken from"tpl_vert" in'fillchars'.(default off)Examples::set tabpanelopt=columns:16,align:right:set tabpanelopt=:set tabpanelopt=vert,align:right:set tabpanelopt=columns:16'tabstop''ts''tabstop''ts'number(default 8)local to bufferDefines the column multiple used to display the HorizontalTabcharacter (ASCII 9);a HorizontalTab always advances to the nexttabstop.The valuemust beat least 1 andat most 9999.If Vim was compiled with+vartabs and'vartabstop'is set, thisoptionis ignored.Leaveitat 8 unless you havea strong reason (seeusr30.5).'tagbsearch''tbs''notagbsearch''notbs''tagbsearch''tbs'boolean(default on)globalWhen searching foratag (e.g., for the:ta command), Vim can eitherusea binary search ora linear search inatags file.  Binarysearching makes searching forataga LOT faster, buta linear searchwill find moretags if thetags file wasn't properly sorted.Vim normally assumes that yourtags files are sorted, or indicate thatthey are not sorted.  Only when thisis not thecase does the'tagbsearch' option need to be switched off.When'tagbsearch'is on, binary searchingis first used in thetagsfiles.  In certain situations, Vim willdoa linear search instead forcertain files, or retry all files witha linear search.  When'tagbsearch'is off, onlya linear searchis done.Linear searchingis done anyway, for one file, when Vim findsa lineat the start of the file indicating that it's not sorted:   !_TAG_FILE_SORTED0/some comment/[Thewhitespace before and after the '0'must bea single<Tab>]Whena binary search was done and no match was found in any of thefiles listed in'tags', andcaseis ignored orapatternis usedinstead ofa normaltag name,a retryis done witha linear search.Tags in unsortedtags files, and matches with differentcase will onlybe found in the retry.Ifatag file indicates thatitis case-fold sorted, the second,linear search can be avoided whencaseis ignored.  Usea value of '2'in the "!_TAG_FILE_SORTED" line for this.Atag file can be case-foldsorted with the-f switch to "sort" in most unices,as in the command:"sort-f-otagstags".  For Universalctags and Exuberantctagsversion 5.x or higher (at least 5.5) the --sort=foldcase switch can beused for thisas well.Note thatcasemust be folded touppercase forthis to work.By default,tag searches are case-sensitive.  Caseis ignored when'ignorecase'is set and'tagcase'is "followic", or when'tagcase'is"ignore".Also when'tagcase'is "followscs" and'smartcase'is set, or'tagcase'is "smart", and thepattern contains onlylowercasecharacters.When'tagbsearch'is off,tags searchingis slower whena full matchexists, but faster when no full match exists.  Tags in unsortedtagsfiles may only be found with'tagbsearch' off.When thetags fileis not sorted, or sorted ina wrong way (not onASCII byte value),'tagbsearch' should be off, or the line given abovemust be included in thetags file.This option doesn't affect commands that find all matchingtags (e.g.,command-line completion and ":help").'tagcase''tc''tagcase''tc'string(default "followic")global or local to bufferglobal-localThis optionspecifies howcaseis handled when searching thetagsfile:   followicFollow the'ignorecase' option   followscs    Follow the'smartcase' and'ignorecase'options   ignoreIgnorecase   matchMatchcase   smartIgnorecase unless an uppercaseletteris usedNOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'tagfunc''tfu''tagfunc''tfu'string(default: empty)local to buffer{not available when compiled without the+evalfeature}This optionspecifiesa function to be used to performtag searches(includingtaglist()).The function gets thetagpattern and should returnaList of matchingtags.  Seetag-function for an explanation of how to write thefunction and an example.  The value can be the name ofa function,alambda oraFuncref. Seeoption-value-function for moreinformation.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'taglength''tl''taglength''tl'number(default 0)globalIf non-zero,tags are significant up to this number of characters.'tagrelative''tr''notagrelative''notr''tagrelative''tr'boolean(Vim default: on,Vi default: off)globalIf on and usingatags file in another directory, file names in thattags file are relative to the directory where thetags file is.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'tags''tag'E433'tags''tag'string(default "./tags,tags", when compiled with+emacs_tags: "./tags,./TAGS,tags,TAGS")global or local to bufferglobal-localFilenames for thetag command, separated by spaces or commas.  Toincludeaspace or comma ina file name, precedeit with backslashes(seeoption-backslash about including spaces/commas and backslashes).Whena file name starts with "./", the '.'is replaced with the pathof the current file.  But only when the 'd' flagis not included in'cpoptions'.  Environmentvariables are expanded:set_env.  Also seetags-option."*", "**" and otherwildcards can be used to search fortags files ina directory tree.  Seefile-searching.  E.g., "/lib/**/tags" willfind all files named "tags" below "/lib".  The filename itself cannotcontain wildcards,itis used as-is.  E.g., "/lib/**/tags?" will findfiles called "tags?".Thetagfiles() function can be used to getalist of the file namesactually used.If Vim was compiled with the+emacs_tags feature, Emacs-styletagfiles are also supported.  They are automatically recognized.  Thedefault value becomes "./tags,./TAGS,tags,TAGS", unlesscasedifferences are ignored (MS-Windows).emacs-tagsThe use of:set+= and:set-=is preferred when adding or removingfile names from the list.  This avoids problems whena future versionuses another default.'tagstack''tgst''notagstack''notgst''tagstack''tgst'boolean(default on)globalWhen on, thetagstackis used normally.  When off,a ":tag" or":tselect" command with an argument will not push thetag onto thetagstack.A following ":tag" without an argument,a ":pop" command orany other command that uses thetagstack will use the unmodifiedtagstack, but does change the pointer to the active entry.Resetting this optionis useful when usinga ":tag" command inamapping which should not change the tagstack.'tcldll''tcldll'string(default depends on the build)global{only available when compiled with the+tcl/dynfeature}Specifies the name of theTcl shared library. The defaultisDYNAMIC_TCL_DLL, which was specifiedat compile time.Environmentvariables are expanded:set_env.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'term'E529E530E531'term'string(defaultis $TERM, if that fails:      in the GUI: "builtin_gui"on Amiga: "amiga"on Haiku: "xterm"  on Mac: "mac-ansi" on Unix: "ansi"  on VMS: "ansi"       on Win 32: "win32")globalName of the terminal.  Used for choosing theterminalcontrolcharacters.  Environmentvariables are expanded:set_env.For example::set term=$TERMSeetermcap.'termbidi''tbidi''notermbidi''notbidi''termbidi''tbidi'boolean (default off, on for "mlterm")global{only available when compiled with the+arabicfeature}Theterminalis in charge of Bi-directionality of text (as specifiedby Unicode).  Theterminalis also expected todo the required shapingthat some languages (suchas Arabic) require.Setting this option implies that'rightleft' will not be set when'arabic'is set and the value of'arabicshape' will be ignored.Note that setting'termbidi' has the immediate effect that'arabicshape'is ignored, but'rightleft' isn't changed automatically.This optionis reset when theGUIis started.For further details seearabic.txt.'termencoding''tenc''termencoding''tenc'string(default ""; withGTK+ GUI: "utf-8")globalEncoding used for the terminal.  Thisspecifies what characterencoding the keyboard produces and the display will understand.  FortheGUIit only applies to the keyboard ('encoding'is used for thedisplay).E617E950Note: This does not apply to theGTK+ GUI.  After theGUI has beensuccessfully initialized,'termencoding'is forcibly set to "utf-8".Any attempts to seta different value will be rejected, and an errormessageis shown.For theWin32GUI and console versions'termencoding'is not used,because theWin32 system always passesUnicode characters.When empty, the same encodingis usedas for the'encoding' option.Thisis the normal value.Not all combinations for'termencoding' and'encoding' are valid.  Seeencoding-table.The value for this optionmust be supported by internal conversions oriconv().  When thisis not possible no conversion will be done and youwill probably experience problems with non-ASCII characters.Example: You are working with thelocale set to euc-jp (Japanese) andwant to editaUTF-8 file::let &termencoding = &encoding:set encoding=utf-8You need todo this when your system has nolocale support for UTF-8.'termguicolors''tgc''notermguicolors''notgc'E954'termguicolors''tgc'boolean (default off unless Vim detects thatit runsina capable terminal)global{not available when compiled without the+termguicolors feature}When on, useshighlight-guifg andhighlight-guibg attributes intheterminal (thus using 24-bit color).Requiresa ISO-8613-3 compatible terminal.  If setting this optiondoes not work (producesa colorless UI) readingxterm-true-colormight help.ForWin32 console, Windows 10 version 1703 (Creators Update) or lateris required. Use this check to find out:if has('vcon')This requires Vim to be built with the+vtp feature.Note that the "cterm" attributes are still used, not the "gui" ones.When using Vim with Windows Terminal, the background of WindowsTerminalis normally filled with the Vim background color.  Setting'termguicolors' and the guibg of theNormal highlight group to NONEwill make the background transparent::hi Normal guibg=NONENOTE: This optionis reset when'compatible'is set.'termwinkey''twk''termwinkey''twk'string(default "")local towindowThe key that startsaCTRL-W command inaterminal window.  Other keysare sent to thejob running in the window.The key can be specifiedasa single character,akey-notation (e.g.<Up>,<C-F>) oraletter preceded witha caret (e.g.^FisCTRL-F)::set twk=X:set twk=^I:set twk=<C-L>Thestringmust be one key stroke but can be multiple bytes.When not setCTRL-Wis used, so thatCTRL-W: gets you to the commandline.  If'termwinkey'is set toCTRL-L thenCTRL-L: gets you to thecommand line.'termwinscroll''twsl''termwinscroll''twsl'number(default 10000)local to buffer{not available when compiled without the+terminal feature}Number of scrollback lines to keep.  When going over this limit thefirst 10% of the scrollback lines are deleted.  Thisis just to reducethe memory usage.  SeeTerminal-Normal.Also usedasa limit for text sent to theterminal in one write,multiplied by the number of columns times 3 (average number of bytesper cell).'termwinsize''tws''termwinsize''tws'string(default "")local towindowSize used when opening theterminal window.  Format:{rows}x{columns} or{rows}*{columns}.- When empty theterminal gets the size from the window.- When set witha "x" (e.g., "24x80") theterminal sizeis not  adjusted to thewindow size.  If thewindowis smaller only the  top-left partis displayed.- When set witha "*" (e.g., "10*50") theterminal size follows thewindow size, but will not be smaller than the specified rows and/or  columns.- When rowsis zero then use the height of the window.- When columnsis zero then use the width of the window.- Using "0x0" or "0*0"is the sameas empty.- Can be overruled in theterm_start()options with "term_rows" and  "term_cols".Examples:  "30x0" uses 30 rows and the currentwindow width.  "20*0" usesat least 20 rows and the currentwindow width.  "0*40" uses the currentwindow height andat least 40 columns.Note that the command running in theterminalwindow may still changethe size of the terminal.  In thatcase the Vimwindow will beadjusted to that size, if possible.'termwintype''twt''termwintype''twt'string  (default "")global{only available when compiled with theterminalfeature on MS-Windows}Specify the virtual console (pty) used when opening theterminalwindow.Possible values are:    ""useConPTY ifitis stable, winpty otherwise    "winpty"use winpty, fail if not supported    "conpty"useConPTY, fail if not supportedConPTY support depends on the platform.  Windows 10 October 2018Updateis the first version that supports ConPTY, howeveritis stillconsidered unstable.ConPTY might become stable in the next releaseof Windows 10.  winpty support needs to be installed.  If neitherissupported then you cannot openaterminal window.'terse''noterse''terse'boolean(default off)globalWhen set: Add 's' flag to'shortmess' option (this makes the messagefora search that hits the start orend of the file not beingdisplayed).  When reset: Remove 's' flag from'shortmess' option.  {Vishortensa lot of messages}'textauto''ta''notextauto''nota''textauto''ta'boolean(Vim default: on,Vi default: off)globalThis optionis obsolete.  Use'fileformats'.For backwards compatibility, when'textauto'is set,'fileformats'isset to the default value for the current system.  When'textauto'isreset,'fileformats'is made empty.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'textmode''tx''notextmode''notx''textmode''tx'boolean(Win32: default on, others: default off)local to bufferThis optionis obsolete.  Use'fileformat'.For backwards compatibility, when'textmode'is set,'fileformat'isset to "dos".  When'textmode'is reset,'fileformat'is set to"unix".'textwidth''tw''textwidth''tw'number(default 0)local to bufferMaximum width of text thatis being inserted.A longer line will bebroken after whitespace to get this width.A zero value disablesthis.'textwidth'is set to0 when the'paste' optionis set and restoredwhen'paste'is reset.When'textwidth'is zero,'wrapmargin' may be used.  See also'formatoptions' andins-textwidth.When'formatexpr'is setit will be used to break the line.NOTE: This optionis set to0 when'compatible'is set.'thesaurus''tsr''thesaurus''tsr'string(default "")global or local to bufferglobal-localList of file names, separated by commas, that are used to lookup wordsfor thesaurus completion commandsi_CTRL-X_CTRL-T.  Seecompl-thesaurus.This optionis not used if'thesaurusfunc'is set, either for thebuffer or globally.To includea comma ina file name precedeit witha backslash.  Spacesaftera comma are ignored, otherwise spaces are included in the filename.  Seeoption-backslash about using backslashes.  The use of:set+= and:set-=is preferred when adding or removing directoriesfrom the list.  This avoids problems whena future version usesanother default.  Backticks cannot be used in this option for securityreasons.'thesaurusfunc''tsrfu''thesaurusfunc''tsrfu'string(default: empty)global or local to bufferglobal-local{not available when compiled without the+evalfeature}This optionspecifiesa function to be used for thesaurus completionwithCTRL-XCTRL-T.i_CTRL-X_CTRL-T Seecompl-thesaurusfunc.The value can be the name ofa function,alambda oraFuncref.Seeoption-value-function for more information.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'tildeop''top''notildeop''notop''tildeop''top'boolean(default off)globalWhen on: The tilde command "~" behaves like an operator.NOTE: This optionis reset when'compatible'is set.'timeout''to''notimeout''noto''timeout''to'boolean (default on)global'ttimeout''nottimeout''ttimeout'boolean (default off, set indefaults.vim)globalThese twooptions together determine the behavior when part ofamapped key sequence or keyboard code has been received:'timeout'    'ttimeout'action   offoffdo not time out   onon or offtime out on :mappings and key codes   offontime out on key codesIf bothoptions are off, Vim will wait until either the completemapping or key sequence has been received, oritis clear that thereis nomapping or key sequence for the received characters.  Forexample: if you have mapped "vl" and Vim has received 'v', the nextcharacteris needed to see if the 'v'is followed by an 'l'.When one of theoptionsis on, Vim will wait for about 1 second forthe next character to arrive.  After that the already receivedcharacters are interpretedas single characters.  The waiting time canbe changed with the'timeoutlen' option.On slow terminals or very busy systems timing out may causemalfunctioning cursor keys.  If bothoptions are off, Vim waitsforever after an entered<Esc> if there are key codes that startwith<Esc>.  You will have to type<Esc> twice.  If youdo not haveproblems with key codes, but would like to have :mapped keysequences not timing out in 1 second, set the'ttimeout' option andreset the'timeout' option.NOTE:'ttimeout'is reset when'compatible'is set.'timeoutlen''tm''timeoutlen''tm'number(default 1000)global'ttimeoutlen''ttm''ttimeoutlen''ttm'number(default -1, set to 100 indefaults.vim)globalThe time in milliseconds thatis waited fora key code or mapped keysequence to complete.  Also used forCTRL-\CTRL-N andCTRL-\CTRL-Gwhen part ofa command has been typed.Normally only'timeoutlen'is used and'ttimeoutlen'is -1.  Whenadifferent timeout value for key codesis desired set'ttimeoutlen' toa non-negative number.ttimeoutlenmapping delay   key code delay<0'timeoutlen''timeoutlen'  >=0'timeoutlen''ttimeoutlen'The timeout only happens when the'timeout' and'ttimeout'optionstell so.A useful setting would be:set timeout timeoutlen=3000 ttimeoutlen=100(time out onmapping after three seconds, time out on key codes aftera tenth ofa second).'title''notitle''title'boolean(default off, on when title can be restored)globalWhen on, the title of thewindow will be set to the value of'titlestring' (ifitis not empty), or to:filename [+=-] (path)- VIMWhere:filenamethe name of the file being edited-indicates the file cannot be modified,'ma' off+indicates the file was modified=indicates the fileis read-only=+indicates the fileis read-only and modified(path)is the path of the file being edited- VIMthe server namev:servername or "VIM"Only works if theterminal supports settingwindow titles(currentlyAmiga console,Win32 console, allGUI versions andterminals witha non-empty't_ts' option- these areUnix xterm andiris-ansi by default, where't_ts'is taken from the builtin termcap).X11When Vim was compiled with HAVE_X11 defined, the original title willbe restored if possible.  The output of ":version" will include "+X11"when HAVE_X11 was defined, otherwiseit will be "-X11".  This alsoworks for the icon name'icon'.But: When Vim was started with the-X argument, restoring the titlewill not work (except in the GUI).If the title cannot be restored,itis set to the value of'titleold'.You might want to restore the title outside of Vim then.When using an xterm froma remote machine you can use this command:    rsh machine_name xterm -display $DISPLAY &    ssh -X machine_name xterm &then the WINDOWID environment variable should be inherited and thetitle of thewindow should change back to whatit should be afterexiting Vim.'titlelen''titlelen'number(default 85)globalGives the percentage of'columns' to use for the length of thewindowtitle.  When the titleis longer, only theend of the path nameisshown.A '<' character before the path nameis used to indicate this.Usinga percentage makes this adapt to the width of the window.  Butit won't work perfectly, because the actual number of charactersavailable also depends on the font used and other things in the titlebar.  When'titlelen'is zero the full pathis used.  Otherwise,values from 1 to 30000 percent can be used.'titlelen'is also used for the'titlestring' option.'titleold''titleold'string(default "Thanks for flying Vim")globalThis option will be used for thewindow title whenexiting Vim if theoriginal title cannot be restored.  Only happens if'title'is on or'titlestring'is not empty.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'titlestring''titlestring'string(default "")globalWhen this optionis not empty,it will be used for the title of thewindow.  This happens only when the'title' optionis on.Only works if theterminal supports settingwindow titles (currentlyAmiga console,Win32 console, allGUI versions and terminals withanon-empty't_ts' option).When Vim was compiled with HAVE_X11 defined, the original title willbe restored if possible, seeX11.When this option contains printf-style '%' items, they will beexpanded according to the rules used for'statusline'.  Ifit containsan invalid '%' format, the valueis used as-is and no error or warningwill be given when the valueis set.This option cannot be set inamodeline when'modelineexpr'is off.Example:    :auto BufEnter * let &titlestring = hostname() .. "/" .. expand("%:p")    :set title titlestring=%<%F%=%l/%L-%P titlelen=70The value of'titlelen'is used to align items in the middle or rightof the available space.Some people prefer to have the file name first:    :set titlestring=%t%(\ %M%)%(\ (%{expand(\"%:~:.:h\")})%)%(\ %a%)Note the use of "%{}" and anexpression to get the path of the file,without the file name.  The "%( %)" constructs are used to addaseparatingspace only when needed.NOTE: Use of special characters in'titlestring' may cause the displayto be garbled (e.g., whenit containsa CR or NL character).{not available when compiled without the |+statusline| feature}'toolbar''tb''toolbar''tb'string(default "icons,tooltips")global{only for |+GUI_GTK|, |+GUI_Motif| and |+GUI_Photon|}The contents of this option controlsvarious toolbar settings.  Thepossible values are:iconsToolbar buttons are shown with icons.textToolbar buttons shown with text.horizIcon and text ofa toolbar button arehorizontally arranged.{only in GTK+ 2 GUI}tooltipsTooltips are active for toolbar buttons.Tooltips refer to thepopuphelp text which appears after the mousecursoris placed overa toolbar button fora brief moment.If you want the toolbar to be shown with iconsas wellas text,do thefollowing::set tb=icons,textMotif cannot display icons and textat the same time.  Theywill show icons if both are requested.If none of the strings specified in'toolbar' are valid or if'toolbar'is empty, this optionis ignored.  If you want to disablethe toolbar, you need to set the'guioptions' option.  For example::set guioptions-=TAlso seegui-toolbar.'toolbariconsize''tbis''toolbariconsize''tbis'string(default "small")global{only in the GTK+ GUI}Controls the size of toolbar icons.  The possible values are:tinyUse tiny icons.smallUse small icons (default).mediumUse medium-sized icons.largeUse large icons.hugeUse even larger icons.giantUse very big icons.The exact dimensions in pixels of thevarious icon sizes depend onthe current theme.  Common dimensions are giant=48x48, huge=32x32,large=24x24, medium=24x24, small=20x20 and tiny=16x16.If'toolbariconsize'is empty, the global default sizeas determinedby user preferences or the current themeis used.'ttybuiltin''tbi''nottybuiltin''notbi''ttybuiltin''tbi'boolean(default on)globalWhen on, the builtin termcaps are searched before the external ones.When off the builtin termcaps are searched after the external ones.When this optionis changed, you should set the'term' option next forthe change to take effect, for example::set notbi term=$TERMSee alsotermcap.Rationale: The default for this optionis "on", because the builtintermcap entries are generally better (many systems contain faultyxterm entries...).'ttyfast''tf''nottyfast''notf''ttyfast''tf'boolean(default on)globalIndicatesa fastterminal connection.  More characters will be sent tothe screen for redrawing, instead of using insert/delete linecommands.  Improves smoothness of redrawing when there are multiplewindows and theterminal does not supportascrolling region.Also enables the extrawriting of charactersat theend of each screenline for lines that wrap.  This helps when using copy/paste with themouse in an xterm and other terminals.The default used to be set only for someterminal names, but thesedays nearly all terminals are fast, therefore the defaultis now "on".If you havea slow connection you may want to set this option off,e.g. depending on the host name:if hostname() =~ 'faraway'   set nottyfastendif'ttymouse''ttym''ttymouse''ttym'string(default depends on'term')global{only inUnix and VMS, doesn't work in the GUI; notavailable when compiled without+mouse}Name of theterminal type for which mouse codes are to be recognized.Currently these strings are valid:xterm-mouse   xtermxterm-like mouse handling.  The mouse generates"<Esc>[Mscr", where "scr"is three bytes:"s"= button state"c"= column plus 33"r"= row plus 33This only works up to 223 columns!  See "dec","urxvt", and "sgr" for solutions.   xterm2Works like "xterm", but with the xterm reporting themouse position while the mouseis dragged.  This worksmuch faster and more precise.  Your xtermmustatleastat patchlevel 88/ XFree 3.3.3 for this towork.  See below for how Vim detects thisautomatically.netterm-mouse   nettermNetTerm mouse handling.A left mouse click generates"<Esc>}r,c<CR>", where "r,c" are two decimal numbersfor the row and column.  No other mouse events aresupported.dec-mouse   decDECterminal mouse handling.  The mouse generatesarather complex sequence,starting with "<Esc>[".Thisis also available for an Xterm, ifit wasconfigured with "--enable-dec-locator".jsbterm-mouse   jsbtermJSB term mouse handling.pterm-mouse   ptermQNX pterm mouse handling.urxvt-mouse   urxvtMouse handling for the urxvt (rxvt-unicode) terminal.The mouse works only if theterminal supports thisencoding style, butit does not have 223 columns limitunlike "xterm" or "xterm2".sgr-mouse   sgrMouse handling for theterminal that emits SGR-styledmouse reporting.  The mouse works even in columnsbeyond 223.  This optionis backward compatible with"xterm2" becauseit can also decode "xterm2" stylemouse codes.The mouse handlingmust be enabledat compile time+mouse_xterm+mouse_dec+mouse_netterm+mouse_jsbterm+mouse_urxvt+mouse_sgr.Only "xterm"(2)is really recognized.  NetTerm mouse codes are alwaysrecognized, if enabledat compile time.  DECterminal mouse codesare recognized if enabledat compile time, and'ttymouse'is not"xterm", "xterm2", "urxvt" or "sgr" (because dec mouse codes conflictwith them).This optionis automatically set to "xterm", when the'term' optionisset toa name that starts with "xterm", "mlterm", "screen", "tmux","st" (full match only), "st-" or "stterm", and'ttymouse'is not setalready.If the terminfo/termcap entry "XM" exists and the first numberis"1006" then'ttymouse' will be set to "sgr".  This works for manymodern terminals.Additionally, if vimis compiled with the+termresponse feature andt_RVis set to theescape sequence to request the xterm versionnumber, more intelligent detectionis done.The "xterm2" value will be set if the xterm versionis reported to befrom 95 to 276.  The "sgr" value will be set if Vim detectsMacTerminal.app, iTerm2 or mintty, and when the xterm versionis 277 orhigher.If youdo not want'ttymouse' to be set to "xterm2" or "sgr"automatically, sett_RV to an empty string::set t_RV='ttyscroll''tsl''ttyscroll''tsl'number(default 999)globalMaximum number of lines to scroll the screen.  If there are more linesto scroll thewindowis redrawn.  For terminals wherescrollingisvery slow and redrawingis not slow this can be set toa small number,e.g., 3, to speed up displaying.'ttytype''tty''ttytype''tty'string(default from $TERM)globalAlias for'term', see above.'undodir''udir''undodir''udir'string(default ".")global{only when compiled with the |+persistent_undo| feature}List of directory names forundo files, separated with commas.See'backupdir' for details of the format."." means using the directory of the file.  Theundo file name for"file.txt"is ".file.txt.un~".For other directories the file nameis the full path of the editedfile, with path separators replaced with "%".When writing: The first directory that existsis used. "." alwaysworks, no directories after "." will be used for writing.When reading all entries are tried to find anundo file.  The firstundo file that existsis used.  Whenit cannot be read an errorisgiven, no further entryis used.Seeundo-persistence.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'undofile''noundofile''udf''noudf''undofile''udf'boolean(default off)local to buffer{only when compiled with the |+persistent_undo| feature}When on, Vim automatically savesundohistory to anundo file whenwritinga buffer toa file, and restoresundohistory from the samefile on buffer read.The directory where theundo fileis storedis specified by'undodir'.For more information about this feature seeundo-persistence.Theundo fileis not read when'undoreload' causes the buffer frombeforeareload to be saved for undo.When'undofile'is turned off theundo fileis NOT deleted.NOTE: This optionis reset when'compatible'is set.'undolevels''ul''undolevels''ul'number(default 100, 1000 for Unix,VMS and Win32)global or local to bufferglobal-localMaximum number of changes that can be undone.  Sinceundo informationis kept in memory, higher numbers will cause more memory to be used.Nevertheless,a single change can already usea large amount of memory.Set to0 forVi compatibility: One level ofundo and "u" undoesitself:set ul=0But you can also getVi compatibility by including the 'u' flag in'cpoptions', and still be able to useCTRL-R to repeat undo.Also seeundo-two-ways.Set to -1 for noundoat all.  You might want todo this only for thecurrent buffer:setlocal ul=-1This helps when you run out of memory fora single change.The local valueis set to -123456 when the global valueis to be used.Also seeclear-undo.'undoreload''ur''undoreload''ur'number(default 10000)globalSave the whole buffer forundo when reloading it.  This applies to the":e!" command and reloading for when the buffer changed outside ofVim.FileChangedShellThe save only happens when this optionis negative or when the numberof linesis smaller than the value of this option.Set this option to zero to disableundo fora reload.When savingundo fora reload, anyundo fileis not read.Note that this causes the whole buffer to be stored in memory.  Setthis option toa lower value if you run out of memory.'updatecount''uc''updatecount''uc'number(default: 200)globalAfter typing this many characters the swap file will be written todisk.  When zero, no swap file will be createdat all (see chapter onrecoverycrash-recovery).'updatecount'is set to zero bystartingVim with the "-n" option, seestartup.  When editing in readonlymode this option will be initialized to 10000.The swapfile can be disabled per buffer with'swapfile'.When'updatecount'is set from zero to non-zero, swap files arecreated for allbuffers that have'swapfile' set.  When'updatecount'is set to zero, existing swap files are not deleted.Also see'swapsync'.This option has no meaning inbuffers where'buftype'is "nofile"or "nowrite".'updatetime''ut''updatetime''ut'number(default 4000)globalIf this many milliseconds nothingis typed the swap file will bewritten to disk (seecrash-recovery).  Also used for theCursorHoldautocommand event.'varsofttabstop''vsts''varsofttabstop''vsts'string(default "")local to buffer{only available when compiled with the+vartabsfeature}Defines variable-width softtab stops.  The valueisa comma-separatedlist of widths in columns.  Each width defines the number of columnsbefore the next softtab stop.  The last value repeats indefinitely.For example, when editing assembly language files where statementsstart in the 9th column and comments in the 41st,it may be usefulto use the following::set varsofttabstop=8,32,8This sets softtab stopsat column 8, thenat column 40 (8+ 32), andevery 8 columns thereafter.Note: this setting overrides'softtabstop'.Seesection30.5 of the user manual for detailed explanations on howVim works with tabs and spaces.'vartabstop''vts''vartabstop''vts'string(default "")local to buffer{only available when compiled with the+vartabsfeature}Defines variable-widthtab stops. The valueisa comma-separatedlistof widths in columns.  Each width defines the number of columnsbefore the nexttab stop; the last value repeats indefinitely.For example::set vartabstop=4,8This places the firsttab stop 4 columns from the start of the lineand each subsequenttab stop 8 columns apart.Note: this setting overrides'tabstop'.On UNIX,itis recommended to keep the default tabstop value of 8.Consider setting'varsofttabstop' instead.Seesection30.5 of the user manual for detailed explanations on howVim works with tabs and spaces.'verbose''vbs''verbose''vbs'number(default 0)globalWhen bigger than zero, Vim will givemessages about whatitis doing.Currently, thesemessages are given:>= 1When theviminfo fileis read or written.>= 2Whena fileis ":source"'ed.>= 4Shell commands.>= 5Every searchedtags file and include file.>= 8Files for whicha group ofautocommandsis executed.>= 9Every executed autocommand.>= 11Finding items ina path>= 12Every executed function.>= 13When an exceptionis thrown, caught, finished, or discarded.>= 14Anything pending ina ":finally" clause.>= 15Every executedEx command fromascript (truncatedat 200characters).>= 16Every executedEx command.This option can also be set with the "-V" argument.  See-V.This optionis also set by the:verbose command.When the'verbosefile' optionis set then theverbosemessages are notdisplayed.'verbosefile''vfile''verbosefile''vfile'string(default empty)globalWhen not empty allmessages are written ina file with this name.When the file existsmessages are appended.Writing to the file ends when Vim exits or when'verbosefile'is madeempty.  Writes are buffered, thus may not show up for some time.Setting'verbosefile' toa new valueis like makingit empty first.The difference with:rediris thatverbosemessages are notdisplayed when'verbosefile'is set.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'viewdir''vdir''viewdir''vdir'string(default for Amiga: "home:vimfiles/view", for Win32: "$HOME/vimfiles/view", for Unix: "$HOME/.vim/view" or           "$XDG_CONFIG_HOME/vim/view" for VMS: "sys$login:vimfiles/view")global{not available when compiled without the+mksessionfeature}Name of the directory where to store files for:mkview.For$XDG_CONFIG_HOME seexdg-base-dir.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'viewoptions''vop''viewoptions''vop'string(default: "folds,options,cursor,curdir")global{not available when compiled without the+mksessionfeature}Changes the effect of the:mkview command.  Itisa comma-separatedlist of words.  Eachword enables saving and restoring something:   wordsave and restore   cursorcursor position in file and inwindowfoldsmanually created folds, opened/closedfolds and localfoldoptionsoptionsoptions and mappings local toawindow or buffer (notglobal values for local options)   localoptions sameas "options"   slashbackslashes in file names replaced with forwardslashesunixwithUnix end-of-line format (single<NL>), even whenonMS-Windows   curdirthe window-local directory, if set with:lcd"slash" and "unix" are useful onMS-Windows when sharingview fileswith Unix.  TheUnix version of Vim cannot sourcedos format scripts,but theMS-Windows version of Vim can sourceunix format scripts.'viminfo''vi'E526E527E528'viminfo''vi'string(Vi default: "", Vim default for   MS-Windows: '100,<50,s10,h,rA:,rB:,   for Amiga: '100,<50,s10,h,rdf0:,rdf1:,rdf2:   for others: '100,<50,s10,h)global{not available when compiled without the+viminfofeature}When non-empty, theviminfo fileis read uponstartup and writtenwhenexiting Vim (seeviminfo-file). Except when'viminfofile'is"NONE".Thestring should bea comma-separatedlist of parameters, eachconsisting ofa single character identifying the particular parameter,followed bya number orstring whichspecifies the value of thatparameter.  Ifa particular characteris left out, then the defaultvalueis used for that parameter.  The followingisalist of theidentifying characters and the effect of their value.CHARVALUEviminfo-!!When included, save and restore globalvariables that startwith anuppercase letter, and don't containalowercaseletter.  Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"and "_K_L_M" are not.  NestedList andDict items may not beread back correctly, youend up with an empty item.viminfo-quote"Maximum number of lines saved for each register.  Old name ofthe '<' item, with the disadvantage that you need toputabackslash before the ", otherwiseit will be recognizedas thestart ofa comment!viminfo-%%When included, save and restore the buffer list.  If Vimisstarted witha file name argument, the bufferlistis notrestored.  If Vimis started withouta file name argument, thebufferlistis restored from theviminfo file.Quickfix('buftype'), unlisted ('buflisted'), unnamed andbuffers onremovable media(viminfo-r) are not saved.When followed bya number, the numberspecifies the maximumnumber ofbuffers that are stored.  Withouta number allbuffers are stored.viminfo-''Maximum number of previously edited files for which the marksare remembered.  This parametermust always be included when'viminfo'is non-empty.Including this item also means that thejumplist and thechangelist are stored in theviminfo file.viminfo-//Maximum number of items in the searchpatternhistory to besaved.  If non-zero, then the previous search and substitutepatterns are also saved.  When not included, the value of'history'is used.viminfo-::Maximum number of items in the command-linehistory to besaved.  When not included, the value of'history'is used.viminfo-<<Maximum number of lines saved for each register.  If zero thenregisters are not saved.  When not included, all lines aresaved.'"'is the old name for this item.Also see the 's' item below: limit specified in Kbyte.viminfo-@@Maximum number of items in the input-linehistory to besaved.  When not included, the value of'history'is used.viminfo-ccWhen included, convert the text in theviminfo file from the'encoding' used whenwriting the file to the current'encoding'.  Seeviminfo-encoding.viminfo-ffWhether file marks need to be stored.  If zero, file marks ('0to '9,'A to 'Z) are not stored.  When not present or whennon-zero, they are all stored.'0is used for the currentcursor position (whenexiting or when doing ":wviminfo").viminfo-hhDisable the effect of'hlsearch' when loading theviminfofile.  When not included,it depends on whether ":nohlsearch"has been used since the last search command.viminfo-nnName of theviminfo file.  The namemust immediately followthe 'n'.  Must beat theend of the option!  If the'viminfofile' optionis set, that file name overrides the onegiven here with'viminfo'.  Environmentvariables areexpanded when opening the file, not when setting the option.viminfo-rrRemovable media.  The argumentisastring (up to the next',').  This parameter can be given several times.  Eachspecifies the start ofa path for which no marks will bestored.  Thisis to avoid removable media.  ForMS-Windows youcould use "ra:,rb:", forAmiga "rdf0:,rdf1:,rdf2:".  You canalso useit for temp files, e.g., for Unix: "r/tmp".  Caseisignored.  Maximum length of each 'r' argumentis 50characters.viminfo-ssMaximum size of an item in Kbyte.  If zero thenregisters arenot saved.  Currently only applies to registers.  The default"s10" will excluderegisters with more than 10 Kbyte of text.Also see the '<' item above: linecount limit.Example:    :set viminfo='50,<1000,s100,:0,n~/vim/viminfo'50Marks will be remembered for the last 50 files youedited.<1000Contents ofregisters (up to 1000 lines each) will beremembered.s100Registers with more than 100 Kbyte text are skipped.:0Command-linehistory will not be saved.n~/vim/viminfoThe name of the file to useis "~/vim/viminfo".no/Since '/'is not specified, the default will be used,that is, save all of the search history, and also theprevious search and substitute patterns.no%The bufferlist will not be saved nor read back.noh'hlsearch' highlighting will be restored.When setting'viminfo' from an empty value you can use:rviminfo toload the contents of the file, thisis not done automatically.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.NOTE: This optionis set to the Vim default value when'compatible'is reset.'viminfofile''vif''viminfofile''vif'string(default: "")global{not available when compiled without the+viminfofeature}When non-empty, overrides the file name used for viminfo.When equal to "NONE" noviminfo file will be read or written.This option can be set with the-i command line flag.  The--cleancommand line flag setsit to "NONE".This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'virtualedit''ve''virtualedit''ve'string(default "")global or local towindowglobal-localA comma-separatedlist of these words:    blockAllow virtual editing inVisual block mode.insertAllow virtual editing inInsert mode.    allAllow virtual editing in all modes.    onemoreAllow the cursor to move just past theend of the line    noneWhen usedas the local value,do not allow virtualediting even when the global valueis set.  When usedas the global value, "none"is the sameas "".    NONEAlternative spelling of "none".Virtual editing means that the cursor can be positioned where thereisno actual character.  This can be halfway intoatab or beyond theendof the line.  Useful for selectinga rectangle inVisual mode andeditinga table."onemore"is not the same,it will only allow moving the cursor justafter the last character of the line.  This makes some commands moreconsistent.  Previously the cursor was always past theend of the lineif the line was empty.  Butitis far fromVi compatible.  It may alsobreak some plugins or Vim scripts.  For example becausel can movethe cursor after the last character.  Use with care!Using the$ command will move to the last character in the line, notpast it.  This may actually move the cursor to the left!Theg$ command will move to theend of the screen line.It doesn't make sense to combine "all" with "onemore", but you willnot geta warning for it.When combined with other words, "none"is ignored.NOTE: This optionis set to "" when'compatible'is set.'visualbell''vb''novisualbell''novb'beep'visualbell''vb'boolean(default off)globalUsea visual bell instead of beeping.  Theterminal code to display thevisual bellis given with't_vb'.  When nobeep or flashis wanted,use::set vb t_vb=If you wanta short flash, you can use this on many terminals::set vb t_vb=[?5h$<100>[?5lHere $<100>specifies the time, you can usea smaller or bigger valueto geta shorter or longer flash.Note: Vim will limit the bell to once per halfa second.  This avoidshaving to wait for the flashing to finish when there are lots ofbells, e.g. on key repeat.  This also happens without'visualbell'set.In the GUI,'t_vb' defaults to "<Esc>|f", which inverts the displayfor 20 msec.  If you want to usea different time, use "<Esc>|40f",where 40is the time in msec.Note: When theGUI starts,'t_vb'is reset to its default value.  Youmight want to setit again in yourgvimrc.Does not work on the Amiga, you always geta screen flash.Also see'errorbells'.'warn''nowarn''warn'boolean(default on)globalGivea warning message whena shell commandis used while the bufferhas been changed.'weirdinvert''wiv''noweirdinvert''nowiv''weirdinvert''wiv'boolean(default off)globalThis option has the same effectas the't_xs'terminal option.Itis provided for backwards compatibility with version 4.x.Setting'weirdinvert' has the effect of making't_xs' non-empty, andvice versa.  Has no effect when theGUIis running.'whichwrap''ww''whichwrap''ww'string(Vim default: "b,s",Vi default: "")globalAllow specified keys that move the cursor left/right to move to theprevious/next line when the cursoris on the first/last character inthe line.  Concatenate characters to allow this for these keys:char   key  modeb<BS>Normal andVisuals<Space>Normal andVisualh    "h"Normal andVisual (not recommended)l    "l"Normal andVisual (not recommended)<<Left>Normal andVisual><Right>Normal andVisual~    "~"Normal[<Left>Insert andReplace]<Right>Insert andReplaceFor example::set ww=<,>,[,]allows wrap only when cursor keys are used.When themovement keys are used in combination witha delete or changeoperator, the<EOL> also counts fora character.  This makes "3h"different from "3dh" when the cursor crosses theend ofa line.  Thisis alsotrue for "x" and "X", because theydo the sameas "dl" and"dh".  If you use this, you may also want to use themapping":map<BS>X" to makebackspace delete the character in front of thecursor.When 'l'is included anditis used after anoperatorat theend ofaline (not an empty line) thenit will not move to the next line.  Thismakes "dl", "cl", "yl" etc. work normally.NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'wildchar''wc''wildchar''wc'number(Vim default:<Tab>,Vi default:CTRL-E)globalCharacter you have to type to startwildcard expansion in thecommand-line,as specified with'wildmode'.More info here:cmdline-completion.The characteris not recognized when used insidea macro.  See'wildcharm' for that.Some keys will not work, suchasCTRL-C,<CR> and Enter.<Esc> can be used, but hittingit twice ina row will still exitcommand-lineasa failsafe measure.Although'wc'isa number option,it can be specifiedasa number,asingle character,akey-notation (e.g.<Up>,<C-F>) oraletterpreceded witha caret (e.g.^FisCTRL-F)::set wc=27:set wc=X:set wc=^I:set wc=<Tab>'wildchar' also enables completion in searchpattern contexts suchas/,?,:s,:g,:v, and:vim.  Toinserta literal<Tab>instead of triggering completion, type<C-V><Tab> or "\t".NOTE: This optionis set to theVi default value when'compatible'isset and to the Vim default value when'compatible'is reset.'wildcharm''wcm''wildcharm''wcm'number(default: none (0))global'wildcharm' works exactly like'wildchar', except thatitisrecognized when used insidea macro.  You can find "spare" command-linekeys suitable for this option by lookingatex-edit-index.  Normallyyou'll never actually type'wildcharm', just useit in mappings thatautomatically invoke completion mode, e.g.::set wcm=<C-Z>:cnoremap ss so $vim/sessions/*.vim<C-Z>Then after typing :ss you can useCTRL-P&CTRL-N.'wildignore''wig''wildignore''wig'string(default "")globalAlist of file patterns.A file that matches with one of thesepatternsis ignored when expandingwildcards, completing file ordirectory names, and influences the result ofexpand(),glob() andglobpath() unlessa flagis passed to disable this.Thepatternis used like with:autocmd, seeautocmd-patterns.Also see'suffixes'.Example::set wildignore=*.o,*.objThe use of:set+= and:set-=is preferred when adding or removingapattern from the list.  This avoids problems whena future versionuses another default.'wildignorecase''wic''nowildignorecase''nowic''wildignorecase''wic'boolean(default off)globalWhen setcaseis ignored when completing file names and directories.Has no effect when'fileignorecase'is set.Does not apply when the shellis used to expand wildcards, whichhappens when there are special characters.'wildmenu''wmnu''nowildmenu''nowmnu''wildmenu''wmnu'boolean(default on)globalWhen'wildmenu'is on, command-line completion operates in an enhancedmode.  On pressing'wildchar' (usually<Tab>) to invoke completion,the possible matches are shown.When'wildoptions' contains "pum", then the completion matches areshown inapopup menu.  Otherwise they are displayed just above thecommand line, with the first match highlighted (overwriting the statusline, if thereis one).Keys that show the previous/next match, suchas<Tab> orCTRL-P/CTRL-N, cause the highlight to move to the appropriate match.When'wildmode'is used, "wildmenu" modeis used where "full"isspecified.  "longest" and "list"do not start "wildmenu" mode.You can check the current mode withwildmenumode().If there are more matches than can fit in the line,a ">"is shown onthe right and/ora "<"is shown on the left.  The status line scrollsas needed.The "wildmenu" modeis abandoned whena keyis hit thatis not usedfor selectinga completion.While the "wildmenu"is active, the following keys have specialmeanings:CTRL-P-go to the previous entryCTRL-N-go to the next entry<CR>- in menu completion, when the cursoris just aftera  dot: move intoa submenu.CTRL-E-end completion,go back to what was there before  selectinga match.CTRL-Y- accept the currently selected match and stop  completion.When not using thepopup menu for command line completion, thefollowing keys have special meanings:<Left><Right>- select previous/next match (likeCTRL-P/CTRL-N)<Up>- in filename/menu name completion: move up into  parent directory or parent menu.<Down>- in filename/menu name completion: move intoa  subdirectory or submenu.When using thepopup menu for command line completion, the followingkeys have special meanings:<Up><Down>- select previous/next match (likeCTRL-P/CTRL-N)<PageUp>- selecta match several entries back<PageDown>- selecta match several entries further<Left>- in filename/menu name completion: move up into  parent directory or parent menu.<Right>- in filename/menu name completion: move intoa  subdirectory or submenu.This makes themenus accessible from the consoleconsole-menus.If you prefer the<Left> and<Right> keys to move the cursor insteadof selectinga different match, use this::cnoremap <Left> <Space><BS><Left>:cnoremap <Right> <Space><BS><Right>The "WildMenu" highlightingis used for displaying the current matchhl-WildMenu.'wildmode''wim''wildmode''wim'string(Vim default: "full")globalCompletion mode used for the character specified with'wildchar'.This optionisa comma-separatedlist of up to four parts,corresponding to the first, second, third, and fourth presses of'wildchar'.  Each partisa colon-separatedlist of completionbehaviors, which are applied simultaneously during that phase.The possible behavior values are:""Only complete (insert) the first match.  No furthermatches are cycled or listed."full"Complete the next full match.  Cycles through allmatches, returning to the original input after thelast match.  If'wildmenu'is enabled,it will beshown."longest"Complete to the longest common substring.  If thisdoesn't extend the input, the next'wildmode' partisused."list"If multiple matches are found,list all of them."lastused"When completing buffer names, sort them by mostrecently used (excluding the current buffer).  Onlyapplies to buffer name completion."noselect"If'wildmenu'is enabled, show the menu butdo notpreselect the first item.If only one match exists,itis completed fully, unless "noselect"isspecified.Some useful combinations of colon-separated values:"longest:full"Start with the longest commonstring and show'wildmenu' (if enabled).  Does not cyclethrough full matches."list:full"List all matches and complete first match."list:longest"List all matches and complete till the longestcommon prefix."list:lastused"List all matches.  When completing buffers,sort them by most recently used (excluding thecurrent buffer)."noselect:lastused"Do not preselect the first item in'wildmenu'ifitis active.  When completing buffers,sort them by most recently used (excluding thecurrent buffer).Examples::set wildmode=fullComplete full match on every press (default behavior):set wildmode=longest,fullFirst press: longest commonsubstringSecond press: cycle through full matches:set wildmode=list:fullFirst press:list all matches and complete the first one:set wildmode=list,fullFirst press:list matches onlySecond press: complete full matches:set wildmode=longest,listFirst press: longest commonsubstringSecond press:list all matches:set wildmode=noselect:fullFirst press: show'wildmenu' without completing or selectingSecond press: cycle full matches:set wildmode=noselect:lastused,fullSameas above, but buffer matches are sorted by time last usedMore info here:cmdline-completion.'wildoptions''wop''wildoptions''wop'string(default "")globalAlist of words that change howcmdline-completionis done.The following values are supported:  fuzzyUsefuzzy-matching to find completion matches. Whenthis valueis specified,wildcard expansion will notbe used for completion.  The matches will be sorted bythe "best match" rather than alphabetically sorted.This will find more matches than thewildcardexpansion. Currently fuzzy matching based completionis not supported for file and directory names andinsteadwildcard expansionis used.  pumDisplay the completion matches using thepopup menuin the same styleas theins-completion-menu.  tagfileWhen usingCTRL-D tolist matching tags, the kind oftag and the file of thetagis listed.Only one matchis displayed per line.  Often usedtag kinds are:d#defineffunctionThis option does not apply toins-completion. See'completeopt' forthat.'winaltkeys''wak''winaltkeys''wak'string(default "menu")global{only used in Win32, Motif, GTK and Photon GUI}SomeGUI versions allow the access to menu entries by using the ALTkey in combination witha character that appears underlined in themenu.  This conflicts with the use of the ALT key for mappings andentering special characters.  This option tells what to do:  noDon't use ALT keys for menus.  ALT key combinations can bemapped, but thereis no automatic handling.  This can then bedone with the:simalt command.  yesALT key handlingis done by the windowing system.  ALT keycombinations cannot be mapped.  menuUsing ALT in combination witha character thatisa menushortcut key, will be handled by the windowing system.  Otherkeys can be mapped.If the menuis disabled by excluding 'm' from'guioptions', the ALTkeyis never used for the menu.This optionis not used for<F10>; onWin32 and withGTK<F10> willselect the menu, unlessit has been mapped.'wincolor''wcr''wincolor''wcr'string (default empty)local towindowHighlight group name to use for thiswindow instead of theNormalcolorhl-Normal.'window''wi''window''wi'number  (default screen height- 1)globalWindow height used forCTRL-F andCTRL-B when thereis only onewindow and the valueis smaller than'lines' minus one.  The screenwill scroll'window' minus two lines, witha minimum of one.When'window'is equal to'lines' minus oneCTRL-F andCTRL-B scrollina much smarter way, taking care of wrapping lines.When resizing the Vim window, and the valueis smaller than 1 or morethan or equal to'lines'it will be set to'lines' minus 1.Note: Do not confuse this with the height of the Vim window, use'lines' for that.'winfixbuf''wfb''winfixbuf''wfb'boolean(default off)local towindowIf enabled, thewindow and the bufferitis displaying are paired.For example, attempting to change the buffer with:edit will fail.Other commands which changea window's buffer suchas:cnext willalso skip anywindow with'winfixbuf' enabled.  However if anExcommand hasa "!" modifier,it can force switching buffers.'winfixheight''wfh''nowinfixheight''nowfh''winfixheight''wfh'boolean(default off)local towindowlocal-noglobalKeep thewindow height whenwindows are opened or closed and'equalalways'is set.  Also forCTRL-W_=.  Set by default for thepreview-window andquickfix-window.The height may be changed anyway when running out of room.'winfixwidth''wfw''nowinfixwidth''nowfw''winfixwidth''wfw'boolean(default off)local towindowlocal-noglobalKeep thewindow width whenwindows are opened or closed and'equalalways'is set.  Also forCTRL-W_=.The width may be changed anyway when running out of room.'winheight''wh'E591'winheight''wh'number(default 1)globalMinimal number of lines for the current window.  Thisis nota hardminimum, Vim will use fewer lines if thereis not enough room.  If thefocus goes toawindow thatis smaller, its sizeis increased,at thecost of the height of other windows.Set'winheight' toa small number for normal editing.Setit to 999 to make the currentwindow fill most of the screen.Otherwindows will be only'winminheight' high.  This has the drawbackthat ":all" will create only two windows.  To avoid "vim-o 1 2 3 4"to create only two windows, set the option afterstartupis done,using theVimEnter event:au VimEnter * set winheight=999Minimum valueis 1.The heightis not adjusted after one of the commands that change theheight of the current window.'winheight' applies to the current window.  Use'winminheight' to setthe minimal height for other windows.'winminheight''wmh''winminheight''wmh'number(default 1)globalThe minimal height ofa window, when it's not the current window.Thisisa hard minimum,windows will never become smaller.When set to zero,windows may be "squashed" to zero lines (i.e. justastatus bar) if necessary.  They will return toat least one line whenthey become active (since the cursor has to have somewhere to go.)Use'winheight' to set the minimal height of the current window.This optionis only checked when makingawindow smaller.  Don't usealarge number,it will causeerrors when opening more thana fewwindows.A value of0 to 3is reasonable.'winminwidth''wmw''winminwidth''wmw'number(default 1)globalThe minimal width ofa window, when it's not the current window.Thisisa hard minimum,windows will never become smaller.When set to zero,windows may be "squashed" to zero columns (i.e. justa vertical separator) if necessary.  They will return toat least oneline when they become active (since the cursor has to have somewhereto go.)Use'winwidth' to set the minimal width of the current window.This optionis only checked when makingawindow smaller.  Don't usealarge number,it will causeerrors when opening more thana fewwindows.A value of0 to 12is reasonable.'winptydll''winptydll'string(default "winpty32.dll" or "winpty64.dll")global{only available when compiled with theterminalfeature on MS-Windows}Specifies the name of the winpty shared library, used for the:terminal command. The default depends on whether Vim was builtasa32-bit or 64-bit executable.  If not found, "winpty.dll"is triedasa fallback.Environmentvariables are expanded:set_env.This option cannot be set fromamodeline or in thesandbox, forsecurity reasons.'winwidth''wiw'E592'winwidth''wiw'number(default 20)globalMinimal number of columns for the current window.  Thisis nota hardminimum, Vim will use fewer columns if thereis not enough room.  Ifthe currentwindowis smaller, its sizeis increased,at the cost ofthe width of other windows.  Setit to 999 to make the currentwindowalways fill the screen.  Setit toa small number for normal editing.The widthis not adjusted after one of the commands to change thewidth of the current window.'winwidth' applies to the current window.  Use'winminwidth' to setthe minimal width for other windows.'wlseat''wse''wlseat''wse'string(default "")global{only when the |+wayland| feature is included}Specifies the Wayland seat to use for Wayland functionality,specifically the clipboard.  If the seat does not exist, then theoption will still be set to the new value, with the Waylandclipboardbeing unavailableasa result.  If an empty valueis passed then Vimwill attempt to use the first seat found available.  Updating thisoption will also updatev:clipmethod.'wlsteal''wst''nowlsteal''nowst''wlsteal''wst'boolean  (default off)global{only when the |+wayland_clipboard| feature is included}When enabled, then allow Vim to steal focus by creatinga temporarysurface, in order to access the clipboard.  For more information seewayland-focus-steal.'wltimeoutlen''wtm''wltimeoutlen''wtm'number(default 500)global{only when the |+wayland| feature is included}The timeout in milliseconds before Vim gives up on waiting for theWayland compositor.  While Vim waits on the compositor,itisunresponsive to input and does not update the screen.  Thereforesetting this toa lower value may make Vim feel more responsive insome cases.  On the other hand,it may also mean you receiveerrorswhen the compositor takes more time to respond than usual.Additionally, this optionis also usedas the maximum timeout whenwaiting fora surface to gain focus, seewayland-focus-steal.'wrap''nowrap''wrap'boolean(default on)local towindowThis option changes how textis displayed.  It doesn't change the textin the buffer, see'textwidth' for that.When on, lines longer than the width of thewindow will wrap anddisplaying continues on the next line.  When off lines will not wrapand only part of long lines will be displayed.  When the cursorismoved toa part thatis not shown, the screen will scrollhorizontally.The line will be broken in the middle ofaword if necessary.  See'linebreak' to get the breakataword boundary.To makescrolling horizontallya bit more useful, try this::set sidescroll=5:set listchars+=precedes:<,extends:>See'sidescroll','listchars' andwrap-off.This option can't be set fromamodeline when the'diff' optionison.'wrapmargin''wm''wrapmargin''wm'number(default 0)local to bufferNumber of characters from the rightwindow border where wrappingstarts.  When typing text beyond this limit, an<EOL> will be insertedandinserting continues on the next line.Options that adda margin, suchas'number' and'foldcolumn', causethe text width to be further reduced.  ThisisVi compatible.When'textwidth'is non-zero, this optionis not used.This optionis set to0 when'paste'is set and restored when'paste'is reset.See also'formatoptions' andins-textwidth.'wrapscan''ws''nowrapscan''nows''wrapscan''ws'boolean(default on)E384E385globalSearches wrap around theend of the file.  Also applies to]s and[s, searching for spelling mistakes.'write''nowrite''write'boolean(default on)globalAllowswriting files.  When not set,writinga fileis not allowed.Can be used fora view-only mode, where modifications to the text arestill allowed.  Can be reset with the-m or-M command lineargument.  Filtering textis still possible, even though this requireswritinga temporary file.'writeany''wa''nowriteany''nowa''writeany''wa'boolean(default off)globalAllowswriting to any file with no need for "!" override.'writebackup''wb''nowritebackup''nowb''writebackup''wb'boolean(default on with+writebackup feature, offotherwise)globalMakeabackup before overwritinga file.  Thebackupis removed afterthe file was successfully written, unless the'backup' optionisalso on.WARNING: Switching this option off means that when Vim fails to writeyour buffer correctly and then, for whatever reason, Vim exits, youlose both the original file and what you were writing.  Only resetthis option if your file systemis almost full andit makes the writefail (and make sure not to exit Vim until the write was successful).Seebackup-table for another explanation.When the'backupskip'pattern matches,abackupis not made anyway.Depending on'backupcopy' thebackupisa new file or the originalfile renamed (anda new fileis written).NOTE: This optionis set to the default value when'compatible'isset.'writedelay''wd''writedelay''wd'number(default 0)globalThe number of milliseconds to wait for each character sent to thescreen.  When non-zero, characters are sent to theterminal one byone.  For debugging purposes.'xtermcodes''noxtermcodes''xtermcodes'boolean(default on)globalWhen detecting xterm patchlevel 141 or higher with the termresponsemechanism and this optionis set, Vim will request the actualterminalkey codes and number of colors from the terminal.  This takes care ofvarious configurationoptions of theterminal that cannot be obtainedfrom the termlib/terminfo entry, seexterm-codes.A side effect may be thatt_Co changes and Vim will redraw thedisplay. vim:tw=78:ts=8:noet:ft=help:norl:

Quick links:help overview ·quick reference ·user manual toc ·reference manual toc·faq


[8]ページ先頭

©2009-2025 Movatter.jp