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