options.lua (346762B)
1 --- @meta _ 2 -- THIS FILE IS GENERATED 3 -- DO NOT EDIT 4 error('Cannot require a meta file') 5 6 ---@class vim.bo 7 ---@field [integer] vim.bo 8 vim.bo = vim.bo 9 10 ---@class vim.wo 11 ---@field [integer] vim.wo 12 vim.wo = vim.wo 13 14 --- Allow CTRL-_ in Insert mode. This is default off, to avoid that users 15 --- that accidentally type CTRL-_ instead of SHIFT-_ get into reverse 16 --- Insert mode, and don't know how to get out. See 'revins'. 17 --- 18 --- @type boolean 19 vim.o.allowrevins = false 20 vim.o.ari = vim.o.allowrevins 21 vim.go.allowrevins = vim.o.allowrevins 22 vim.go.ari = vim.go.allowrevins 23 24 --- Tells Vim what to do with characters with East Asian Width Class 25 --- Ambiguous (such as Euro, Registered Sign, Copyright Sign, Greek 26 --- letters, Cyrillic letters). 27 --- 28 --- There are currently two possible values: 29 --- "single": Use the same width as characters in US-ASCII. This is 30 --- expected by most users. 31 --- "double": Use twice the width of ASCII characters. 32 --- *E834* *E835* 33 --- The value "double" cannot be used if 'listchars' or 'fillchars' 34 --- contains a character that would be double width. These errors may 35 --- also be given when calling setcellwidths(). 36 --- 37 --- The values are overruled for characters specified with 38 --- `setcellwidths()`. 39 --- 40 --- There are a number of CJK fonts for which the width of glyphs for 41 --- those characters are solely based on how many octets they take in 42 --- legacy/traditional CJK encodings. In those encodings, Euro, 43 --- Registered sign, Greek/Cyrillic letters are represented by two octets, 44 --- therefore those fonts have "wide" glyphs for them. This is also 45 --- true of some line drawing characters used to make tables in text 46 --- file. Therefore, when a CJK font is used for GUI Vim or 47 --- Vim is running inside a terminal (emulators) that uses a CJK font 48 --- (or Vim is run inside an xterm invoked with "-cjkwidth" option.), 49 --- this option should be set to "double" to match the width perceived 50 --- by Vim with the width of glyphs in the font. Perhaps it also has 51 --- to be set to "double" under CJK MS-Windows when the system locale is 52 --- set to one of CJK locales. See Unicode Standard Annex #11 53 --- (https://www.unicode.org/reports/tr11). 54 --- 55 --- @type 'single'|'double' 56 vim.o.ambiwidth = "single" 57 vim.o.ambw = vim.o.ambiwidth 58 vim.go.ambiwidth = vim.o.ambiwidth 59 vim.go.ambw = vim.go.ambiwidth 60 61 --- This option can be set to start editing Arabic text. 62 --- Setting this option will: 63 --- - Set the 'rightleft' option, unless 'termbidi' is set. 64 --- - Set the 'arabicshape' option, unless 'termbidi' is set. 65 --- - Set the 'keymap' option to "arabic"; in Insert mode CTRL-^ toggles 66 --- between typing English and Arabic key mapping. 67 --- - Set the 'delcombine' option 68 --- 69 --- Resetting this option will: 70 --- - Reset the 'rightleft' option. 71 --- - Disable the use of 'keymap' (without changing its value). 72 --- Note that 'arabicshape' and 'delcombine' are not reset (it is a global 73 --- option). 74 --- Also see `l10n-arabic.txt`. 75 --- 76 --- @type boolean 77 vim.o.arabic = false 78 vim.o.arab = vim.o.arabic 79 vim.wo.arabic = vim.o.arabic 80 vim.wo.arab = vim.wo.arabic 81 82 --- When on and 'termbidi' is off, the required visual character 83 --- corrections that need to take place for displaying the Arabic language 84 --- take effect. Shaping, in essence, gets enabled; the term is a broad 85 --- one which encompasses: 86 --- a) the changing/morphing of characters based on their location 87 --- within a word (initial, medial, final and stand-alone). 88 --- b) the enabling of the ability to compose characters 89 --- c) the enabling of the required combining of some characters 90 --- When disabled the display shows each character's true stand-alone 91 --- form. 92 --- Arabic is a complex language which requires other settings, for 93 --- further details see `l10n-arabic.txt`. 94 --- 95 --- @type boolean 96 vim.o.arabicshape = true 97 vim.o.arshape = vim.o.arabicshape 98 vim.go.arabicshape = vim.o.arabicshape 99 vim.go.arshape = vim.go.arabicshape 100 101 --- When on, Vim will change the current working directory whenever you 102 --- open a file, switch buffers, delete a buffer or open/close a window. 103 --- It will change to the directory containing the file which was opened 104 --- or selected. When a buffer has no name it also has no directory, thus 105 --- the current directory won't change when navigating to it. 106 --- Note: When this option is on some plugins may not work. 107 --- 108 --- @type boolean 109 vim.o.autochdir = false 110 vim.o.acd = vim.o.autochdir 111 vim.go.autochdir = vim.o.autochdir 112 vim.go.acd = vim.go.autochdir 113 114 --- When on, Vim shows a completion menu as you type, similar to using 115 --- `i_CTRL-N`, but triggered automatically. See `ins-autocompletion`. 116 --- 117 --- @type boolean 118 vim.o.autocomplete = false 119 vim.o.ac = vim.o.autocomplete 120 vim.bo.autocomplete = vim.o.autocomplete 121 vim.bo.ac = vim.bo.autocomplete 122 vim.go.autocomplete = vim.o.autocomplete 123 vim.go.ac = vim.go.autocomplete 124 125 --- Delay in milliseconds before the autocomplete menu appears after 126 --- typing. If you prefer it not to open too quickly, set this value 127 --- slightly above your typing speed. See `ins-autocompletion`. 128 --- 129 --- @type integer 130 vim.o.autocompletedelay = 0 131 vim.o.acl = vim.o.autocompletedelay 132 vim.go.autocompletedelay = vim.o.autocompletedelay 133 vim.go.acl = vim.go.autocompletedelay 134 135 --- Initial timeout (in milliseconds) for the decaying time-sliced 136 --- completion algorithm. Starts at this value, halves for each slower 137 --- source until a minimum is reached. All sources run, but slower ones 138 --- are quickly de-prioritized. The default is tuned so the popup menu 139 --- opens within ~200ms even with multiple slow sources on a slow system. 140 --- Changing this value is rarely needed. Only 80 or higher is valid. 141 --- Special case: when 'complete' contains "F" or "o" (function sources), 142 --- a longer timeout is used, allowing up to ~1s for sources such as LSP 143 --- servers that may sometimes take longer (e.g., while loading modules). 144 --- See `ins-autocompletion`. 145 --- 146 --- @type integer 147 vim.o.autocompletetimeout = 80 148 vim.o.act = vim.o.autocompletetimeout 149 vim.go.autocompletetimeout = vim.o.autocompletetimeout 150 vim.go.act = vim.go.autocompletetimeout 151 152 --- Copy indent from current line when starting a new line (typing <CR> 153 --- in Insert mode or when using the "o" or "O" command). If you do not 154 --- type anything on the new line except <BS> or CTRL-D and then type 155 --- <Esc>, CTRL-O or <CR>, the indent is deleted again. Moving the cursor 156 --- to another line has the same effect, unless the 'I' flag is included 157 --- in 'cpoptions'. 158 --- When autoindent is on, formatting (with the "gq" command or when you 159 --- reach 'textwidth' in Insert mode) uses the indentation of the first 160 --- line. 161 --- When 'smartindent' or 'cindent' is on the indent is changed in 162 --- a different way. 163 --- 164 --- @type boolean 165 vim.o.autoindent = true 166 vim.o.ai = vim.o.autoindent 167 vim.bo.autoindent = vim.o.autoindent 168 vim.bo.ai = vim.bo.autoindent 169 170 --- When a file has been detected to have been changed outside of Vim and 171 --- it has not been changed inside of Vim, automatically read it again. 172 --- When the file has been deleted this is not done, so you have the text 173 --- from before it was deleted. When it appears again then it is read. 174 --- `timestamp` 175 --- If this option has a local value, use this command to switch back to 176 --- using the global value: 177 --- 178 --- ```vim 179 --- set autoread< 180 --- ``` 181 --- 182 --- 183 --- @type boolean 184 vim.o.autoread = true 185 vim.o.ar = vim.o.autoread 186 vim.bo.autoread = vim.o.autoread 187 vim.bo.ar = vim.bo.autoread 188 vim.go.autoread = vim.o.autoread 189 vim.go.ar = vim.go.autoread 190 191 --- Write the contents of the file, if it has been modified, on each 192 --- `:next`, `:rewind`, `:last`, `:first`, `:previous`, `:stop`, 193 --- `:suspend`, `:tag`, `:!`, `:make`, CTRL-] and CTRL-^ command; and when 194 --- a `:buffer`, CTRL-O, CTRL-I, '{A-Z0-9}, or `{A-Z0-9} command takes one 195 --- to another file. 196 --- A buffer is not written if it becomes hidden, e.g. when 'bufhidden' is 197 --- set to "hide" and `:next` is used. 198 --- Note that for some commands the 'autowrite' option is not used, see 199 --- 'autowriteall' for that. 200 --- Some buffers will not be written, specifically when 'buftype' is 201 --- "nowrite", "nofile", "terminal" or "prompt". 202 --- USE WITH CARE: If you make temporary changes to a buffer that you 203 --- don't want to be saved this option may cause it to be saved anyway. 204 --- Renaming the buffer with ":file {name}" may help avoid this. 205 --- 206 --- @type boolean 207 vim.o.autowrite = false 208 vim.o.aw = vim.o.autowrite 209 vim.go.autowrite = vim.o.autowrite 210 vim.go.aw = vim.go.autowrite 211 212 --- Like 'autowrite', but also used for commands ":edit", ":enew", 213 --- ":quit", ":qall", ":exit", ":xit", ":recover" and closing the Vim 214 --- window. 215 --- Setting this option also implies that Vim behaves like 'autowrite' has 216 --- been set. 217 --- 218 --- @type boolean 219 vim.o.autowriteall = false 220 vim.o.awa = vim.o.autowriteall 221 vim.go.autowriteall = vim.o.autowriteall 222 vim.go.awa = vim.go.autowriteall 223 224 --- When set to "dark" or "light", adjusts the default color groups for 225 --- that background type. The `TUI` or other UI sets this on startup 226 --- (triggering `OptionSet`) if it can detect the background color. 227 --- 228 --- This option does NOT change the background color, it tells Nvim what 229 --- the "inherited" (terminal/GUI) background looks like. 230 --- See `:hi-normal` if you want to set the background color explicitly. 231 --- *g:colors_name* 232 --- When a color scheme is loaded (the "g:colors_name" variable is set) 233 --- changing 'background' will cause the color scheme to be reloaded. If 234 --- the color scheme adjusts to the value of 'background' this will work. 235 --- However, if the color scheme sets 'background' itself the effect may 236 --- be undone. First delete the "g:colors_name" variable when needed. 237 --- 238 --- Normally this option would be set in the vimrc file. Possibly 239 --- depending on the terminal name. Example: 240 --- 241 --- ```vim 242 --- if $TERM ==# "xterm" 243 --- set background=dark 244 --- endif 245 --- ``` 246 --- When this option is changed, the default settings for the highlight groups 247 --- will change. To use other settings, place ":highlight" commands AFTER 248 --- the setting of the 'background' option. 249 --- 250 --- @type 'light'|'dark' 251 vim.o.background = "dark" 252 vim.o.bg = vim.o.background 253 vim.go.background = vim.o.background 254 vim.go.bg = vim.go.background 255 256 --- Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert 257 --- mode. This is a list of items, separated by commas. Each item allows 258 --- a way to backspace over something: 259 --- value effect ~ 260 --- indent allow backspacing over autoindent 261 --- eol allow backspacing over line breaks (join lines) 262 --- start allow backspacing over the start of insert; CTRL-W and CTRL-U 263 --- stop once at the start of insert. 264 --- nostop like start, except CTRL-W and CTRL-U do not stop at the start 265 --- of insert. 266 --- 267 --- When the value is empty, Vi compatible backspacing is used, none of 268 --- the ways mentioned for the items above are possible. 269 --- 270 --- @type string 271 vim.o.backspace = "indent,eol,start" 272 vim.o.bs = vim.o.backspace 273 vim.go.backspace = vim.o.backspace 274 vim.go.bs = vim.go.backspace 275 276 --- Make a backup before overwriting a file. Leave it around after the 277 --- file has been successfully written. If you do not want to keep the 278 --- backup file, but you do want a backup while the file is being 279 --- written, reset this option and set the 'writebackup' option (this is 280 --- the default). If you do not want a backup file at all reset both 281 --- options (use this if your file system is almost full). See the 282 --- `backup-table` for more explanations. 283 --- When the 'backupskip' pattern matches, a backup is not made anyway. 284 --- When 'patchmode' is set, the backup may be renamed to become the 285 --- oldest version of a file. 286 --- 287 --- @type boolean 288 vim.o.backup = false 289 vim.o.bk = vim.o.backup 290 vim.go.backup = vim.o.backup 291 vim.go.bk = vim.go.backup 292 293 --- When writing a file and a backup is made, this option tells how it's 294 --- done. This is a comma-separated list of words. 295 --- 296 --- The main values are: 297 --- "yes" make a copy of the file and overwrite the original one 298 --- "no" rename the file and write a new one 299 --- "auto" one of the previous, what works best 300 --- 301 --- Extra values that can be combined with the ones above are: 302 --- "breaksymlink" always break symlinks when writing 303 --- "breakhardlink" always break hardlinks when writing 304 --- 305 --- Making a copy and overwriting the original file: 306 --- - Takes extra time to copy the file. 307 --- + When the file has special attributes, is a (hard/symbolic) link or 308 --- has a resource fork, all this is preserved. 309 --- - When the file is a link the backup will have the name of the link, 310 --- not of the real file. 311 --- 312 --- Renaming the file and writing a new one: 313 --- + It's fast. 314 --- - Sometimes not all attributes of the file can be copied to the new 315 --- file. 316 --- - When the file is a link the new file will not be a link. 317 --- 318 --- The "auto" value is the middle way: When Vim sees that renaming the 319 --- file is possible without side effects (the attributes can be passed on 320 --- and the file is not a link) that is used. When problems are expected, 321 --- a copy will be made. 322 --- 323 --- The "breaksymlink" and "breakhardlink" values can be used in 324 --- combination with any of "yes", "no" and "auto". When included, they 325 --- force Vim to always break either symbolic or hard links by doing 326 --- exactly what the "no" option does, renaming the original file to 327 --- become the backup and writing a new file in its place. This can be 328 --- useful for example in source trees where all the files are symbolic or 329 --- hard links and any changes should stay in the local source tree, not 330 --- be propagated back to the original source. 331 --- *crontab* 332 --- One situation where "no" and "auto" will cause problems: A program 333 --- that opens a file, invokes Vim to edit that file, and then tests if 334 --- the open file was changed (through the file descriptor) will check the 335 --- backup file instead of the newly created file. "crontab -e" is an 336 --- example, as are several `file-watcher` daemons like inotify. In that 337 --- case you probably want to switch this option. 338 --- 339 --- When a copy is made, the original file is truncated and then filled 340 --- with the new text. This means that protection bits, owner and 341 --- symbolic links of the original file are unmodified. The backup file, 342 --- however, is a new file, owned by the user who edited the file. The 343 --- group of the backup is set to the group of the original file. If this 344 --- fails, the protection bits for the group are made the same as for 345 --- others. 346 --- 347 --- When the file is renamed, this is the other way around: The backup has 348 --- the same attributes of the original file, and the newly written file 349 --- is owned by the current user. When the file was a (hard/symbolic) 350 --- link, the new file will not! That's why the "auto" value doesn't 351 --- rename when the file is a link. The owner and group of the newly 352 --- written file will be set to the same ones as the original file, but 353 --- the system may refuse to do this. In that case the "auto" value will 354 --- again not rename the file. 355 --- 356 --- @type string 357 vim.o.backupcopy = "auto" 358 vim.o.bkc = vim.o.backupcopy 359 vim.bo.backupcopy = vim.o.backupcopy 360 vim.bo.bkc = vim.bo.backupcopy 361 vim.go.backupcopy = vim.o.backupcopy 362 vim.go.bkc = vim.go.backupcopy 363 364 --- List of directories for the backup file, separated with commas. 365 --- - The backup file will be created in the first directory in the list 366 --- where this is possible. If none of the directories exist Nvim will 367 --- attempt to create the last directory in the list. 368 --- - Empty means that no backup file will be created ('patchmode' is 369 --- impossible!). Writing may fail because of this. 370 --- - A directory "." means to put the backup file in the same directory 371 --- as the edited file. 372 --- - A directory starting with "./" (or ".\" for MS-Windows) means to put 373 --- the backup file relative to where the edited file is. The leading 374 --- "." is replaced with the path name of the edited file. 375 --- ("." inside a directory name has no special meaning). 376 --- - Spaces after the comma are ignored, other spaces are considered part 377 --- of the directory name. To have a space at the start of a directory 378 --- name, precede it with a backslash. 379 --- - To include a comma in a directory name precede it with a backslash. 380 --- - A directory name may end in an '/'. 381 --- - For Unix and Win32, if a directory ends in two path separators "//", 382 --- the swap file name will be built from the complete path to the file 383 --- with all path separators changed to percent '%' signs. This will 384 --- ensure file name uniqueness in the backup directory. 385 --- On Win32, it is also possible to end with "\\". However, When a 386 --- separating comma is following, you must use "//", since "\\" will 387 --- include the comma in the file name. Therefore it is recommended to 388 --- use '//', instead of '\\'. 389 --- - Environment variables are expanded `:set_env`. 390 --- - Careful with '\' characters, type one before a space, type two to 391 --- get one in the option (see `option-backslash`), for example: 392 --- 393 --- ```vim 394 --- set bdir=c:\\tmp,\ dir\\,with\\,commas,\\\ dir\ with\ spaces 395 --- ``` 396 --- 397 --- See also 'backup' and 'writebackup' options. 398 --- If you want to hide your backup files on Unix, consider this value: 399 --- 400 --- ```vim 401 --- set backupdir=./.backup,~/.backup,.,/tmp 402 --- ``` 403 --- You must create a ".backup" directory in each directory and in your 404 --- home directory for this to work properly. 405 --- The use of `:set+=` and `:set-=` is preferred when adding or removing 406 --- directories from the list. This avoids problems when a future version 407 --- uses another default. 408 --- This option cannot be set from a `modeline` or in the `sandbox`, for 409 --- security reasons. 410 --- 411 --- @type string 412 vim.o.backupdir = ".,$XDG_STATE_HOME/nvim/backup//" 413 vim.o.bdir = vim.o.backupdir 414 vim.go.backupdir = vim.o.backupdir 415 vim.go.bdir = vim.go.backupdir 416 417 --- String which is appended to a file name to make the name of the 418 --- backup file. The default is quite unusual, because this avoids 419 --- accidentally overwriting existing files with a backup file. You might 420 --- prefer using ".bak", but make sure that you don't have files with 421 --- ".bak" that you want to keep. 422 --- Only normal file name characters can be used; `/\*?[|<>` are illegal. 423 --- 424 --- If you like to keep a lot of backups, you could use a BufWritePre 425 --- autocommand to change 'backupext' just before writing the file to 426 --- include a timestamp. 427 --- 428 --- ```vim 429 --- au BufWritePre * let &bex = '-' .. strftime("%Y%b%d%X") .. '~' 430 --- ``` 431 --- Use 'backupdir' to put the backup in a different directory. 432 --- 433 --- @type string 434 vim.o.backupext = "~" 435 vim.o.bex = vim.o.backupext 436 vim.go.backupext = vim.o.backupext 437 vim.go.bex = vim.go.backupext 438 439 --- A list of file patterns. When one of the patterns matches with the 440 --- name of the file which is written, no backup file is created. Both 441 --- the specified file name and the full path name of the file are used. 442 --- The pattern is used like with `:autocmd`, see `autocmd-pattern`. 443 --- Watch out for special characters, see `option-backslash`. 444 --- When $TMPDIR, $TMP or $TEMP is not defined, it is not used for the 445 --- default value. "/tmp/*" is only used for Unix. 446 --- 447 --- WARNING: Not having a backup file means that when Vim fails to write 448 --- your buffer correctly and then, for whatever reason, Vim exits, you 449 --- lose both the original file and what you were writing. Only disable 450 --- backups if you don't care about losing the file. 451 --- 452 --- Note that environment variables are not expanded. If you want to use 453 --- $HOME you must expand it explicitly, e.g.: 454 --- 455 --- ```vim 456 --- let &backupskip = escape(expand('$HOME'), '\') .. '/tmp/*' 457 --- ``` 458 --- Note that the default also makes sure that "crontab -e" works (when a 459 --- backup would be made by renaming the original file crontab won't see 460 --- the newly created file). Also see 'backupcopy' and `crontab`. 461 --- 462 --- @type string 463 vim.o.backupskip = "/tmp/*" 464 vim.o.bsk = vim.o.backupskip 465 vim.go.backupskip = vim.o.backupskip 466 vim.go.bsk = vim.go.backupskip 467 468 --- Specifies for which events the bell will not be rung. It is a comma- 469 --- separated list of items. For each item that is present, the bell will 470 --- be silenced. This is most useful to specify specific events in insert 471 --- mode to be silenced. 472 --- You can also make it flash by using 'visualbell'. 473 --- 474 --- item meaning when present ~ 475 --- all All events. 476 --- backspace When hitting <BS> or <Del> and deleting results in an 477 --- error. 478 --- cursor Fail to move around using the cursor keys or 479 --- <PageUp>/<PageDown> in `Insert-mode`. 480 --- complete Error occurred when using `i_CTRL-X_CTRL-K` or 481 --- `i_CTRL-X_CTRL-T`. 482 --- copy Cannot copy char from insert mode using `i_CTRL-Y` or 483 --- `i_CTRL-E`. 484 --- ctrlg Unknown Char after <C-G> in Insert mode. 485 --- error Other Error occurred (e.g. try to join last line) 486 --- (mostly used in `Normal-mode` or `Cmdline-mode`). 487 --- esc hitting <Esc> in `Normal-mode`. 488 --- hangul Ignored. 489 --- lang Calling the beep module for Lua/Mzscheme/TCL. 490 --- mess No output available for `g<`. 491 --- showmatch Error occurred for 'showmatch' function. 492 --- operator Empty region error `cpo-E`. 493 --- register Unknown register after <C-R> in `Insert-mode`. 494 --- shell Bell from shell output `:!`. 495 --- spell Error happened on spell suggest. 496 --- term Bell from `:terminal` output. 497 --- wildmode More matches in `cmdline-completion` available 498 --- (depends on the 'wildmode' setting). 499 --- 500 --- This is most useful to fine tune when in Insert mode the bell should 501 --- be rung. For Normal mode and Ex commands, the bell is often rung to 502 --- indicate that an error occurred. It can be silenced by adding the 503 --- "error" keyword. 504 --- 505 --- @type string 506 vim.o.belloff = "all" 507 vim.o.bo = vim.o.belloff 508 vim.go.belloff = vim.o.belloff 509 vim.go.bo = vim.go.belloff 510 511 --- This option should be set before editing a binary file. You can also 512 --- use the `-b` Vim argument. When this option is switched on a few 513 --- options will be changed (also when it already was on): 514 --- 'textwidth' will be set to 0 515 --- 'wrapmargin' will be set to 0 516 --- 'modeline' will be off 517 --- 'expandtab' will be off 518 --- Also, 'fileformat' and 'fileformats' options will not be used, the 519 --- file is read and written like 'fileformat' was "unix" (a single <NL> 520 --- separates lines). 521 --- The 'fileencoding' and 'fileencodings' options will not be used, the 522 --- file is read without conversion. 523 --- NOTE: When you start editing a(nother) file while the 'bin' option is 524 --- on, settings from autocommands may change the settings again (e.g., 525 --- 'textwidth'), causing trouble when editing. You might want to set 526 --- 'bin' again when the file has been loaded. 527 --- The previous values of these options are remembered and restored when 528 --- 'bin' is switched from on to off. Each buffer has its own set of 529 --- saved option values. 530 --- To edit a file with 'binary' set you can use the `++bin` argument. 531 --- This avoids you have to do ":set bin", which would have effect for all 532 --- files you edit. 533 --- When writing a file the <EOL> for the last line is only written if 534 --- there was one in the original file (normally Vim appends an <EOL> to 535 --- the last line if there is none; this would make the file longer). See 536 --- the 'endofline' option. 537 --- 538 --- @type boolean 539 vim.o.binary = false 540 vim.o.bin = vim.o.binary 541 vim.bo.binary = vim.o.binary 542 vim.bo.bin = vim.bo.binary 543 544 --- When writing a file and the following conditions are met, a BOM (Byte 545 --- Order Mark) is prepended to the file: 546 --- - this option is on 547 --- - the 'binary' option is off 548 --- - 'fileencoding' is "utf-8", "ucs-2", "ucs-4" or one of the little/big 549 --- endian variants. 550 --- Some applications use the BOM to recognize the encoding of the file. 551 --- Often used for UCS-2 files on MS-Windows. For other applications it 552 --- causes trouble, for example: "cat file1 file2" makes the BOM of file2 553 --- appear halfway through the resulting file. Gcc doesn't accept a BOM. 554 --- When Vim reads a file and 'fileencodings' starts with "ucs-bom", a 555 --- check for the presence of the BOM is done and 'bomb' set accordingly. 556 --- Unless 'binary' is set, it is removed from the first line, so that you 557 --- don't see it when editing. When you don't change the options, the BOM 558 --- will be restored when writing the file. 559 --- 560 --- @type boolean 561 vim.o.bomb = false 562 vim.bo.bomb = vim.o.bomb 563 564 --- This option lets you choose which characters might cause a line 565 --- break if 'linebreak' is on. Only works for ASCII characters. 566 --- 567 --- @type string 568 vim.o.breakat = " \t!@*-+;:,./?" 569 vim.o.brk = vim.o.breakat 570 vim.go.breakat = vim.o.breakat 571 vim.go.brk = vim.go.breakat 572 573 --- Every wrapped line will continue visually indented (same amount of 574 --- space as the beginning of that line), thus preserving horizontal 575 --- blocks of text. 576 --- 577 --- @type boolean 578 vim.o.breakindent = false 579 vim.o.bri = vim.o.breakindent 580 vim.wo.breakindent = vim.o.breakindent 581 vim.wo.bri = vim.wo.breakindent 582 583 --- Settings for 'breakindent'. It can consist of the following optional 584 --- items and must be separated by a comma: 585 --- min:{n} Minimum text width that will be kept after 586 --- applying 'breakindent', even if the resulting 587 --- text should normally be narrower. This prevents 588 --- text indented almost to the right window border 589 --- occupying lots of vertical space when broken. 590 --- (default: 20) 591 --- shift:{n} After applying 'breakindent', the wrapped line's 592 --- beginning will be shifted by the given number of 593 --- characters. It permits dynamic French paragraph 594 --- indentation (negative) or emphasizing the line 595 --- continuation (positive). 596 --- (default: 0) 597 --- sbr Display the 'showbreak' value before applying the 598 --- additional indent. 599 --- (default: off) 600 --- list:{n} Adds an additional indent for lines that match a 601 --- numbered or bulleted list (using the 602 --- 'formatlistpat' setting). 603 --- (default: 0) 604 --- list:-1 Uses the width of a match with 'formatlistpat' for 605 --- indentation. 606 --- column:{n} Indent at column {n}. Will overrule the other 607 --- sub-options. Note: an additional indent may be 608 --- added for the 'showbreak' setting. 609 --- (default: off) 610 --- 611 --- @type string 612 vim.o.breakindentopt = "" 613 vim.o.briopt = vim.o.breakindentopt 614 vim.wo.breakindentopt = vim.o.breakindentopt 615 vim.wo.briopt = vim.wo.breakindentopt 616 617 --- This option specifies what happens when a buffer is no longer 618 --- displayed in a window: 619 --- <empty> follow the global 'hidden' option 620 --- hide hide the buffer (don't unload it), even if 'hidden' is 621 --- not set 622 --- unload unload the buffer, even if 'hidden' is set; the 623 --- `:hide` command will also unload the buffer 624 --- delete delete the buffer from the buffer list, even if 625 --- 'hidden' is set; the `:hide` command will also delete 626 --- the buffer, making it behave like `:bdelete` 627 --- wipe wipe the buffer from the buffer list, even if 628 --- 'hidden' is set; the `:hide` command will also wipe 629 --- out the buffer, making it behave like `:bwipeout` 630 --- 631 --- CAREFUL: when "unload", "delete" or "wipe" is used changes in a buffer 632 --- are lost without a warning. Also, these values may break autocommands 633 --- that switch between buffers temporarily. 634 --- This option is used together with 'buftype' and 'swapfile' to specify 635 --- special kinds of buffers. See `special-buffers`. 636 --- 637 --- @type ''|'hide'|'unload'|'delete'|'wipe' 638 vim.o.bufhidden = "" 639 vim.o.bh = vim.o.bufhidden 640 vim.bo.bufhidden = vim.o.bufhidden 641 vim.bo.bh = vim.bo.bufhidden 642 643 --- When this option is set, the buffer shows up in the buffer list. If 644 --- it is reset it is not used for ":bnext", "ls", the Buffers menu, etc. 645 --- This option is reset by Vim for buffers that are only used to remember 646 --- a file name or marks. Vim sets it when starting to edit a buffer. 647 --- But not when moving to a buffer with ":buffer". 648 --- 649 --- @type boolean 650 vim.o.buflisted = true 651 vim.o.bl = vim.o.buflisted 652 vim.bo.buflisted = vim.o.buflisted 653 vim.bo.bl = vim.bo.buflisted 654 655 --- The value of this option specifies the type of a buffer: 656 --- <empty> normal buffer 657 --- acwrite buffer will always be written with `BufWriteCmd`s 658 --- help help buffer (do not set this manually) 659 --- nofile buffer is not related to a file, will not be written 660 --- nowrite buffer will not be written 661 --- prompt buffer where only the last section can be edited, for 662 --- use by plugins. `prompt-buffer` 663 --- quickfix list of errors `:cwindow` or locations `:lwindow` 664 --- terminal `terminal-emulator` buffer 665 --- 666 --- This option is used together with 'bufhidden' and 'swapfile' to 667 --- specify special kinds of buffers. See `special-buffers`. 668 --- Also see `win_gettype()`, which returns the type of the window. 669 --- 670 --- Be careful with changing this option, it can have many side effects! 671 --- One such effect is that Vim will not check the timestamp of the file, 672 --- if the file is changed by another program this will not be noticed. 673 --- 674 --- A "quickfix" buffer is only used for the error list and the location 675 --- list. This value is set by the `:cwindow` and `:lwindow` commands and 676 --- you are not supposed to change it. 677 --- 678 --- "nofile" and "nowrite" buffers are similar: 679 --- both: The buffer is not to be written to disk, ":w" doesn't 680 --- work (":w filename" does work though). 681 --- both: The buffer is never considered to be 'modified'. 682 --- There is no warning when the changes will be lost, for 683 --- example when you quit Vim. 684 --- both: A swap file is only created when using too much memory 685 --- (when 'swapfile' has been reset there is never a swap 686 --- file). 687 --- nofile only: The buffer name is fixed, it is not handled like a 688 --- file name. It is not modified in response to a `:cd` 689 --- command. 690 --- both: When using ":e bufname" and already editing "bufname" 691 --- the buffer is made empty and autocommands are 692 --- triggered as usual for `:edit`. 693 --- *E676* 694 --- "acwrite" implies that the buffer name is not related to a file, like 695 --- "nofile", but it will be written. Thus, in contrast to "nofile" and 696 --- "nowrite", ":w" does work and a modified buffer can't be abandoned 697 --- without saving. For writing there must be matching `BufWriteCmd`, 698 --- `FileWriteCmd` or `FileAppendCmd` autocommands. 699 --- 700 --- @type ''|'acwrite'|'help'|'nofile'|'nowrite'|'quickfix'|'terminal'|'prompt' 701 vim.o.buftype = "" 702 vim.o.bt = vim.o.buftype 703 vim.bo.buftype = vim.o.buftype 704 vim.bo.bt = vim.bo.buftype 705 706 --- Sets a buffer "busy" status. Indicated in the default statusline. 707 --- When busy status is larger then 0 busy flag is shown in statusline. 708 --- The semantics of "busy" are arbitrary, typically decided by the plugin that owns the buffer. 709 --- 710 --- @type integer 711 vim.o.busy = 0 712 vim.bo.busy = vim.o.busy 713 714 --- Specifies details about changing the case of letters. It may contain 715 --- these words, separated by a comma: 716 --- internal Use internal case mapping functions, the current 717 --- locale does not change the case mapping. When 718 --- "internal" is omitted, the towupper() and towlower() 719 --- system library functions are used when available. 720 --- keepascii For the ASCII characters (0x00 to 0x7f) use the US 721 --- case mapping, the current locale is not effective. 722 --- This probably only matters for Turkish. 723 --- 724 --- @type string 725 vim.o.casemap = "internal,keepascii" 726 vim.o.cmp = vim.o.casemap 727 vim.go.casemap = vim.o.casemap 728 vim.go.cmp = vim.go.casemap 729 730 --- When on, `:cd`, `:tcd` and `:lcd` without an argument changes the 731 --- current working directory to the `$HOME` directory like in Unix. 732 --- When off, those commands just print the current directory name. 733 --- This option cannot be set from a `modeline` or in the `sandbox`, for 734 --- security reasons. 735 --- 736 --- @type boolean 737 vim.o.cdhome = true 738 vim.o.cdh = vim.o.cdhome 739 vim.go.cdhome = vim.o.cdhome 740 vim.go.cdh = vim.go.cdhome 741 742 --- This is a list of directories which will be searched when using the 743 --- `:cd`, `:tcd` and `:lcd` commands, provided that the directory being 744 --- searched for has a relative path, not an absolute part starting with 745 --- "/", "./" or "../", the 'cdpath' option is not used then. 746 --- The 'cdpath' option's value has the same form and semantics as 747 --- 'path'. Also see `file-searching`. 748 --- The default value is taken from $CDPATH, with a "," prepended to look 749 --- in the current directory first. 750 --- If the default value taken from $CDPATH is not what you want, include 751 --- a modified version of the following command in your vimrc file to 752 --- override it: 753 --- 754 --- ```vim 755 --- let &cdpath = ',' .. substitute(substitute($CDPATH, '[, ]', '\\\0', 'g'), ':', ',', 'g') 756 --- ``` 757 --- Environment variables are expanded `:set_env`. 758 --- This option cannot be set from a `modeline` or in the `sandbox`, for 759 --- security reasons. 760 --- (parts of 'cdpath' can be passed to the shell to expand file names). 761 --- 762 --- @type string 763 vim.o.cdpath = ",," 764 vim.o.cd = vim.o.cdpath 765 vim.go.cdpath = vim.o.cdpath 766 vim.go.cd = vim.go.cdpath 767 768 --- The key used in Command-line Mode to open the command-line window. 769 --- Only non-printable keys are allowed. 770 --- The key can be specified as a single character, but it is difficult to 771 --- type. The preferred way is to use `key-notation` (e.g. <Up>, <C-F>) or 772 --- a letter preceded with a caret (e.g. `^F` is CTRL-F). Examples: 773 --- 774 --- ```vim 775 --- set cedit=^Y 776 --- set cedit=<Esc> 777 --- ``` 778 --- `Nvi` also has this option, but it only uses the first character. 779 --- See `cmdwin`. 780 --- 781 --- @type string 782 vim.o.cedit = "\6" 783 vim.go.cedit = vim.o.cedit 784 785 --- `channel` connected to the buffer, or 0 if no channel is connected. 786 --- In a `:terminal` buffer this is the terminal channel. 787 --- Read-only. 788 --- 789 --- @type integer 790 vim.o.channel = 0 791 vim.bo.channel = vim.o.channel 792 793 --- An expression that is used for character encoding conversion. It is 794 --- evaluated when a file that is to be read or has been written has a 795 --- different encoding from what is desired. 796 --- 'charconvert' is not used when the internal iconv() function is 797 --- supported and is able to do the conversion. Using iconv() is 798 --- preferred, because it is much faster. 799 --- 'charconvert' is not used when reading stdin `--`, because there is no 800 --- file to convert from. You will have to save the text in a file first. 801 --- The expression must return zero, false or an empty string for success, 802 --- non-zero or true for failure. 803 --- See `encoding-names` for possible encoding names. 804 --- Additionally, names given in 'fileencodings' and 'fileencoding' are 805 --- used. 806 --- Conversion between "latin1", "unicode", "ucs-2", "ucs-4" and "utf-8" 807 --- is done internally by Vim, 'charconvert' is not used for this. 808 --- Also used for Unicode conversion. 809 --- Example: 810 --- 811 --- ```vim 812 --- set charconvert=CharConvert() 813 --- fun CharConvert() 814 --- system("recode " 815 --- \ .. v:charconvert_from .. ".." .. v:charconvert_to 816 --- \ .. " <" .. v:fname_in .. " >" .. v:fname_out) 817 --- return v:shell_error 818 --- endfun 819 --- ``` 820 --- The related Vim variables are: 821 --- v:charconvert_from name of the current encoding 822 --- v:charconvert_to name of the desired encoding 823 --- v:fname_in name of the input file 824 --- v:fname_out name of the output file 825 --- Note that v:fname_in and v:fname_out will never be the same. 826 --- 827 --- The advantage of using a function call without arguments is that it is 828 --- faster, see `expr-option-function`. 829 --- 830 --- If the 'charconvert' expression starts with s: or `<SID>`, then it is 831 --- replaced with the script ID (`local-function`). Example: 832 --- 833 --- ```vim 834 --- set charconvert=s:MyConvert() 835 --- set charconvert=<SID>SomeConvert() 836 --- ``` 837 --- Otherwise the expression is evaluated in the context of the script 838 --- where the option was set, thus script-local items are available. 839 --- 840 --- This option cannot be set from a `modeline` or in the `sandbox`, for 841 --- security reasons. 842 --- 843 --- @type string 844 vim.o.charconvert = "" 845 vim.o.ccv = vim.o.charconvert 846 vim.go.charconvert = vim.o.charconvert 847 vim.go.ccv = vim.go.charconvert 848 849 --- Number of quickfix lists that should be remembered for the quickfix 850 --- stack. Must be between 1 and 100. If the option is set to a value 851 --- that is lower than the amount of entries in the quickfix list stack, 852 --- entries will be removed starting from the oldest one. If the current 853 --- quickfix list was removed, then the quickfix list at top of the stack 854 --- (the most recently created) will be used in its place. For additional 855 --- info, see `quickfix-stack`. 856 --- 857 --- @type integer 858 vim.o.chistory = 10 859 vim.o.chi = vim.o.chistory 860 vim.go.chistory = vim.o.chistory 861 vim.go.chi = vim.go.chistory 862 863 --- Enables automatic C program indenting. See 'cinkeys' to set the keys 864 --- that trigger reindenting in insert mode and 'cinoptions' to set your 865 --- preferred indent style. 866 --- If 'indentexpr' is not empty, it overrules 'cindent'. 867 --- If 'lisp' is not on and both 'indentexpr' and 'equalprg' are empty, 868 --- the "=" operator indents using this algorithm rather than calling an 869 --- external program. 870 --- See `C-indenting`. 871 --- When you don't like the way 'cindent' works, try the 'smartindent' 872 --- option or 'indentexpr'. 873 --- 874 --- @type boolean 875 vim.o.cindent = false 876 vim.o.cin = vim.o.cindent 877 vim.bo.cindent = vim.o.cindent 878 vim.bo.cin = vim.bo.cindent 879 880 --- A list of keys that, when typed in Insert mode, cause reindenting of 881 --- the current line. Only used if 'cindent' is on and 'indentexpr' is 882 --- empty. 883 --- For the format of this option see `cinkeys-format`. 884 --- See `C-indenting`. 885 --- 886 --- @type string 887 vim.o.cinkeys = "0{,0},0),0],:,0#,!^F,o,O,e" 888 vim.o.cink = vim.o.cinkeys 889 vim.bo.cinkeys = vim.o.cinkeys 890 vim.bo.cink = vim.bo.cinkeys 891 892 --- The 'cinoptions' affect the way 'cindent' reindents lines in a C 893 --- program. See `cinoptions-values` for the values of this option, and 894 --- `C-indenting` for info on C indenting in general. 895 --- 896 --- @type string 897 vim.o.cinoptions = "" 898 vim.o.cino = vim.o.cinoptions 899 vim.bo.cinoptions = vim.o.cinoptions 900 vim.bo.cino = vim.bo.cinoptions 901 902 --- Keywords that are interpreted as a C++ scope declaration by `cino-g`. 903 --- Useful e.g. for working with the Qt framework that defines additional 904 --- scope declarations "signals", "public slots" and "private slots": 905 --- 906 --- ```vim 907 --- set cinscopedecls+=signals,public\ slots,private\ slots 908 --- ``` 909 --- 910 --- 911 --- @type string 912 vim.o.cinscopedecls = "public,protected,private" 913 vim.o.cinsd = vim.o.cinscopedecls 914 vim.bo.cinscopedecls = vim.o.cinscopedecls 915 vim.bo.cinsd = vim.bo.cinscopedecls 916 917 --- These keywords start an extra indent in the next line when 918 --- 'smartindent' or 'cindent' is set. For 'cindent' this is only done at 919 --- an appropriate place (inside {}). 920 --- Note that 'ignorecase' isn't used for 'cinwords'. If case doesn't 921 --- matter, include the keyword both the uppercase and lowercase: 922 --- "if,If,IF". 923 --- 924 --- @type string 925 vim.o.cinwords = "if,else,while,do,for,switch" 926 vim.o.cinw = vim.o.cinwords 927 vim.bo.cinwords = vim.o.cinwords 928 vim.bo.cinw = vim.bo.cinwords 929 930 --- This option is a list of comma-separated names. 931 --- These names are recognized: 932 --- 933 --- *clipboard-unnamed* 934 --- unnamed When included, Vim will use the clipboard register "*" 935 --- for all yank, delete, change and put operations which 936 --- would normally go to the unnamed register. When a 937 --- register is explicitly specified, it will always be 938 --- used regardless of whether "unnamed" is in 'clipboard' 939 --- or not. The clipboard register can always be 940 --- explicitly accessed using the "* notation. Also see 941 --- `clipboard`. 942 --- 943 --- *clipboard-unnamedplus* 944 --- unnamedplus A variant of the "unnamed" flag which uses the 945 --- clipboard register "+" (`quoteplus`) instead of 946 --- register "*" for all yank, delete, change and put 947 --- operations which would normally go to the unnamed 948 --- register. When "unnamed" is also included to the 949 --- option, yank and delete operations (but not put) 950 --- will additionally copy the text into register 951 --- "*". See `clipboard`. 952 --- 953 --- @type string 954 vim.o.clipboard = "" 955 vim.o.cb = vim.o.clipboard 956 vim.go.clipboard = vim.o.clipboard 957 vim.go.cb = vim.go.clipboard 958 959 --- Number of screen lines to use for the command-line. Helps avoiding 960 --- `hit-enter` prompts. 961 --- The value of this option is stored with the tab page, so that each tab 962 --- page can have a different value. 963 --- 964 --- When 'cmdheight' is zero, there is no command-line unless it is being 965 --- used. The command-line will cover the last line of the screen when 966 --- shown. 967 --- 968 --- WARNING: `cmdheight=0` is EXPERIMENTAL. Expect some unwanted behaviour. 969 --- Some 'shortmess' flags and similar mechanism might fail to take effect, 970 --- causing unwanted hit-enter prompts. Some informative messages, both 971 --- from Nvim itself and plugins, will not be displayed. 972 --- 973 --- @type integer 974 vim.o.cmdheight = 1 975 vim.o.ch = vim.o.cmdheight 976 vim.go.cmdheight = vim.o.cmdheight 977 vim.go.ch = vim.go.cmdheight 978 979 --- Number of screen lines to use for the command-line window. `cmdwin` 980 --- 981 --- @type integer 982 vim.o.cmdwinheight = 7 983 vim.o.cwh = vim.o.cmdwinheight 984 vim.go.cmdwinheight = vim.o.cmdwinheight 985 vim.go.cwh = vim.go.cmdwinheight 986 987 --- 'colorcolumn' is a comma-separated list of screen columns that are 988 --- highlighted with ColorColumn `hl-ColorColumn`. Useful to align 989 --- text. Will make screen redrawing slower. 990 --- The screen column can be an absolute number, or a number preceded with 991 --- '+' or '-', which is added to or subtracted from 'textwidth'. 992 --- 993 --- ```vim 994 --- 995 --- set cc=+1 " highlight column after 'textwidth' 996 --- set cc=+1,+2,+3 " highlight three columns after 'textwidth' 997 --- hi ColorColumn ctermbg=lightgrey guibg=lightgrey 998 --- ``` 999 --- 1000 --- When 'textwidth' is zero then the items with '-' and '+' are not used. 1001 --- A maximum of 256 columns are highlighted. 1002 --- 1003 --- @type string 1004 vim.o.colorcolumn = "" 1005 vim.o.cc = vim.o.colorcolumn 1006 vim.wo.colorcolumn = vim.o.colorcolumn 1007 vim.wo.cc = vim.wo.colorcolumn 1008 1009 --- Number of columns of the screen. Normally this is set by the terminal 1010 --- initialization and does not have to be set by hand. 1011 --- When Vim is running in the GUI or in a resizable window, setting this 1012 --- option will cause the window size to be changed. When you only want 1013 --- to use the size for the GUI, put the command in your `ginit.vim` file. 1014 --- When you set this option and Vim is unable to change the physical 1015 --- number of columns of the display, the display may be messed up. For 1016 --- the GUI it is always possible and Vim limits the number of columns to 1017 --- what fits on the screen. You can use this command to get the widest 1018 --- window possible: 1019 --- 1020 --- ```vim 1021 --- set columns=9999 1022 --- ``` 1023 --- Minimum value is 12, maximum value is 10000. 1024 --- 1025 --- @type integer 1026 vim.o.columns = 80 1027 vim.o.co = vim.o.columns 1028 vim.go.columns = vim.o.columns 1029 vim.go.co = vim.go.columns 1030 1031 --- A comma-separated list of strings that can start a comment line. See 1032 --- `format-comments`. See `option-backslash` about using backslashes to 1033 --- insert a space. 1034 --- 1035 --- @type string 1036 vim.o.comments = "s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-,fb:•" 1037 vim.o.com = vim.o.comments 1038 vim.bo.comments = vim.o.comments 1039 vim.bo.com = vim.bo.comments 1040 1041 --- A template for a comment. The "%s" in the value is replaced with the 1042 --- comment text, and should be padded with a space when possible. 1043 --- Used for `commenting` and to add markers for folding, see `fold-marker`. 1044 --- 1045 --- @type string 1046 vim.o.commentstring = "" 1047 vim.o.cms = vim.o.commentstring 1048 vim.bo.commentstring = vim.o.commentstring 1049 vim.bo.cms = vim.bo.commentstring 1050 1051 --- This option controls how completion `ins-completion` behaves when 1052 --- using CTRL-P, CTRL-N, or `ins-autocompletion`. It is also used for 1053 --- whole-line completion `i_CTRL-X_CTRL-L`. It indicates the type of 1054 --- completion and the places to scan. It is a comma-separated list of 1055 --- flags: 1056 --- . scan the current buffer ('wrapscan' is ignored) 1057 --- w scan buffers from other windows 1058 --- b scan other loaded buffers that are in the buffer list 1059 --- u scan the unloaded buffers that are in the buffer list 1060 --- U scan the buffers that are not in the buffer list 1061 --- k scan the files given with the 'dictionary' option 1062 --- kspell use the currently active spell checking `spell` 1063 --- k{dict} scan the file {dict}. Several "k" flags can be given, 1064 --- patterns are valid too. For example: 1065 --- 1066 --- ```vim 1067 --- set cpt=k/usr/dict/*,k~/spanish 1068 --- ``` 1069 --- s scan the files given with the 'thesaurus' option 1070 --- s{tsr} scan the file {tsr}. Several "s" flags can be given, patterns 1071 --- are valid too. 1072 --- i scan current and included files 1073 --- d scan current and included files for defined name or macro 1074 --- `i_CTRL-X_CTRL-D` 1075 --- ] tag completion 1076 --- t same as "]" 1077 --- f scan the buffer names (as opposed to buffer contents) 1078 --- F{func} call the function {func}. Multiple "F" flags may be 1079 --- specified. Refer to `complete-functions` for details on how 1080 --- the function is invoked and what it should return. The value 1081 --- can be the name of a function or a `Funcref`. For `Funcref` 1082 --- values, spaces must be escaped with a backslash ('\'), and 1083 --- commas with double backslashes ('\\') (see `option-backslash`). 1084 --- Unlike other sources, functions can provide completions 1085 --- starting from a non-keyword character before the cursor, and 1086 --- their start position for replacing text may differ from other 1087 --- sources. If the Dict returned by the {func} includes 1088 --- `{"refresh": "always"}`, the function will be invoked again 1089 --- whenever the leading text changes. 1090 --- If generating matches is potentially slow, call 1091 --- `complete_check()` periodically to keep Vim responsive. This 1092 --- is especially important for `ins-autocompletion`. 1093 --- F equivalent to using "F{func}", where the function is taken 1094 --- from the 'completefunc' option. 1095 --- o equivalent to using "F{func}", where the function is taken 1096 --- from the 'omnifunc' option. 1097 --- 1098 --- Unloaded buffers are not loaded, thus their autocmds `:autocmd` are 1099 --- not executed, this may lead to unexpected completions from some files 1100 --- (gzipped files for example). Unloaded buffers are not scanned for 1101 --- whole-line completion. 1102 --- 1103 --- CTRL-N, CTRL-P, and `ins-autocompletion` can be used for any 1104 --- 'iskeyword'-based completion (dictionary `i_CTRL-X_CTRL-K`, included 1105 --- patterns `i_CTRL-X_CTRL-I`, tags `i_CTRL-X_CTRL-]`, and normal 1106 --- expansions). With the "F" and "o" flags in 'complete', non-keywords 1107 --- can also be completed. 1108 --- 1109 --- An optional match limit can be specified for a completion source by 1110 --- appending a caret ("^") followed by a {count} to the source flag. 1111 --- For example: ".^9,w,u,t^5" limits matches from the current buffer to 9 1112 --- and from tags to 5. Other sources remain unlimited. 1113 --- Note: The match limit takes effect only during forward completion 1114 --- (CTRL-N) and is ignored during backward completion (CTRL-P). 1115 --- 1116 --- @type string 1117 vim.o.complete = ".,w,b,u,t" 1118 vim.o.cpt = vim.o.complete 1119 vim.bo.complete = vim.o.complete 1120 vim.bo.cpt = vim.bo.complete 1121 1122 --- This option specifies a function to be used for Insert mode completion 1123 --- with CTRL-X CTRL-U. `i_CTRL-X_CTRL-U` 1124 --- See `complete-functions` for an explanation of how the function is 1125 --- invoked and what it should return. The value can be the name of a 1126 --- function, a `lambda` or a `Funcref`. See `option-value-function` for 1127 --- more information. 1128 --- This option cannot be set from a `modeline` or in the `sandbox`, for 1129 --- security reasons. 1130 --- 1131 --- @type string 1132 vim.o.completefunc = "" 1133 vim.o.cfu = vim.o.completefunc 1134 vim.bo.completefunc = vim.o.completefunc 1135 vim.bo.cfu = vim.bo.completefunc 1136 1137 --- A comma-separated list of strings that controls the alignment and 1138 --- display order of items in the popup menu during Insert mode 1139 --- completion. The supported values are "abbr", "kind", and "menu". 1140 --- These values allow customizing how `complete-items` are shown in the 1141 --- popup menu. Note: must always contain those three values in any 1142 --- order. 1143 --- 1144 --- @type string 1145 vim.o.completeitemalign = "abbr,kind,menu" 1146 vim.o.cia = vim.o.completeitemalign 1147 vim.go.completeitemalign = vim.o.completeitemalign 1148 vim.go.cia = vim.go.completeitemalign 1149 1150 --- A comma-separated list of options for Insert mode completion 1151 --- `ins-completion`. The supported values are: 1152 --- 1153 --- fuzzy Enable `fuzzy-matching` for completion candidates. This 1154 --- allows for more flexible and intuitive matching, where 1155 --- characters can be skipped and matches can be found even 1156 --- if the exact sequence is not typed (disabled for thesaurus 1157 --- completion `compl-thesaurus`). 1158 --- 1159 --- longest 1160 --- When 'autocomplete' is not active, only the longest common 1161 --- prefix of the matches is inserted (disabled for thesaurus 1162 --- completion `compl-thesaurus`). If the popup menu is 1163 --- displayed, you can use CTRL-L to add more characters. 1164 --- Whether case is ignored depends on the type of completion. 1165 --- For buffer text the 'ignorecase' option applies. 1166 --- 1167 --- When 'autocomplete' is active and no completion item is 1168 --- selected, the longest common prefix of the matches is 1169 --- inserted after the cursor. The prefix is taken either 1170 --- from all displayed items or only from items in the current 1171 --- buffer. The inserted text is highlighted with 1172 --- `hl-PreInsert`, and the cursor position does not change 1173 --- (similar to `"preinsert"`). Press CTRL-Y to accept. 1174 --- See also `preinserted()`. 1175 --- 1176 --- menu Use a popup menu to show the possible completions. The 1177 --- menu is only shown when there is more than one match and 1178 --- sufficient colors are available. `ins-completion-menu` 1179 --- 1180 --- menuone Use the popup menu also when there is only one match. 1181 --- Useful when there is additional information about the 1182 --- match, e.g., what file it comes from. 1183 --- 1184 --- nearest Matches are listed based on their proximity to the cursor 1185 --- position, unlike the default behavior, which only 1186 --- considers proximity for matches appearing below the 1187 --- cursor. This applies only to matches from the current 1188 --- buffer. No effect if "fuzzy" is present. 1189 --- 1190 --- noinsert Do not insert any text for a match until the user selects 1191 --- a match from the menu. Only works in combination with 1192 --- "menu" or "menuone". No effect if "longest" is present. 1193 --- 1194 --- noselect Same as "noinsert", except that no menu item is 1195 --- pre-selected. If both "noinsert" and "noselect" are 1196 --- present, "noselect" takes precedence. This is enabled 1197 --- automatically when 'autocomplete' is on, unless 1198 --- "preinsert" is also enabled. 1199 --- 1200 --- nosort Disable sorting of completion candidates based on fuzzy 1201 --- scores when "fuzzy" is enabled. Candidates will appear 1202 --- in their original order. 1203 --- 1204 --- popup Show extra information about the currently selected 1205 --- completion in a popup window. Only works in combination 1206 --- with "menu" or "menuone". Overrides "preview". 1207 --- 1208 --- preinsert 1209 --- Inserts the text of the first completion candidate beyond 1210 --- the current leader, highlighted with `hl-PreInsert`. 1211 --- The cursor does not move. 1212 --- Requires "fuzzy" to be unset, and either "menuone" in 1213 --- 'completeopt' or 'autocomplete' enabled. When 1214 --- 'autocomplete' is enabled, this does not work if 1215 --- 'ignorecase' is set without 'infercase'. 1216 --- See also `preinserted()`. 1217 --- 1218 --- preview Show extra information about the currently selected 1219 --- completion in the preview window. Only works in 1220 --- combination with "menu" or "menuone". 1221 --- 1222 --- Only "fuzzy", "longest", "popup", "preinsert" and "preview" have an 1223 --- effect when 'autocomplete' is enabled. 1224 --- 1225 --- This option does not apply to `cmdline-completion`. See 'wildoptions' 1226 --- for that. 1227 --- 1228 --- @type string 1229 vim.o.completeopt = "menu,popup" 1230 vim.o.cot = vim.o.completeopt 1231 vim.bo.completeopt = vim.o.completeopt 1232 vim.bo.cot = vim.bo.completeopt 1233 vim.go.completeopt = vim.o.completeopt 1234 vim.go.cot = vim.go.completeopt 1235 1236 --- only modifiable in MS-Windows 1237 --- When this option is set it overrules 'shellslash' for completion: 1238 --- - When this option is set to "slash", a forward slash is used for path 1239 --- completion in insert mode. This is useful when editing HTML tag, or 1240 --- Makefile with 'noshellslash' on MS-Windows. 1241 --- - When this option is set to "backslash", backslash is used. This is 1242 --- useful when editing a batch file with 'shellslash' set on 1243 --- MS-Windows. 1244 --- - When this option is empty, same character is used as for 1245 --- 'shellslash'. 1246 --- For Insert mode completion the buffer-local value is used. For 1247 --- command line completion the global value is used. 1248 --- 1249 --- @type ''|'slash'|'backslash' 1250 vim.o.completeslash = "" 1251 vim.o.csl = vim.o.completeslash 1252 vim.bo.completeslash = vim.o.completeslash 1253 vim.bo.csl = vim.bo.completeslash 1254 1255 --- Like 'autocompletetimeout', but applies to `i_CTRL-N` and `i_CTRL-P` 1256 --- completion. Value of 0 disables the timeout; positive values allowed. 1257 --- 1258 --- @type integer 1259 vim.o.completetimeout = 0 1260 vim.o.cto = vim.o.completetimeout 1261 vim.go.completetimeout = vim.o.completetimeout 1262 vim.go.cto = vim.go.completetimeout 1263 1264 --- Sets the modes in which text in the cursor line can also be concealed. 1265 --- When the current mode is listed then concealing happens just like in 1266 --- other lines. 1267 --- n Normal mode 1268 --- v Visual mode 1269 --- i Insert mode 1270 --- c Command line editing, for 'incsearch' 1271 --- 1272 --- 'v' applies to all lines in the Visual area, not only the cursor. 1273 --- A useful value is "nc". This is used in help files. So long as you 1274 --- are moving around text is concealed, but when starting to insert text 1275 --- or selecting a Visual area the concealed text is displayed, so that 1276 --- you can see what you are doing. 1277 --- Keep in mind that the cursor position is not always where it's 1278 --- displayed. E.g., when moving vertically it may change column. 1279 --- 1280 --- @type string 1281 vim.o.concealcursor = "" 1282 vim.o.cocu = vim.o.concealcursor 1283 vim.wo.concealcursor = vim.o.concealcursor 1284 vim.wo.cocu = vim.wo.concealcursor 1285 1286 --- Determine how text with the "conceal" syntax attribute `:syn-conceal` 1287 --- is shown: 1288 --- 1289 --- Value Effect ~ 1290 --- 0 Text is shown normally 1291 --- 1 Each block of concealed text is replaced with one 1292 --- character. If the syntax item does not have a custom 1293 --- replacement character defined (see `:syn-cchar`) the 1294 --- character defined in 'listchars' is used. 1295 --- It is highlighted with the "Conceal" highlight group. 1296 --- 2 Concealed text is completely hidden unless it has a 1297 --- custom replacement character defined (see 1298 --- `:syn-cchar`). 1299 --- 3 Concealed text is completely hidden. 1300 --- 1301 --- Note: in the cursor line concealed text is not hidden, so that you can 1302 --- edit and copy the text. This can be changed with the 'concealcursor' 1303 --- option. 1304 --- 1305 --- @type integer 1306 vim.o.conceallevel = 0 1307 vim.o.cole = vim.o.conceallevel 1308 vim.wo.conceallevel = vim.o.conceallevel 1309 vim.wo.cole = vim.wo.conceallevel 1310 1311 --- When 'confirm' is on, certain operations that would normally 1312 --- fail because of unsaved changes to a buffer, e.g. ":q" and ":e", 1313 --- instead raise a dialog asking if you wish to save the current 1314 --- file(s). You can still use a ! to unconditionally `abandon` a buffer. 1315 --- If 'confirm' is off you can still activate confirmation for one 1316 --- command only (this is most useful in mappings) with the `:confirm` 1317 --- command. 1318 --- Also see the `confirm()` function and the 'v' flag in 'guioptions'. 1319 --- 1320 --- @type boolean 1321 vim.o.confirm = false 1322 vim.o.cf = vim.o.confirm 1323 vim.go.confirm = vim.o.confirm 1324 vim.go.cf = vim.go.confirm 1325 1326 --- Copy the structure of the existing lines indent when autoindenting a 1327 --- new line. Normally the new indent is reconstructed by a series of 1328 --- tabs followed by spaces as required (unless 'expandtab' is enabled, 1329 --- in which case only spaces are used). Enabling this option makes the 1330 --- new line copy whatever characters were used for indenting on the 1331 --- existing line. 'expandtab' has no effect on these characters, a Tab 1332 --- remains a Tab. If the new indent is greater than on the existing 1333 --- line, the remaining space is filled in the normal manner. 1334 --- See 'preserveindent'. 1335 --- 1336 --- @type boolean 1337 vim.o.copyindent = false 1338 vim.o.ci = vim.o.copyindent 1339 vim.bo.copyindent = vim.o.copyindent 1340 vim.bo.ci = vim.bo.copyindent 1341 1342 --- A sequence of single character flags. When a character is present 1343 --- this indicates Vi-compatible behavior. This is used for things where 1344 --- not being Vi-compatible is mostly or sometimes preferred. 1345 --- 'cpoptions' stands for "compatible-options". 1346 --- Commas can be added for readability. 1347 --- To avoid problems with flags that are added in the future, use the 1348 --- "+=" and "-=" feature of ":set" `add-option-flags`. 1349 --- 1350 --- contains behavior ~ 1351 --- *cpo-a* 1352 --- a When included, a ":read" command with a file name 1353 --- argument will set the alternate file name for the 1354 --- current window. 1355 --- *cpo-A* 1356 --- A When included, a ":write" command with a file name 1357 --- argument will set the alternate file name for the 1358 --- current window. 1359 --- *cpo-b* 1360 --- b "\|" in a ":map" command is recognized as the end of 1361 --- the map command. The '\' is included in the mapping, 1362 --- the text after the '|' is interpreted as the next 1363 --- command. Use a CTRL-V instead of a backslash to 1364 --- include the '|' in the mapping. Applies to all 1365 --- mapping, abbreviation, menu and autocmd commands. 1366 --- See also `map_bar`. 1367 --- *cpo-B* 1368 --- B A backslash has no special meaning in mappings, 1369 --- abbreviations, user commands and the "to" part of the 1370 --- menu commands. Remove this flag to be able to use a 1371 --- backslash like a CTRL-V. For example, the command 1372 --- ":map X \\<Esc>" results in X being mapped to: 1373 --- 'B' included: "\^[" (^[ is a real <Esc>) 1374 --- 'B' excluded: "<Esc>" (5 characters) 1375 --- *cpo-c* 1376 --- c Searching continues at the end of any match at the 1377 --- cursor position, but not further than the start of the 1378 --- next line. When not present searching continues 1379 --- one character from the cursor position. With 'c' 1380 --- "abababababab" only gets three matches when repeating 1381 --- "/abab", without 'c' there are five matches. 1382 --- *cpo-C* 1383 --- C Do not concatenate sourced lines that start with a 1384 --- backslash. See `line-continuation`. 1385 --- *cpo-d* 1386 --- d Using "./" in the 'tags' option doesn't mean to use 1387 --- the tags file relative to the current file, but the 1388 --- tags file in the current directory. 1389 --- *cpo-D* 1390 --- D Can't use CTRL-K to enter a digraph after Normal mode 1391 --- commands with a character argument, like `r`, `f` and 1392 --- `t`. 1393 --- *cpo-e* 1394 --- e When executing a register with ":@r", always add a 1395 --- <CR> to the last line, also when the register is not 1396 --- linewise. If this flag is not present, the register 1397 --- is not linewise and the last line does not end in a 1398 --- <CR>, then the last line is put on the command-line 1399 --- and can be edited before hitting <CR>. 1400 --- *cpo-E* 1401 --- E It is an error when using "y", "d", "c", "g~", "gu" or 1402 --- "gU" on an Empty region. The operators only work when 1403 --- at least one character is to be operated on. Example: 1404 --- This makes "y0" fail in the first column. 1405 --- *cpo-f* 1406 --- f When included, a ":read" command with a file name 1407 --- argument will set the file name for the current 1408 --- buffer, if the current buffer doesn't have a file name 1409 --- yet. 1410 --- *cpo-F* 1411 --- F When included, a ":write" command with a file name 1412 --- argument will set the file name for the current 1413 --- buffer, if the current buffer doesn't have a file name 1414 --- yet. Also see `cpo-P`. 1415 --- *cpo-i* 1416 --- i When included, interrupting the reading of a file will 1417 --- leave it modified. 1418 --- *cpo-I* 1419 --- I When moving the cursor up or down just after inserting 1420 --- indent for 'autoindent', do not delete the indent. 1421 --- *cpo-J* 1422 --- J A `sentence` has to be followed by two spaces after 1423 --- the '.', '!' or '?'. A <Tab> is not recognized as 1424 --- white space. 1425 --- *cpo-K* 1426 --- K Don't wait for a key code to complete when it is 1427 --- halfway through a mapping. This breaks mapping 1428 --- <F1><F1> when only part of the second <F1> has been 1429 --- read. It enables cancelling the mapping by typing 1430 --- <F1><Esc>. 1431 --- *cpo-l* 1432 --- l Backslash in a [] range in a search pattern is taken 1433 --- literally, only "\]", "\^", "\-" and "\\" are special. 1434 --- See `/[]` 1435 --- 'l' included: "/[ \t]" finds <Space>, '\' and 't' 1436 --- 'l' excluded: "/[ \t]" finds <Space> and <Tab> 1437 --- *cpo-L* 1438 --- L When the 'list' option is set, 'wrapmargin', 1439 --- 'textwidth', 'softtabstop' and Virtual Replace mode 1440 --- (see `gR`) count a <Tab> as two characters, instead of 1441 --- the normal behavior of a <Tab>. 1442 --- *cpo-m* 1443 --- m When included, a showmatch will always wait half a 1444 --- second. When not included, a showmatch will wait half 1445 --- a second or until a character is typed. 'showmatch' 1446 --- *cpo-M* 1447 --- M When excluded, "%" matching will take backslashes into 1448 --- account. Thus in "( \( )" and "\( ( \)" the outer 1449 --- parenthesis match. When included "%" ignores 1450 --- backslashes, which is Vi compatible. 1451 --- *cpo-n* 1452 --- n When included, the column used for 'number' and 1453 --- 'relativenumber' will also be used for text of wrapped 1454 --- lines. 1455 --- *cpo-o* 1456 --- o Line offset to search command is not remembered for 1457 --- next search. 1458 --- *cpo-O* 1459 --- O Don't complain if a file is being overwritten, even 1460 --- when it didn't exist when editing it. This is a 1461 --- protection against a file unexpectedly created by 1462 --- someone else. Vi didn't complain about this. 1463 --- *cpo-P* 1464 --- P When included, a ":write" command that appends to a 1465 --- file will set the file name for the current buffer, if 1466 --- the current buffer doesn't have a file name yet and 1467 --- the 'F' flag is also included `cpo-F`. 1468 --- *cpo-q* 1469 --- q When joining multiple lines leave the cursor at the 1470 --- position where it would be when joining two lines. 1471 --- *cpo-r* 1472 --- r Redo ("." command) uses "/" to repeat a search 1473 --- command, instead of the actually used search string. 1474 --- *cpo-R* 1475 --- R Remove marks from filtered lines. Without this flag 1476 --- marks are kept like `:keepmarks` was used. 1477 --- *cpo-s* 1478 --- s Set buffer options when entering the buffer for the 1479 --- first time. This is like it is in Vim version 3.0. 1480 --- And it is the default. If not present the options are 1481 --- set when the buffer is created. 1482 --- *cpo-S* 1483 --- S Set buffer options always when entering a buffer 1484 --- (except 'readonly', 'fileformat', 'filetype' and 1485 --- 'syntax'). This is the (most) Vi compatible setting. 1486 --- The options are set to the values in the current 1487 --- buffer. When you change an option and go to another 1488 --- buffer, the value is copied. Effectively makes the 1489 --- buffer options global to all buffers. 1490 --- 1491 --- 's' 'S' copy buffer options 1492 --- no no when buffer created 1493 --- yes no when buffer first entered (default) 1494 --- X yes each time when buffer entered (vi comp.) 1495 --- *cpo-t* 1496 --- t Search pattern for the tag command is remembered for 1497 --- "n" command. Otherwise Vim only puts the pattern in 1498 --- the history for search pattern, but doesn't change the 1499 --- last used search pattern. 1500 --- *cpo-u* 1501 --- u Undo is Vi compatible. See `undo-two-ways`. 1502 --- *cpo-v* 1503 --- v Backspaced characters remain visible on the screen in 1504 --- Insert mode. Without this flag the characters are 1505 --- erased from the screen right away. With this flag the 1506 --- screen newly typed text overwrites backspaced 1507 --- characters. 1508 --- *cpo-W* 1509 --- W Don't overwrite a readonly file. When omitted, ":w!" 1510 --- overwrites a readonly file, if possible. 1511 --- *cpo-x* 1512 --- x <Esc> on the command-line executes the command-line. 1513 --- The default in Vim is to abandon the command-line, 1514 --- because <Esc> normally aborts a command. `c_<Esc>` 1515 --- *cpo-X* 1516 --- X When using a count with "R" the replaced text is 1517 --- deleted only once. Also when repeating "R" with "." 1518 --- and a count. 1519 --- *cpo-y* 1520 --- y A yank command can be redone with ".". Think twice if 1521 --- you really want to use this, it may break some 1522 --- plugins, since most people expect "." to only repeat a 1523 --- change. 1524 --- *cpo-Z* 1525 --- Z When using "w!" while the 'readonly' option is set, 1526 --- don't reset 'readonly'. 1527 --- *cpo-!* 1528 --- ! When redoing a filter command, use the last used 1529 --- external command, whatever it was. Otherwise the last 1530 --- used -filter- command is used. 1531 --- *cpo-$* 1532 --- $ When making a change to one line, don't redisplay the 1533 --- line, but put a '$' at the end of the changed text. 1534 --- The changed text will be overwritten when you type the 1535 --- new text. The line is redisplayed if you type any 1536 --- command that moves the cursor from the insertion 1537 --- point. 1538 --- *cpo-%* 1539 --- % Vi-compatible matching is done for the "%" command. 1540 --- Does not recognize "#if", "#endif", etc. 1541 --- Does not recognize "/*" and "*/". 1542 --- Parens inside single and double quotes are also 1543 --- counted, causing a string that contains a paren to 1544 --- disturb the matching. For example, in a line like 1545 --- "if (strcmp("foo(", s))" the first paren does not 1546 --- match the last one. When this flag is not included, 1547 --- parens inside single and double quotes are treated 1548 --- specially. When matching a paren outside of quotes, 1549 --- everything inside quotes is ignored. When matching a 1550 --- paren inside quotes, it will find the matching one (if 1551 --- there is one). This works very well for C programs. 1552 --- This flag is also used for other features, such as 1553 --- C-indenting. 1554 --- *cpo-+* 1555 --- + When included, a ":write file" command will reset the 1556 --- 'modified' flag of the buffer, even though the buffer 1557 --- itself may still be different from its file. 1558 --- *cpo->* 1559 --- > When appending to a register, put a line break before 1560 --- the appended text. 1561 --- *cpo-;* 1562 --- ; When using `,` or `;` to repeat the last `t` search 1563 --- and the cursor is right in front of the searched 1564 --- character, the cursor won't move. When not included, 1565 --- the cursor would skip over it and jump to the 1566 --- following occurrence. 1567 --- *cpo-~* 1568 --- ~ When included, don't resolve symbolic links when 1569 --- changing directory with `:cd`, `:lcd`, or `:tcd`. 1570 --- This preserves the symbolic link path in buffer names 1571 --- and when displaying the current directory. When 1572 --- excluded (default), symbolic links are resolved to 1573 --- their target paths. 1574 --- *cpo-_* 1575 --- _ When using `cw` on a word, do not include the 1576 --- whitespace following the word in the motion. 1577 --- 1578 --- @type string 1579 vim.o.cpoptions = "aABceFs_" 1580 vim.o.cpo = vim.o.cpoptions 1581 vim.go.cpoptions = vim.o.cpoptions 1582 vim.go.cpo = vim.go.cpoptions 1583 1584 --- When this option is set, as the cursor in the current 1585 --- window moves other cursorbound windows (windows that also have 1586 --- this option set) move their cursors to the corresponding line and 1587 --- column. This option is useful for viewing the 1588 --- differences between two versions of a file (see 'diff'); in diff mode, 1589 --- inserted and deleted lines (though not characters within a line) are 1590 --- taken into account. 1591 --- 1592 --- @type boolean 1593 vim.o.cursorbind = false 1594 vim.o.crb = vim.o.cursorbind 1595 vim.wo.cursorbind = vim.o.cursorbind 1596 vim.wo.crb = vim.wo.cursorbind 1597 1598 --- Highlight the screen column of the cursor with CursorColumn 1599 --- `hl-CursorColumn`. Useful to align text. Will make screen redrawing 1600 --- slower. 1601 --- If you only want the highlighting in the current window you can use 1602 --- these autocommands: 1603 --- 1604 --- ```vim 1605 --- au WinLeave * set nocursorline nocursorcolumn 1606 --- au WinEnter * set cursorline cursorcolumn 1607 --- ``` 1608 --- 1609 --- 1610 --- @type boolean 1611 vim.o.cursorcolumn = false 1612 vim.o.cuc = vim.o.cursorcolumn 1613 vim.wo.cursorcolumn = vim.o.cursorcolumn 1614 vim.wo.cuc = vim.wo.cursorcolumn 1615 1616 --- Highlight the text line of the cursor with CursorLine `hl-CursorLine`. 1617 --- Useful to easily spot the cursor. Will make screen redrawing slower. 1618 --- When Visual mode is active the highlighting isn't used to make it 1619 --- easier to see the selected text. 1620 --- 1621 --- @type boolean 1622 vim.o.cursorline = false 1623 vim.o.cul = vim.o.cursorline 1624 vim.wo.cursorline = vim.o.cursorline 1625 vim.wo.cul = vim.wo.cursorline 1626 1627 --- Comma-separated list of settings for how 'cursorline' is displayed. 1628 --- Valid values: 1629 --- "line" Highlight the text line of the cursor with 1630 --- CursorLine `hl-CursorLine`. 1631 --- "screenline" Highlight only the screen line of the cursor with 1632 --- CursorLine `hl-CursorLine`. 1633 --- "number" Highlight the line number of the cursor with 1634 --- CursorLineNr `hl-CursorLineNr`. 1635 --- 1636 --- Special value: 1637 --- "both" Alias for the values "line,number". 1638 --- 1639 --- "line" and "screenline" cannot be used together. 1640 --- 1641 --- @type string 1642 vim.o.cursorlineopt = "both" 1643 vim.o.culopt = vim.o.cursorlineopt 1644 vim.wo.cursorlineopt = vim.o.cursorlineopt 1645 vim.wo.culopt = vim.wo.cursorlineopt 1646 1647 --- These values can be used: 1648 --- msg Error messages that would otherwise be omitted will be given 1649 --- anyway. 1650 --- throw Error messages that would otherwise be omitted will be given 1651 --- anyway and also throw an exception and set `v:errmsg`. 1652 --- beep A message will be given when otherwise only a beep would be 1653 --- produced. 1654 --- The values can be combined, separated by a comma. 1655 --- "msg" and "throw" are useful for debugging 'foldexpr', 'formatexpr' or 1656 --- 'indentexpr'. 1657 --- 1658 --- @type string 1659 vim.o.debug = "" 1660 vim.go.debug = vim.o.debug 1661 1662 --- Pattern to be used to find a macro definition. It is a search 1663 --- pattern, just like for the "/" command. This option is used for the 1664 --- commands like "[i" and "[d" `include-search`. The 'isident' option is 1665 --- used to recognize the defined name after the match: 1666 --- ``` 1667 --- {match with 'define'}{non-ID chars}{defined name}{non-ID char} 1668 --- ``` 1669 --- See `option-backslash` about inserting backslashes to include a space 1670 --- or backslash. 1671 --- For C++ this value would be useful, to include const type declarations: 1672 --- ``` 1673 --- ^\(#\s*define\|[a-z]*\s*const\s*[a-z]*\) 1674 --- ``` 1675 --- You can also use "\ze" just before the name and continue the pattern 1676 --- to check what is following. E.g. for Javascript, if a function is 1677 --- defined with `func_name = function(args)`: 1678 --- ``` 1679 --- ^\s*\ze\i\+\s*=\s*function( 1680 --- ``` 1681 --- If the function is defined with `func_name : function() {...`: 1682 --- ``` 1683 --- ^\s*\ze\i\+\s*[:]\s*(*function\s*( 1684 --- ``` 1685 --- When using the ":set" command, you need to double the backslashes! 1686 --- To avoid that use `:let` with a single quote string: 1687 --- 1688 --- ```vim 1689 --- let &l:define = '^\s*\ze\k\+\s*=\s*function(' 1690 --- ``` 1691 --- 1692 --- 1693 --- @type string 1694 vim.o.define = "" 1695 vim.o.def = vim.o.define 1696 vim.bo.define = vim.o.define 1697 vim.bo.def = vim.bo.define 1698 vim.go.define = vim.o.define 1699 vim.go.def = vim.go.define 1700 1701 --- If editing Unicode and this option is set, backspace and Normal mode 1702 --- "x" delete each combining character on its own. When it is off (the 1703 --- default) the character along with its combining characters are 1704 --- deleted. 1705 --- Note: When 'delcombine' is set "xx" may work differently from "2x"! 1706 --- 1707 --- This is useful for Arabic, Hebrew and many other languages where one 1708 --- may have combining characters overtop of base characters, and want 1709 --- to remove only the combining ones. 1710 --- 1711 --- @type boolean 1712 vim.o.delcombine = false 1713 vim.o.deco = vim.o.delcombine 1714 vim.go.delcombine = vim.o.delcombine 1715 vim.go.deco = vim.go.delcombine 1716 1717 --- List of file names, separated by commas, that are used to lookup words 1718 --- for keyword completion commands `i_CTRL-X_CTRL-K`. Each file should 1719 --- contain a list of words. This can be one word per line, or several 1720 --- words per line, separated by non-keyword characters (white space is 1721 --- preferred). Maximum line length is 510 bytes. 1722 --- 1723 --- When this option is empty or an entry "spell" is present, and spell 1724 --- checking is enabled, words in the word lists for the currently active 1725 --- 'spelllang' are used. See `spell`. 1726 --- 1727 --- To include a comma in a file name precede it with a backslash. Spaces 1728 --- after a comma are ignored, otherwise spaces are included in the file 1729 --- name. See `option-backslash` about using backslashes. 1730 --- Environment variables are expanded `:set_env`. 1731 --- This has nothing to do with the `Dictionary` variable type. 1732 --- Where to find a list of words? 1733 --- - BSD/macOS include the "/usr/share/dict/words" file. 1734 --- - Try "apt install spell" to get the "/usr/share/dict/words" file on 1735 --- apt-managed systems (Debian/Ubuntu). 1736 --- The use of `:set+=` and `:set-=` is preferred when adding or removing 1737 --- directories from the list. This avoids problems when a future version 1738 --- uses another default. 1739 --- Backticks cannot be used in this option for security reasons. 1740 --- 1741 --- @type string 1742 vim.o.dictionary = "" 1743 vim.o.dict = vim.o.dictionary 1744 vim.bo.dictionary = vim.o.dictionary 1745 vim.bo.dict = vim.bo.dictionary 1746 vim.go.dictionary = vim.o.dictionary 1747 vim.go.dict = vim.go.dictionary 1748 1749 --- Join the current window in the group of windows that shows differences 1750 --- between files. See `diff-mode`. 1751 --- 1752 --- @type boolean 1753 vim.o.diff = false 1754 vim.wo.diff = vim.o.diff 1755 1756 --- List of {address} in each buffer, separated by commas, that are 1757 --- considered anchors when used for diffing. It's valid to specify "$+1" 1758 --- for 1 past the last line. "%" cannot be used for this option. There 1759 --- can be at most 20 anchors set for each buffer. 1760 --- 1761 --- Each anchor line splits the buffer (the split happens above the 1762 --- anchor), with each part being diff'ed separately before the final 1763 --- result is joined. When more than one {address} are provided, the 1764 --- anchors will be sorted internally by line number. If using buffer 1765 --- local options, each buffer should have the same number of anchors 1766 --- (extra anchors will be ignored). This option is only used when 1767 --- 'diffopt' has "anchor" set. See `diff-anchors` for more details and 1768 --- examples. 1769 --- *E1550* 1770 --- If some of the {address} do not resolve to a line in each buffer (e.g. 1771 --- a pattern search that does not match anything), none of the anchors 1772 --- will be used. 1773 --- *E1562* 1774 --- Diff anchors can only be used when there are no hidden diff buffers. 1775 --- 1776 --- @type string 1777 vim.o.diffanchors = "" 1778 vim.o.dia = vim.o.diffanchors 1779 vim.bo.diffanchors = vim.o.diffanchors 1780 vim.bo.dia = vim.bo.diffanchors 1781 vim.go.diffanchors = vim.o.diffanchors 1782 vim.go.dia = vim.go.diffanchors 1783 1784 --- Expression which is evaluated to obtain a diff file (either ed-style 1785 --- or unified-style) from two versions of a file. See `diff-diffexpr`. 1786 --- This option cannot be set from a `modeline` or in the `sandbox`, for 1787 --- security reasons. 1788 --- 1789 --- @type string 1790 vim.o.diffexpr = "" 1791 vim.o.dex = vim.o.diffexpr 1792 vim.go.diffexpr = vim.o.diffexpr 1793 vim.go.dex = vim.go.diffexpr 1794 1795 --- Option settings for diff mode. It can consist of the following items. 1796 --- All are optional. Items must be separated by a comma. 1797 --- 1798 --- algorithm:{text} Use the specified diff algorithm with the 1799 --- internal diff engine. Currently supported 1800 --- algorithms are: 1801 --- myers the default algorithm 1802 --- minimal spend extra time to generate the 1803 --- smallest possible diff 1804 --- patience patience diff algorithm 1805 --- histogram histogram diff algorithm 1806 --- 1807 --- anchor Anchor specific lines in each buffer to be 1808 --- aligned with each other if 'diffanchors' is 1809 --- set. See `diff-anchors`. 1810 --- 1811 --- closeoff When a window is closed where 'diff' is set 1812 --- and there is only one window remaining in the 1813 --- same tab page with 'diff' set, execute 1814 --- `:diffoff` in that window. This undoes a 1815 --- `:diffsplit` command. 1816 --- 1817 --- context:{n} Use a context of {n} lines between a change 1818 --- and a fold that contains unchanged lines. 1819 --- When omitted a context of six lines is used. 1820 --- When using zero the context is actually one, 1821 --- since folds require a line in between, also 1822 --- for a deleted line. Set it to a very large 1823 --- value (999999) to disable folding completely. 1824 --- See `fold-diff`. 1825 --- 1826 --- filler Show filler lines, to keep the text 1827 --- synchronized with a window that has inserted 1828 --- lines at the same position. Mostly useful 1829 --- when windows are side-by-side and 'scrollbind' 1830 --- is set. 1831 --- 1832 --- foldcolumn:{n} Set the 'foldcolumn' option to {n} when 1833 --- starting diff mode. Without this 2 is used. 1834 --- 1835 --- followwrap Follow the 'wrap' option and leave as it is. 1836 --- 1837 --- horizontal Start diff mode with horizontal splits (unless 1838 --- explicitly specified otherwise). 1839 --- 1840 --- hiddenoff Do not use diff mode for a buffer when it 1841 --- becomes hidden. 1842 --- 1843 --- iblank Ignore changes where lines are all blank. 1844 --- Adds the "-B" flag to the "diff" command if 1845 --- 'diffexpr' is empty. Check the documentation 1846 --- of the "diff" command for what this does 1847 --- exactly. 1848 --- NOTE: the diff windows will get out of sync, 1849 --- because no differences between blank lines are 1850 --- taken into account. 1851 --- 1852 --- icase Ignore changes in case of text. "a" and "A" 1853 --- are considered the same. Adds the "-i" flag 1854 --- to the "diff" command if 'diffexpr' is empty. 1855 --- 1856 --- indent-heuristic 1857 --- Use the indent heuristic for the internal 1858 --- diff library. 1859 --- 1860 --- inline:{text} Highlight inline differences within a change. 1861 --- See `view-diffs`. Supported values are: 1862 --- 1863 --- none Do not perform inline highlighting. 1864 --- simple Highlight from first different 1865 --- character to the last one in each 1866 --- line. This is the default if no 1867 --- `inline:` value is set. 1868 --- char Use internal diff to perform a 1869 --- character-wise diff and highlight the 1870 --- difference. 1871 --- word Use internal diff to perform a 1872 --- `word`-wise diff and highlight the 1873 --- difference. Non-alphanumeric 1874 --- multi-byte characters such as emoji 1875 --- and CJK characters are considered 1876 --- individual words. 1877 --- 1878 --- internal Use the internal diff library. This is 1879 --- ignored when 'diffexpr' is set. *E960* 1880 --- When running out of memory when writing a 1881 --- buffer or the diff is larger than 1 GB this 1882 --- item will be ignored for diffs involving that 1883 --- buffer. Set the 'verbose' option to see when 1884 --- this happens. 1885 --- 1886 --- iwhite Ignore changes in amount of white space. Adds 1887 --- the "-b" flag to the "diff" command if 1888 --- 'diffexpr' is empty. Check the documentation 1889 --- of the "diff" command for what this does 1890 --- exactly. It should ignore adding trailing 1891 --- white space, but not leading white space. 1892 --- 1893 --- iwhiteall Ignore all white space changes. Adds 1894 --- the "-w" flag to the "diff" command if 1895 --- 'diffexpr' is empty. Check the documentation 1896 --- of the "diff" command for what this does 1897 --- exactly. 1898 --- 1899 --- iwhiteeol Ignore white space changes at end of line. 1900 --- Adds the "-Z" flag to the "diff" command if 1901 --- 'diffexpr' is empty. Check the documentation 1902 --- of the "diff" command for what this does 1903 --- exactly. 1904 --- 1905 --- linematch:{n} Align and mark changes between the most 1906 --- similar lines between the buffers. When the 1907 --- total number of lines in the diff hunk exceeds 1908 --- {n}, the lines will not be aligned because for 1909 --- very large diff hunks there will be a 1910 --- noticeable lag. A reasonable setting is 1911 --- "linematch:60", as this will enable alignment 1912 --- for a 2 buffer diff hunk of 30 lines each, or 1913 --- a 3 buffer diff hunk of 20 lines each. 1914 --- Implicitly sets "filler" when this is set. 1915 --- 1916 --- vertical Start diff mode with vertical splits (unless 1917 --- explicitly specified otherwise). 1918 --- 1919 --- Examples: 1920 --- 1921 --- ```vim 1922 --- set diffopt=internal,filler,context:4 1923 --- set diffopt= 1924 --- set diffopt=internal,filler,foldcolumn:3 1925 --- set diffopt-=internal " do NOT use the internal diff parser 1926 --- ``` 1927 --- 1928 --- 1929 --- @type string 1930 vim.o.diffopt = "internal,filler,closeoff,indent-heuristic,inline:char,linematch:40" 1931 vim.o.dip = vim.o.diffopt 1932 vim.go.diffopt = vim.o.diffopt 1933 vim.go.dip = vim.go.diffopt 1934 1935 --- Enable the entering of digraphs in Insert mode with {char1} <BS> 1936 --- {char2}. See `digraphs`. 1937 --- 1938 --- @type boolean 1939 vim.o.digraph = false 1940 vim.o.dg = vim.o.digraph 1941 vim.go.digraph = vim.o.digraph 1942 vim.go.dg = vim.go.digraph 1943 1944 --- List of directory names for the swap file, separated with commas. 1945 --- 1946 --- Possible items: 1947 --- - The swap file will be created in the first directory where this is 1948 --- possible. If it is not possible in any directory, but last 1949 --- directory listed in the option does not exist, it is created. 1950 --- - Empty means that no swap file will be used (recovery is 1951 --- impossible!) and no `E303` error will be given. 1952 --- - A directory "." means to put the swap file in the same directory as 1953 --- the edited file. On Unix, a dot is prepended to the file name, so 1954 --- it doesn't show in a directory listing. On MS-Windows the "hidden" 1955 --- attribute is set and a dot prepended if possible. 1956 --- - A directory starting with "./" (or ".\" for MS-Windows) means to put 1957 --- the swap file relative to where the edited file is. The leading "." 1958 --- is replaced with the path name of the edited file. 1959 --- - For Unix and Win32, if a directory ends in two path separators "//", 1960 --- the swap file name will be built from the complete path to the file 1961 --- with all path separators replaced by percent '%' signs (including 1962 --- the colon following the drive letter on Win32). This will ensure 1963 --- file name uniqueness in the preserve directory. 1964 --- On Win32, it is also possible to end with "\\". However, When a 1965 --- separating comma is following, you must use "//", since "\\" will 1966 --- include the comma in the file name. Therefore it is recommended to 1967 --- use '//', instead of '\\'. 1968 --- - Spaces after the comma are ignored, other spaces are considered part 1969 --- of the directory name. To have a space at the start of a directory 1970 --- name, precede it with a backslash. 1971 --- - To include a comma in a directory name precede it with a backslash. 1972 --- - A directory name may end in an ':' or '/'. 1973 --- - Environment variables are expanded `:set_env`. 1974 --- - Careful with '\' characters, type one before a space, type two to 1975 --- get one in the option (see `option-backslash`), for example: 1976 --- 1977 --- ```vim 1978 --- set dir=c:\\tmp,\ dir\\,with\\,commas,\\\ dir\ with\ spaces 1979 --- ``` 1980 --- 1981 --- Editing the same file twice will result in a warning. Using "/tmp" on 1982 --- is discouraged: if the system crashes you lose the swap file. And 1983 --- others on the computer may be able to see the files. 1984 --- Use `:set+=` and `:set-=` when adding or removing directories from the 1985 --- list, this avoids problems if the Nvim default is changed. 1986 --- 1987 --- This option cannot be set from a `modeline` or in the `sandbox`, for 1988 --- security reasons. 1989 --- 1990 --- @type string 1991 vim.o.directory = "$XDG_STATE_HOME/nvim/swap//" 1992 vim.o.dir = vim.o.directory 1993 vim.go.directory = vim.o.directory 1994 vim.go.dir = vim.go.directory 1995 1996 --- Change the way text is displayed. This is a comma-separated list of 1997 --- flags: 1998 --- lastline When included, as much as possible of the last line 1999 --- in a window will be displayed. "@@@" is put in the 2000 --- last columns of the last screen line to indicate the 2001 --- rest of the line is not displayed. 2002 --- truncate Like "lastline", but "@@@" is displayed in the first 2003 --- column of the last screen line. Overrules "lastline". 2004 --- uhex Show unprintable characters hexadecimal as <xx> 2005 --- instead of using ^C and ~C. 2006 --- msgsep Obsolete flag. Allowed but takes no effect. `msgsep` 2007 --- 2008 --- When neither "lastline" nor "truncate" is included, a last line that 2009 --- doesn't fit is replaced with "@" lines. 2010 --- 2011 --- The "@" character can be changed by setting the "lastline" item in 2012 --- 'fillchars'. The character is highlighted with `hl-NonText`. 2013 --- 2014 --- @type string 2015 vim.o.display = "lastline" 2016 vim.o.dy = vim.o.display 2017 vim.go.display = vim.o.display 2018 vim.go.dy = vim.go.display 2019 2020 --- Tells when the 'equalalways' option applies: 2021 --- ver vertically, width of windows is not affected 2022 --- hor horizontally, height of windows is not affected 2023 --- both width and height of windows is affected 2024 --- 2025 --- @type 'both'|'ver'|'hor' 2026 vim.o.eadirection = "both" 2027 vim.o.ead = vim.o.eadirection 2028 vim.go.eadirection = vim.o.eadirection 2029 vim.go.ead = vim.go.eadirection 2030 2031 --- When on all Unicode emoji characters are considered to be full width. 2032 --- This excludes "text emoji" characters, which are normally displayed as 2033 --- single width. However, such "text emoji" are treated as full-width 2034 --- emoji if they are followed by the U+FE0F variant selector. 2035 --- 2036 --- Unfortunately there is no good specification for this and it has been 2037 --- determined on trial-and-error basis. Use the `setcellwidths()` 2038 --- function to change the behavior. 2039 --- 2040 --- @type boolean 2041 vim.o.emoji = true 2042 vim.o.emo = vim.o.emoji 2043 vim.go.emoji = vim.o.emoji 2044 vim.go.emo = vim.go.emoji 2045 2046 --- String-encoding used internally and for `RPC` communication. 2047 --- Always UTF-8. 2048 --- 2049 --- See 'fileencoding' to control file-content encoding. 2050 --- 2051 --- @type string 2052 vim.o.encoding = "utf-8" 2053 vim.o.enc = vim.o.encoding 2054 vim.go.encoding = vim.o.encoding 2055 vim.go.enc = vim.go.encoding 2056 2057 --- Indicates that a CTRL-Z character was found at the end of the file 2058 --- when reading it. Normally only happens when 'fileformat' is "dos". 2059 --- When writing a file and this option is off and the 'binary' option 2060 --- is on, or 'fixeol' option is off, no CTRL-Z will be written at the 2061 --- end of the file. 2062 --- See `eol-and-eof` for example settings. 2063 --- 2064 --- @type boolean 2065 vim.o.endoffile = false 2066 vim.o.eof = vim.o.endoffile 2067 vim.bo.endoffile = vim.o.endoffile 2068 vim.bo.eof = vim.bo.endoffile 2069 2070 --- When writing a file and this option is off and the 'binary' option 2071 --- is on, or 'fixeol' option is off, no <EOL> will be written for the 2072 --- last line in the file. This option is automatically set or reset when 2073 --- starting to edit a new file, depending on whether file has an <EOL> 2074 --- for the last line in the file. Normally you don't have to set or 2075 --- reset this option. 2076 --- When 'binary' is off and 'fixeol' is on the value is not used when 2077 --- writing the file. When 'binary' is on or 'fixeol' is off it is used 2078 --- to remember the presence of a <EOL> for the last line in the file, so 2079 --- that when you write the file the situation from the original file can 2080 --- be kept. But you can change it if you want to. 2081 --- See `eol-and-eof` for example settings. 2082 --- 2083 --- @type boolean 2084 vim.o.endofline = true 2085 vim.o.eol = vim.o.endofline 2086 vim.bo.endofline = vim.o.endofline 2087 vim.bo.eol = vim.bo.endofline 2088 2089 --- When on, all the windows are automatically made the same size after 2090 --- splitting or closing a window. This also happens the moment the 2091 --- option is switched on. When off, splitting a window will reduce the 2092 --- size of the current window and leave the other windows the same. When 2093 --- closing a window the extra lines are given to the window next to it 2094 --- (depending on 'splitbelow' and 'splitright'). 2095 --- When mixing vertically and horizontally split windows, a minimal size 2096 --- is computed and some windows may be larger if there is room. The 2097 --- 'eadirection' option tells in which direction the size is affected. 2098 --- Changing the height and width of a window can be avoided by setting 2099 --- 'winfixheight' and 'winfixwidth', respectively. 2100 --- If a window size is specified when creating a new window sizes are 2101 --- currently not equalized (it's complicated, but may be implemented in 2102 --- the future). 2103 --- 2104 --- @type boolean 2105 vim.o.equalalways = true 2106 vim.o.ea = vim.o.equalalways 2107 vim.go.equalalways = vim.o.equalalways 2108 vim.go.ea = vim.go.equalalways 2109 2110 --- External program to use for "=" command. When this option is empty 2111 --- the internal formatting functions are used; either 'lisp', 'cindent' 2112 --- or 'indentexpr'. 2113 --- Environment variables are expanded `:set_env`. See `option-backslash` 2114 --- about including spaces and backslashes. 2115 --- This option cannot be set from a `modeline` or in the `sandbox`, for 2116 --- security reasons. 2117 --- 2118 --- @type string 2119 vim.o.equalprg = "" 2120 vim.o.ep = vim.o.equalprg 2121 vim.bo.equalprg = vim.o.equalprg 2122 vim.bo.ep = vim.bo.equalprg 2123 vim.go.equalprg = vim.o.equalprg 2124 vim.go.ep = vim.go.equalprg 2125 2126 --- Ring the bell (beep or screen flash) for error messages. This only 2127 --- makes a difference for error messages, the bell will be used always 2128 --- for a lot of errors without a message (e.g., hitting <Esc> in Normal 2129 --- mode). See 'visualbell' to make the bell behave like a screen flash 2130 --- or do nothing. See 'belloff' to finetune when to ring the bell. 2131 --- 2132 --- @type boolean 2133 vim.o.errorbells = false 2134 vim.o.eb = vim.o.errorbells 2135 vim.go.errorbells = vim.o.errorbells 2136 vim.go.eb = vim.go.errorbells 2137 2138 --- Name of the errorfile for the QuickFix mode (see `:cf`). 2139 --- When the "-q" command-line argument is used, 'errorfile' is set to the 2140 --- following argument. See `-q`. 2141 --- NOT used for the ":make" command. See 'makeef' for that. 2142 --- Environment variables are expanded `:set_env`. 2143 --- See `option-backslash` about including spaces and backslashes. 2144 --- This option cannot be set from a `modeline` or in the `sandbox`, for 2145 --- security reasons. 2146 --- 2147 --- @type string 2148 vim.o.errorfile = "errors.err" 2149 vim.o.ef = vim.o.errorfile 2150 vim.go.errorfile = vim.o.errorfile 2151 vim.go.ef = vim.go.errorfile 2152 2153 --- Scanf-like description of the format for the lines in the error file 2154 --- (see `errorformat`). 2155 --- 2156 --- @type string 2157 vim.o.errorformat = "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-Gg%\\?make[%*\\d]: *** [%f:%l:%m,%-Gg%\\?make: *** [%f:%l:%m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory %*[`']%f',%X%*\\a[%*\\d]: Leaving directory %*[`']%f',%D%*\\a: Entering directory %*[`']%f',%X%*\\a: Leaving directory %*[`']%f',%DMaking %*\\a in %f,%f|%l| %m" 2158 vim.o.efm = vim.o.errorformat 2159 vim.bo.errorformat = vim.o.errorformat 2160 vim.bo.efm = vim.bo.errorformat 2161 vim.go.errorformat = vim.o.errorformat 2162 vim.go.efm = vim.go.errorformat 2163 2164 --- A list of autocommand event names, which are to be ignored. 2165 --- When set to "all" or when "all" is one of the items, all autocommand 2166 --- events are ignored, autocommands will not be executed. 2167 --- Otherwise this is a comma-separated list of event names. Example: 2168 --- 2169 --- ```vim 2170 --- set ei=WinEnter,WinLeave 2171 --- ``` 2172 --- 2173 --- To ignore all but some events, a "-" prefix can be used: 2174 --- 2175 --- ```vim 2176 --- :set ei=all,-WinLeave 2177 --- ``` 2178 --- 2179 --- 2180 --- @type string 2181 vim.o.eventignore = "" 2182 vim.o.ei = vim.o.eventignore 2183 vim.go.eventignore = vim.o.eventignore 2184 vim.go.ei = vim.go.eventignore 2185 2186 --- Similar to 'eventignore' but applies to a particular window and its 2187 --- buffers, for which window and buffer related autocommands can be 2188 --- ignored indefinitely without affecting the global 'eventignore'. 2189 --- 2190 --- Note: The following events are considered to happen outside of a 2191 --- window context and thus cannot be ignored by 'eventignorewin': 2192 --- 2193 --- `ChanInfo`, 2194 --- `ChanOpen`, 2195 --- `CmdUndefined`, 2196 --- `CmdlineChanged`, 2197 --- `CmdlineEnter`, 2198 --- `CmdlineLeave`, 2199 --- `CmdlineLeavePre`, 2200 --- `CmdwinEnter`, 2201 --- `CmdwinLeave`, 2202 --- `ColorScheme`, 2203 --- `ColorSchemePre`, 2204 --- `CompleteChanged`, 2205 --- `CompleteDone`, 2206 --- `CompleteDonePre`, 2207 --- `DiagnosticChanged`, 2208 --- `DiffUpdated`, 2209 --- `DirChanged`, 2210 --- `DirChangedPre`, 2211 --- `ExitPre`, 2212 --- `FocusGained`, 2213 --- `FocusLost`, 2214 --- `FuncUndefined`, 2215 --- `LspAttach`, 2216 --- `LspDetach`, 2217 --- `LspNotify`, 2218 --- `LspProgress`, 2219 --- `LspRequest`, 2220 --- `LspTokenUpdate`, 2221 --- `MarkSet`, 2222 --- `MenuPopup`, 2223 --- `ModeChanged`, 2224 --- `OptionSet`, 2225 --- `PackChanged`, 2226 --- `PackChangedPre`, 2227 --- `Progress`, 2228 --- `QuickFixCmdPost`, 2229 --- `QuickFixCmdPre`, 2230 --- `QuitPre`, 2231 --- `RemoteReply`, 2232 --- `SafeState`, 2233 --- `SessionLoadPost`, 2234 --- `SessionLoadPre`, 2235 --- `SessionWritePost`, 2236 --- `ShellCmdPost`, 2237 --- `Signal`, 2238 --- `SourceCmd`, 2239 --- `SourcePost`, 2240 --- `SourcePre`, 2241 --- `SpellFileMissing`, 2242 --- `StdinReadPost`, 2243 --- `StdinReadPre`, 2244 --- `SwapExists`, 2245 --- `Syntax`, 2246 --- `TabClosed`, 2247 --- `TabClosedPre`, 2248 --- `TabEnter`, 2249 --- `TabLeave`, 2250 --- `TabNew`, 2251 --- `TabNewEntered`, 2252 --- `TermClose`, 2253 --- `TermEnter`, 2254 --- `TermLeave`, 2255 --- `TermOpen`, 2256 --- `TermRequest`, 2257 --- `TermResponse`, 2258 --- `UIEnter`, 2259 --- `UILeave`, 2260 --- `User`, 2261 --- `VimEnter`, 2262 --- `VimLeave`, 2263 --- `VimLeavePre`, 2264 --- `VimResized`, 2265 --- `VimResume`, 2266 --- `VimSuspend`, 2267 --- `WinNew`, 2268 --- `WinNewPre` 2269 --- 2270 --- @type string 2271 vim.o.eventignorewin = "" 2272 vim.o.eiw = vim.o.eventignorewin 2273 vim.wo.eventignorewin = vim.o.eventignorewin 2274 vim.wo.eiw = vim.wo.eventignorewin 2275 2276 --- In Insert mode: Use the appropriate number of spaces to insert a 2277 --- <Tab>. Spaces are used in indents with the '>' and '<' commands and 2278 --- when 'autoindent' is on. To insert a real tab when 'expandtab' is 2279 --- on, use CTRL-V<Tab>. See also `:retab` and `ins-expandtab`. 2280 --- 2281 --- @type boolean 2282 vim.o.expandtab = false 2283 vim.o.et = vim.o.expandtab 2284 vim.bo.expandtab = vim.o.expandtab 2285 vim.bo.et = vim.bo.expandtab 2286 2287 --- Enables project-local configuration. Nvim will execute any .nvim.lua, 2288 --- .nvimrc, or .exrc file found in the `current-directory` and all parent 2289 --- directories (ordered upwards), if the files are in the `trust` list. 2290 --- Use `:trust` to manage trusted files. See also `vim.secure.read()`. 2291 --- 2292 --- Unset 'exrc' to stop further searching of 'exrc' files in parent 2293 --- directories, similar to `editorconfig.root`. 2294 --- 2295 --- To get its own location, a Lua exrc file can use `debug.getinfo()`. 2296 --- See `lua-script-location`. 2297 --- 2298 --- Compare 'exrc' to `editorconfig`: 2299 --- - 'exrc' can execute any code; editorconfig only specifies settings. 2300 --- - 'exrc' is Nvim-specific; editorconfig works in other editors. 2301 --- 2302 --- To achieve project-local LSP configuration: 2303 --- 1. Enable 'exrc'. 2304 --- 2. Place LSP configs at ".nvim/lsp/*.lua" in your project root. 2305 --- 3. Create ".nvim.lua" in your project root directory with this line: 2306 --- 2307 --- ```lua 2308 --- vim.cmd[[set runtimepath+=.nvim]] 2309 --- ``` 2310 --- 2311 --- This option cannot be set from a `modeline` or in the `sandbox`, for 2312 --- security reasons. 2313 --- 2314 --- @type boolean 2315 vim.o.exrc = false 2316 vim.o.ex = vim.o.exrc 2317 vim.go.exrc = vim.o.exrc 2318 vim.go.ex = vim.go.exrc 2319 2320 --- File-content encoding for the current buffer. Conversion is done with 2321 --- iconv() or as specified with 'charconvert'. 2322 --- 2323 --- When 'fileencoding' is not UTF-8, conversion will be done when 2324 --- writing the file. For reading see below. 2325 --- When 'fileencoding' is empty, the file will be saved with UTF-8 2326 --- encoding (no conversion when reading or writing a file). 2327 --- 2328 --- WARNING: Conversion to a non-Unicode encoding can cause loss of 2329 --- information! 2330 --- 2331 --- See `encoding-names` for the possible values. Additionally, values may be 2332 --- specified that can be handled by the converter, see 2333 --- `mbyte-conversion`. 2334 --- 2335 --- When reading a file 'fileencoding' will be set from 'fileencodings'. 2336 --- To read a file in a certain encoding it won't work by setting 2337 --- 'fileencoding', use the `++enc` argument. One exception: when 2338 --- 'fileencodings' is empty the value of 'fileencoding' is used. 2339 --- For a new file the global value of 'fileencoding' is used. 2340 --- 2341 --- Prepending "8bit-" and "2byte-" has no meaning here, they are ignored. 2342 --- When the option is set, the value is converted to lowercase. Thus 2343 --- you can set it with uppercase values too. '_' characters are 2344 --- replaced with '-'. If a name is recognized from the list at 2345 --- `encoding-names`, it is replaced by the standard name. For example 2346 --- "ISO8859-2" becomes "iso-8859-2". 2347 --- 2348 --- When this option is set, after starting to edit a file, the 'modified' 2349 --- option is set, because the file would be different when written. 2350 --- 2351 --- Keep in mind that changing 'fenc' from a modeline happens 2352 --- AFTER the text has been read, thus it applies to when the file will be 2353 --- written. If you do set 'fenc' in a modeline, you might want to set 2354 --- 'nomodified' to avoid not being able to ":q". 2355 --- 2356 --- This option cannot be changed when 'modifiable' is off. 2357 --- 2358 --- @type string 2359 vim.o.fileencoding = "" 2360 vim.o.fenc = vim.o.fileencoding 2361 vim.bo.fileencoding = vim.o.fileencoding 2362 vim.bo.fenc = vim.bo.fileencoding 2363 2364 --- This is a list of character encodings considered when starting to edit 2365 --- an existing file. When a file is read, Vim tries to use the first 2366 --- mentioned character encoding. If an error is detected, the next one 2367 --- in the list is tried. When an encoding is found that works, 2368 --- 'fileencoding' is set to it. If all fail, 'fileencoding' is set to 2369 --- an empty string, which means that UTF-8 is used. 2370 --- WARNING: Conversion can cause loss of information! You can use 2371 --- the `++bad` argument to specify what is done with characters 2372 --- that can't be converted. 2373 --- For an empty file or a file with only ASCII characters most encodings 2374 --- will work and the first entry of 'fileencodings' will be used (except 2375 --- "ucs-bom", which requires the BOM to be present). If you prefer 2376 --- another encoding use an BufReadPost autocommand event to test if your 2377 --- preferred encoding is to be used. Example: 2378 --- 2379 --- ```vim 2380 --- au BufReadPost * if search('\S', 'w') == 0 | 2381 --- \ set fenc=iso-2022-jp | endif 2382 --- ``` 2383 --- This sets 'fileencoding' to "iso-2022-jp" if the file does not contain 2384 --- non-blank characters. 2385 --- When the `++enc` argument is used then the value of 'fileencodings' is 2386 --- not used. 2387 --- Note that 'fileencodings' is not used for a new file, the global value 2388 --- of 'fileencoding' is used instead. You can set it with: 2389 --- 2390 --- ```vim 2391 --- setglobal fenc=iso-8859-2 2392 --- ``` 2393 --- This means that a non-existing file may get a different encoding than 2394 --- an empty file. 2395 --- The special value "ucs-bom" can be used to check for a Unicode BOM 2396 --- (Byte Order Mark) at the start of the file. It must not be preceded 2397 --- by "utf-8" or another Unicode encoding for this to work properly. 2398 --- An entry for an 8-bit encoding (e.g., "latin1") should be the last, 2399 --- because Vim cannot detect an error, thus the encoding is always 2400 --- accepted. 2401 --- The special value "default" can be used for the encoding from the 2402 --- environment. It is useful when your environment uses a non-latin1 2403 --- encoding, such as Russian. 2404 --- When a file contains an illegal UTF-8 byte sequence it won't be 2405 --- recognized as "utf-8". You can use the `8g8` command to find the 2406 --- illegal byte sequence. 2407 --- WRONG VALUES: WHAT'S WRONG: 2408 --- latin1,utf-8 "latin1" will always be used 2409 --- utf-8,ucs-bom,latin1 BOM won't be recognized in a utf-8 2410 --- file 2411 --- cp1250,latin1 "cp1250" will always be used 2412 --- If 'fileencodings' is empty, 'fileencoding' is not modified. 2413 --- See 'fileencoding' for the possible values. 2414 --- Setting this option does not have an effect until the next time a file 2415 --- is read. 2416 --- 2417 --- @type string 2418 vim.o.fileencodings = "ucs-bom,utf-8,default,latin1" 2419 vim.o.fencs = vim.o.fileencodings 2420 vim.go.fileencodings = vim.o.fileencodings 2421 vim.go.fencs = vim.go.fileencodings 2422 2423 --- This gives the <EOL> of the current buffer, which is used for 2424 --- reading/writing the buffer from/to a file: 2425 --- dos <CR><NL> 2426 --- unix <NL> 2427 --- mac <CR> 2428 --- When "dos" is used, CTRL-Z at the end of a file is ignored. 2429 --- See `file-formats` and `file-read`. 2430 --- For the character encoding of the file see 'fileencoding'. 2431 --- When 'binary' is set, the value of 'fileformat' is ignored, file I/O 2432 --- works like it was set to "unix". 2433 --- This option is set automatically when starting to edit a file and 2434 --- 'fileformats' is not empty and 'binary' is off. 2435 --- When this option is set, after starting to edit a file, the 'modified' 2436 --- option is set, because the file would be different when written. 2437 --- This option cannot be changed when 'modifiable' is off. 2438 --- 2439 --- @type 'unix'|'dos'|'mac' 2440 vim.o.fileformat = "unix" 2441 vim.o.ff = vim.o.fileformat 2442 vim.bo.fileformat = vim.o.fileformat 2443 vim.bo.ff = vim.bo.fileformat 2444 2445 --- This gives the end-of-line (<EOL>) formats that will be tried when 2446 --- starting to edit a new buffer and when reading a file into an existing 2447 --- buffer: 2448 --- - When empty, the format defined with 'fileformat' will be used 2449 --- always. It is not set automatically. 2450 --- - When set to one name, that format will be used whenever a new buffer 2451 --- is opened. 'fileformat' is set accordingly for that buffer. The 2452 --- 'fileformats' name will be used when a file is read into an existing 2453 --- buffer, no matter what 'fileformat' for that buffer is set to. 2454 --- - When more than one name is present, separated by commas, automatic 2455 --- <EOL> detection will be done when reading a file. When starting to 2456 --- edit a file, a check is done for the <EOL>: 2457 --- 1. If all lines end in <CR><NL>, and 'fileformats' includes "dos", 2458 --- 'fileformat' is set to "dos". 2459 --- 2. If a <NL> is found and 'fileformats' includes "unix", 2460 --- 'fileformat' is set to "unix". Note that when a <NL> is found 2461 --- without a preceding <CR>, "unix" is preferred over "dos". 2462 --- 3. If 'fileformat' has not yet been set, and if a <CR> is found, and 2463 --- if 'fileformats' includes "mac", 'fileformat' is set to "mac". 2464 --- This means that "mac" is only chosen when: 2465 --- "unix" is not present or no <NL> is found in the file, and 2466 --- "dos" is not present or no <CR><NL> is found in the file. 2467 --- Except: if "unix" was chosen, but there is a <CR> before 2468 --- the first <NL>, and there appear to be more <CR>s than <NL>s in 2469 --- the first few lines, "mac" is used. 2470 --- 4. If 'fileformat' is still not set, the first name from 2471 --- 'fileformats' is used. 2472 --- When reading a file into an existing buffer, the same is done, but 2473 --- this happens like 'fileformat' has been set appropriately for that 2474 --- file only, the option is not changed. 2475 --- When 'binary' is set, the value of 'fileformats' is not used. 2476 --- 2477 --- When Vim starts up with an empty buffer the first item is used. You 2478 --- can overrule this by setting 'fileformat' in your .vimrc. 2479 --- 2480 --- For systems with a Dos-like <EOL> (<CR><NL>), when reading files that 2481 --- are ":source"ed and for vimrc files, automatic <EOL> detection may be 2482 --- done: 2483 --- - When 'fileformats' is empty, there is no automatic detection. Dos 2484 --- format will be used. 2485 --- - When 'fileformats' is set to one or more names, automatic detection 2486 --- is done. This is based on the first <NL> in the file: If there is a 2487 --- <CR> in front of it, Dos format is used, otherwise Unix format is 2488 --- used. 2489 --- Also see `file-formats`. 2490 --- 2491 --- @type string 2492 vim.o.fileformats = "unix,dos" 2493 vim.o.ffs = vim.o.fileformats 2494 vim.go.fileformats = vim.o.fileformats 2495 vim.go.ffs = vim.go.fileformats 2496 2497 --- When set, case is ignored when using file and directory names. 2498 --- 2499 --- This option is on by default on systems where the filesystem is 2500 --- traditionally case-insensitive (for example MS-Windows and macOS). 2501 --- However, Vim cannot determine at runtime whether a particular 2502 --- filesystem is case-sensitive or case-insensitive. 2503 --- 2504 --- See 'wildignorecase' for only ignoring case when doing completion. 2505 --- 2506 --- @type boolean 2507 vim.o.fileignorecase = false 2508 vim.o.fic = vim.o.fileignorecase 2509 vim.go.fileignorecase = vim.o.fileignorecase 2510 vim.go.fic = vim.go.fileignorecase 2511 2512 --- When this option is set, the FileType autocommand event is triggered. 2513 --- All autocommands that match with the value of this option will be 2514 --- executed. Thus the value of 'filetype' is used in place of the file 2515 --- name. 2516 --- Otherwise this option does not always reflect the current file type. 2517 --- This option is normally set when the file type is detected. To enable 2518 --- this use the ":filetype on" command. `:filetype` 2519 --- Setting this option to a different value is most useful in a modeline, 2520 --- for a file for which the file type is not automatically recognized. 2521 --- Example, for in an IDL file: >c 2522 --- /* vim: set filetype=idl : */ 2523 --- ``` 2524 --- `FileType` `filetypes` 2525 --- When a dot appears in the value then this separates two filetype 2526 --- names, it should therefore not be used for a filetype. Example: >c 2527 --- /* vim: set filetype=c.doxygen : */ 2528 --- ``` 2529 --- This will use the "c" filetype first, then the "doxygen" filetype. 2530 --- This works both for filetype plugins and for syntax files. More than 2531 --- one dot may appear. 2532 --- This option is not copied to another buffer, independent of the 's' or 2533 --- 'S' flag in 'cpoptions'. 2534 --- Only alphanumeric characters, '-' and '_' can be used (and a '.' is 2535 --- allowed as delimiter when combining different filetypes). 2536 --- 2537 --- @type string 2538 vim.o.filetype = "" 2539 vim.o.ft = vim.o.filetype 2540 vim.bo.filetype = vim.o.filetype 2541 vim.bo.ft = vim.bo.filetype 2542 2543 --- Characters to fill the statuslines, vertical separators, special 2544 --- lines in the window and truncated text in the `ins-completion-menu`. 2545 --- It is a comma-separated list of items. Each item has a name, a colon 2546 --- and the value of that item: `E1511` 2547 --- 2548 --- item default Used for ~ 2549 --- stl ' ' statusline of the current window 2550 --- stlnc ' ' statusline of the non-current windows 2551 --- wbr ' ' window bar 2552 --- horiz '─' or '-' horizontal separators `:split` 2553 --- horizup '┴' or '-' upwards facing horizontal separator 2554 --- horizdown '┬' or '-' downwards facing horizontal separator 2555 --- vert '│' or '|' vertical separators `:vsplit` 2556 --- vertleft '┤' or '|' left facing vertical separator 2557 --- vertright '├' or '|' right facing vertical separator 2558 --- verthoriz '┼' or '+' overlapping vertical and horizontal 2559 --- separator 2560 --- fold '·' or '-' filling 'foldtext' 2561 --- foldopen '-' mark the beginning of a fold 2562 --- foldclose '+' show a closed fold 2563 --- foldsep '│' or '|' open fold middle marker 2564 --- foldinner none character to show instead of the 2565 --- numeric foldlevel when it would be 2566 --- repeated in a narrow 'foldcolumn' 2567 --- diff '-' deleted lines of the 'diff' option 2568 --- msgsep ' ' message separator 'display' 2569 --- eob '~' empty lines at the end of a buffer 2570 --- lastline '@' 'display' contains lastline/truncate 2571 --- trunc '>' truncated text in the 2572 --- `ins-completion-menu`. 2573 --- truncrl '<' same as "trunc" in 'rightleft' mode 2574 --- 2575 --- Any one that is omitted will fall back to the default. 2576 --- 2577 --- Note that "horiz", "horizup", "horizdown", "vertleft", "vertright" and 2578 --- "verthoriz" are only used when 'laststatus' is 3, since only vertical 2579 --- window separators are used otherwise. 2580 --- 2581 --- If 'ambiwidth' is "double" then "horiz", "horizup", "horizdown", 2582 --- "vert", "vertleft", "vertright", "verthoriz", "foldsep" and "fold" 2583 --- default to single-byte alternatives. 2584 --- 2585 --- Example: 2586 --- 2587 --- ```vim 2588 --- set fillchars=stl:\ ,stlnc:\ ,vert:│,fold:·,diff:- 2589 --- ``` 2590 --- 2591 --- All items support single-byte and multibyte characters. But 2592 --- double-width characters are not supported. `E1512` 2593 --- 2594 --- The highlighting used for these items: 2595 --- item highlight group ~ 2596 --- stl StatusLine `hl-StatusLine` 2597 --- stlnc StatusLineNC `hl-StatusLineNC` 2598 --- wbr WinBar `hl-WinBar` or `hl-WinBarNC` 2599 --- horiz WinSeparator `hl-WinSeparator` 2600 --- horizup WinSeparator `hl-WinSeparator` 2601 --- horizdown WinSeparator `hl-WinSeparator` 2602 --- vert WinSeparator `hl-WinSeparator` 2603 --- vertleft WinSeparator `hl-WinSeparator` 2604 --- vertright WinSeparator `hl-WinSeparator` 2605 --- verthoriz WinSeparator `hl-WinSeparator` 2606 --- fold Folded `hl-Folded` 2607 --- foldopen FoldColumn `hl-FoldColumn` 2608 --- foldclose FoldColumn `hl-FoldColumn` 2609 --- foldsep FoldColumn `hl-FoldColumn` 2610 --- diff DiffDelete `hl-DiffDelete` 2611 --- msgsep MsgSeparator `hl-MsgSeparator` 2612 --- eob EndOfBuffer `hl-EndOfBuffer` 2613 --- lastline NonText `hl-NonText` 2614 --- trunc one of the many Popup menu highlighting groups like 2615 --- `hl-PmenuSel` 2616 --- truncrl same as "trunc" 2617 --- 2618 --- @type string 2619 vim.o.fillchars = "" 2620 vim.o.fcs = vim.o.fillchars 2621 vim.wo.fillchars = vim.o.fillchars 2622 vim.wo.fcs = vim.wo.fillchars 2623 vim.go.fillchars = vim.o.fillchars 2624 vim.go.fcs = vim.go.fillchars 2625 2626 --- Function that is called to obtain the filename(s) for the `:find` 2627 --- command. When this option is empty, the internal `file-searching` 2628 --- mechanism is used. 2629 --- 2630 --- The value can be the name of a function, a `lambda` or a `Funcref`. 2631 --- See `option-value-function` for more information. 2632 --- 2633 --- The function is called with two arguments. The first argument is a 2634 --- `String` and is the `:find` command argument. The second argument is 2635 --- a `Boolean` and is set to `v:true` when the function is called to get 2636 --- a List of command-line completion matches for the `:find` command. 2637 --- The function should return a List of strings. 2638 --- 2639 --- The function is called only once per `:find` command invocation. 2640 --- The function can process all the directories specified in 'path'. 2641 --- 2642 --- If a match is found, the function should return a `List` containing 2643 --- one or more file names. If a match is not found, the function 2644 --- should return an empty List. 2645 --- 2646 --- If any errors are encountered during the function invocation, an 2647 --- empty List is used as the return value. 2648 --- 2649 --- It is not allowed to change text or jump to another window while 2650 --- executing the 'findfunc' `textlock`. 2651 --- 2652 --- This option cannot be set from a `modeline` or in the `sandbox`, for 2653 --- security reasons. 2654 --- 2655 --- Examples: 2656 --- 2657 --- ```vim 2658 --- " Use glob() 2659 --- func FindFuncGlob(cmdarg, cmdcomplete) 2660 --- let pat = a:cmdcomplete ? $'{a:cmdarg}*' : a:cmdarg 2661 --- return glob(pat, v:false, v:true) 2662 --- endfunc 2663 --- set findfunc=FindFuncGlob 2664 --- 2665 --- " Use the 'git ls-files' output 2666 --- func FindGitFiles(cmdarg, cmdcomplete) 2667 --- let fnames = systemlist('git ls-files') 2668 --- return fnames->filter('v:val =~? a:cmdarg') 2669 --- endfunc 2670 --- set findfunc=FindGitFiles 2671 --- ``` 2672 --- 2673 --- 2674 --- @type string 2675 vim.o.findfunc = "" 2676 vim.o.ffu = vim.o.findfunc 2677 vim.bo.findfunc = vim.o.findfunc 2678 vim.bo.ffu = vim.bo.findfunc 2679 vim.go.findfunc = vim.o.findfunc 2680 vim.go.ffu = vim.go.findfunc 2681 2682 --- When writing a file and this option is on, <EOL> at the end of file 2683 --- will be restored if missing. Turn this option off if you want to 2684 --- preserve the situation from the original file. 2685 --- When the 'binary' option is set the value of this option doesn't 2686 --- matter. 2687 --- See the 'endofline' option. 2688 --- See `eol-and-eof` for example settings. 2689 --- 2690 --- @type boolean 2691 vim.o.fixendofline = true 2692 vim.o.fixeol = vim.o.fixendofline 2693 vim.bo.fixendofline = vim.o.fixendofline 2694 vim.bo.fixeol = vim.bo.fixendofline 2695 2696 --- When set to "all", a fold is closed when the cursor isn't in it and 2697 --- its level is higher than 'foldlevel'. Useful if you want folds to 2698 --- automatically close when moving out of them. 2699 --- 2700 --- @type string 2701 vim.o.foldclose = "" 2702 vim.o.fcl = vim.o.foldclose 2703 vim.go.foldclose = vim.o.foldclose 2704 vim.go.fcl = vim.go.foldclose 2705 2706 --- When and how to draw the foldcolumn. Valid values are: 2707 --- "auto": resize to the minimum amount of folds to display. 2708 --- "auto:[1-9]": resize to accommodate multiple folds up to the 2709 --- selected level 2710 --- "0": to disable foldcolumn 2711 --- "[1-9]": to display a fixed number of columns 2712 --- See `folding`. 2713 --- 2714 --- @type 'auto'|'auto:1'|'auto:2'|'auto:3'|'auto:4'|'auto:5'|'auto:6'|'auto:7'|'auto:8'|'auto:9'|'0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9' 2715 vim.o.foldcolumn = "0" 2716 vim.o.fdc = vim.o.foldcolumn 2717 vim.wo.foldcolumn = vim.o.foldcolumn 2718 vim.wo.fdc = vim.wo.foldcolumn 2719 2720 --- When off, all folds are open. This option can be used to quickly 2721 --- switch between showing all text unfolded and viewing the text with 2722 --- folds (including manually opened or closed folds). It can be toggled 2723 --- with the `zi` command. The 'foldcolumn' will remain blank when 2724 --- 'foldenable' is off. 2725 --- This option is set by commands that create a new fold or close a fold. 2726 --- See `folding`. 2727 --- 2728 --- @type boolean 2729 vim.o.foldenable = true 2730 vim.o.fen = vim.o.foldenable 2731 vim.wo.foldenable = vim.o.foldenable 2732 vim.wo.fen = vim.wo.foldenable 2733 2734 --- The expression used for when 'foldmethod' is "expr". It is evaluated 2735 --- for each line to obtain its fold level. The context is set to the 2736 --- script where 'foldexpr' was set, script-local items can be accessed. 2737 --- See `fold-expr` for the usage. 2738 --- 2739 --- The expression will be evaluated in the `sandbox` if set from a 2740 --- modeline, see `sandbox-option`. 2741 --- This option can't be set from a `modeline` when the 'diff' option is 2742 --- on or the 'modelineexpr' option is off. 2743 --- 2744 --- It is not allowed to change text or jump to another window while 2745 --- evaluating 'foldexpr' `textlock`. 2746 --- 2747 --- @type string 2748 vim.o.foldexpr = "0" 2749 vim.o.fde = vim.o.foldexpr 2750 vim.wo.foldexpr = vim.o.foldexpr 2751 vim.wo.fde = vim.wo.foldexpr 2752 2753 --- Used only when 'foldmethod' is "indent". Lines starting with 2754 --- characters in 'foldignore' will get their fold level from surrounding 2755 --- lines. White space is skipped before checking for this character. 2756 --- The default "#" works well for C programs. See `fold-indent`. 2757 --- 2758 --- @type string 2759 vim.o.foldignore = "#" 2760 vim.o.fdi = vim.o.foldignore 2761 vim.wo.foldignore = vim.o.foldignore 2762 vim.wo.fdi = vim.wo.foldignore 2763 2764 --- Sets the fold level: Folds with a higher level will be closed. 2765 --- Setting this option to zero will close all folds. Higher numbers will 2766 --- close fewer folds. 2767 --- This option is set by commands like `zm`, `zM` and `zR`. 2768 --- See `fold-foldlevel`. 2769 --- 2770 --- @type integer 2771 vim.o.foldlevel = 0 2772 vim.o.fdl = vim.o.foldlevel 2773 vim.wo.foldlevel = vim.o.foldlevel 2774 vim.wo.fdl = vim.wo.foldlevel 2775 2776 --- Sets 'foldlevel' when starting to edit another buffer in a window. 2777 --- Useful to always start editing with all folds closed (value zero), 2778 --- some folds closed (one) or no folds closed (99). 2779 --- This is done before reading any modeline, thus a setting in a modeline 2780 --- overrules this option. Starting to edit a file for `diff-mode` also 2781 --- ignores this option and closes all folds. 2782 --- It is also done before BufReadPre autocommands, to allow an autocmd to 2783 --- overrule the 'foldlevel' value for specific files. 2784 --- When the value is negative, it is not used. 2785 --- 2786 --- @type integer 2787 vim.o.foldlevelstart = -1 2788 vim.o.fdls = vim.o.foldlevelstart 2789 vim.go.foldlevelstart = vim.o.foldlevelstart 2790 vim.go.fdls = vim.go.foldlevelstart 2791 2792 --- The start and end marker used when 'foldmethod' is "marker". There 2793 --- must be one comma, which separates the start and end marker. The 2794 --- marker is a literal string (a regular expression would be too slow). 2795 --- See `fold-marker`. 2796 --- 2797 --- @type string 2798 vim.o.foldmarker = "{{{,}}}" 2799 vim.o.fmr = vim.o.foldmarker 2800 vim.wo.foldmarker = vim.o.foldmarker 2801 vim.wo.fmr = vim.wo.foldmarker 2802 2803 --- The kind of folding used for the current window. Possible values: 2804 --- `fold-manual` manual Folds are created manually. 2805 --- `fold-indent` indent Lines with equal indent form a fold. 2806 --- `fold-expr` expr 'foldexpr' gives the fold level of a line. 2807 --- `fold-marker` marker Markers are used to specify folds. 2808 --- `fold-syntax` syntax Syntax highlighting items specify folds. 2809 --- `fold-diff` diff Fold text that is not changed. 2810 --- 2811 --- @type 'manual'|'expr'|'marker'|'indent'|'syntax'|'diff' 2812 vim.o.foldmethod = "manual" 2813 vim.o.fdm = vim.o.foldmethod 2814 vim.wo.foldmethod = vim.o.foldmethod 2815 vim.wo.fdm = vim.wo.foldmethod 2816 2817 --- Sets the number of screen lines above which a fold can be displayed 2818 --- closed. Also for manually closed folds. With the default value of 2819 --- one a fold can only be closed if it takes up two or more screen lines. 2820 --- Set to zero to be able to close folds of just one screen line. 2821 --- Note that this only has an effect on what is displayed. After using 2822 --- "zc" to close a fold, which is displayed open because it's smaller 2823 --- than 'foldminlines', a following "zc" may close a containing fold. 2824 --- 2825 --- @type integer 2826 vim.o.foldminlines = 1 2827 vim.o.fml = vim.o.foldminlines 2828 vim.wo.foldminlines = vim.o.foldminlines 2829 vim.wo.fml = vim.wo.foldminlines 2830 2831 --- Sets the maximum nesting of folds for the "indent" and "syntax" 2832 --- methods. This avoids that too many folds will be created. Using more 2833 --- than 20 doesn't work, because the internal limit is 20. 2834 --- 2835 --- @type integer 2836 vim.o.foldnestmax = 20 2837 vim.o.fdn = vim.o.foldnestmax 2838 vim.wo.foldnestmax = vim.o.foldnestmax 2839 vim.wo.fdn = vim.wo.foldnestmax 2840 2841 --- Specifies for which type of commands folds will be opened, if the 2842 --- command moves the cursor into a closed fold. It is a comma-separated 2843 --- list of items. 2844 --- NOTE: When the command is part of a mapping this option is not used. 2845 --- Add the `zv` command to the mapping to get the same effect. 2846 --- (rationale: the mapping may want to control opening folds itself) 2847 --- 2848 --- item commands ~ 2849 --- all any 2850 --- block (, {, [[, [{, etc. 2851 --- hor horizontal movements: "l", "w", "fx", etc. 2852 --- insert any command in Insert mode 2853 --- jump far jumps: "G", "gg", etc. 2854 --- mark jumping to a mark: "'m", CTRL-O, etc. 2855 --- percent "%" 2856 --- quickfix ":cn", ":crew", ":make", etc. 2857 --- search search for a pattern: "/", "n", "*", "gd", etc. 2858 --- (not for a search pattern in a ":" command) 2859 --- Also for `[s` and `]s`. 2860 --- tag jumping to a tag: ":ta", CTRL-T, etc. 2861 --- undo undo or redo: "u" and CTRL-R 2862 --- When a movement command is used for an operator (e.g., "dl" or "y%") 2863 --- this option is not used. This means the operator will include the 2864 --- whole closed fold. 2865 --- Note that vertical movements are not here, because it would make it 2866 --- very difficult to move onto a closed fold. 2867 --- In insert mode the folds containing the cursor will always be open 2868 --- when text is inserted. 2869 --- To close folds you can re-apply 'foldlevel' with the `zx` command or 2870 --- set the 'foldclose' option to "all". 2871 --- 2872 --- @type string 2873 vim.o.foldopen = "block,hor,mark,percent,quickfix,search,tag,undo" 2874 vim.o.fdo = vim.o.foldopen 2875 vim.go.foldopen = vim.o.foldopen 2876 vim.go.fdo = vim.go.foldopen 2877 2878 --- An expression which is used to specify the text displayed for a closed 2879 --- fold. The context is set to the script where 'foldexpr' was set, 2880 --- script-local items can be accessed. See `fold-foldtext` for the 2881 --- usage. 2882 --- 2883 --- The expression will be evaluated in the `sandbox` if set from a 2884 --- modeline, see `sandbox-option`. 2885 --- This option cannot be set in a modeline when 'modelineexpr' is off. 2886 --- 2887 --- It is not allowed to change text or jump to another window while 2888 --- evaluating 'foldtext' `textlock`. 2889 --- 2890 --- When set to an empty string, foldtext is disabled, and the line 2891 --- is displayed normally with highlighting and no line wrapping. 2892 --- 2893 --- @type string 2894 vim.o.foldtext = "foldtext()" 2895 vim.o.fdt = vim.o.foldtext 2896 vim.wo.foldtext = vim.o.foldtext 2897 vim.wo.fdt = vim.wo.foldtext 2898 2899 --- Expression which is evaluated to format a range of lines for the `gq` 2900 --- operator or automatic formatting (see 'formatoptions'). When this 2901 --- option is empty 'formatprg' is used. 2902 --- 2903 --- The `v:lnum` variable holds the first line to be formatted. 2904 --- The `v:count` variable holds the number of lines to be formatted. 2905 --- The `v:char` variable holds the character that is going to be 2906 --- inserted if the expression is being evaluated due to 2907 --- automatic formatting. This can be empty. Don't insert 2908 --- it yet! 2909 --- 2910 --- Example: 2911 --- 2912 --- ```vim 2913 --- set formatexpr=mylang#Format() 2914 --- ``` 2915 --- This will invoke the mylang#Format() function in the 2916 --- autoload/mylang.vim file in 'runtimepath'. `autoload` 2917 --- 2918 --- The advantage of using a function call without arguments is that it is 2919 --- faster, see `expr-option-function`. 2920 --- 2921 --- The expression is also evaluated when 'textwidth' is set and adding 2922 --- text beyond that limit. This happens under the same conditions as 2923 --- when internal formatting is used. Make sure the cursor is kept in the 2924 --- same spot relative to the text then! The `mode()` function will 2925 --- return "i" or "R" in this situation. 2926 --- 2927 --- When the expression evaluates to non-zero Vim will fall back to using 2928 --- the internal format mechanism. 2929 --- 2930 --- If the expression starts with s: or `<SID>`, then it is replaced with 2931 --- the script ID (`local-function`). Example: 2932 --- 2933 --- ```vim 2934 --- set formatexpr=s:MyFormatExpr() 2935 --- set formatexpr=<SID>SomeFormatExpr() 2936 --- ``` 2937 --- Otherwise, the expression is evaluated in the context of the script 2938 --- where the option was set, thus script-local items are available. 2939 --- 2940 --- The expression will be evaluated in the `sandbox` when set from a 2941 --- modeline, see `sandbox-option`. That stops the option from working, 2942 --- since changing the buffer text is not allowed. 2943 --- This option cannot be set in a modeline when 'modelineexpr' is off. 2944 --- 2945 --- @type string 2946 vim.o.formatexpr = "" 2947 vim.o.fex = vim.o.formatexpr 2948 vim.bo.formatexpr = vim.o.formatexpr 2949 vim.bo.fex = vim.bo.formatexpr 2950 2951 --- A pattern that is used to recognize a list header. This is used for 2952 --- the "n" flag in 'formatoptions'. 2953 --- The pattern must match exactly the text that will be the indent for 2954 --- the line below it. You can use `/\ze` to mark the end of the match 2955 --- while still checking more characters. There must be a character 2956 --- following the pattern, when it matches the whole line it is handled 2957 --- like there is no match. 2958 --- The default recognizes a number, followed by an optional punctuation 2959 --- character and white space. 2960 --- 2961 --- @type string 2962 vim.o.formatlistpat = "^\\s*\\d\\+[\\]:.)}\\t ]\\s*" 2963 vim.o.flp = vim.o.formatlistpat 2964 vim.bo.formatlistpat = vim.o.formatlistpat 2965 vim.bo.flp = vim.bo.formatlistpat 2966 2967 --- This is a sequence of letters which describes how automatic 2968 --- formatting is to be done. 2969 --- See `fo-table` for possible values and `gq` for how to format text. 2970 --- Commas can be inserted for readability. 2971 --- To avoid problems with flags that are added in the future, use the 2972 --- "+=" and "-=" feature of ":set" `add-option-flags`. 2973 --- 2974 --- @type string 2975 vim.o.formatoptions = "tcqj" 2976 vim.o.fo = vim.o.formatoptions 2977 vim.bo.formatoptions = vim.o.formatoptions 2978 vim.bo.fo = vim.bo.formatoptions 2979 2980 --- The name of an external program that will be used to format the lines 2981 --- selected with the `gq` operator. The program must take the input on 2982 --- stdin and produce the output on stdout. The Unix program "fmt" is 2983 --- such a program. 2984 --- If the 'formatexpr' option is not empty it will be used instead. 2985 --- Otherwise, if 'formatprg' option is an empty string, the internal 2986 --- format function will be used `C-indenting`. 2987 --- Environment variables are expanded `:set_env`. See `option-backslash` 2988 --- about including spaces and backslashes. 2989 --- This option cannot be set from a `modeline` or in the `sandbox`, for 2990 --- security reasons. 2991 --- 2992 --- @type string 2993 vim.o.formatprg = "" 2994 vim.o.fp = vim.o.formatprg 2995 vim.bo.formatprg = vim.o.formatprg 2996 vim.bo.fp = vim.bo.formatprg 2997 vim.go.formatprg = vim.o.formatprg 2998 vim.go.fp = vim.go.formatprg 2999 3000 --- When on, the OS function fsync() will be called after saving a file 3001 --- (`:write`, `writefile()`, …), `swap-file`, `undo-persistence` and `shada-file`. 3002 --- This flushes the file to disk, ensuring that it is safely written. 3003 --- Slow on some systems: writing buffers, quitting Nvim, and other 3004 --- operations may sometimes take a few seconds. 3005 --- 3006 --- Files are ALWAYS flushed ('fsync' is ignored) when: 3007 --- - `CursorHold` event is triggered 3008 --- - `:preserve` is called 3009 --- - system signals low battery life 3010 --- - Nvim exits abnormally 3011 --- 3012 --- This is a `global-local` option, so it can be set per buffer, for 3013 --- example when writing to a slow filesystem. 3014 --- This option cannot be set from a `modeline` or in the `sandbox`, for 3015 --- security reasons. 3016 --- 3017 --- @type boolean 3018 vim.o.fsync = true 3019 vim.o.fs = vim.o.fsync 3020 vim.bo.fsync = vim.o.fsync 3021 vim.bo.fs = vim.bo.fsync 3022 vim.go.fsync = vim.o.fsync 3023 vim.go.fs = vim.go.fsync 3024 3025 --- Format to recognize for the ":grep" command output. 3026 --- This is a scanf-like string that uses the same format as the 3027 --- 'errorformat' option: see `errorformat`. 3028 --- 3029 --- If ripgrep ('grepprg') is available, this option defaults to `%f:%l:%c:%m`. 3030 --- 3031 --- @type string 3032 vim.o.grepformat = "%f:%l:%m,%f:%l%m,%f %l%m" 3033 vim.o.gfm = vim.o.grepformat 3034 vim.bo.grepformat = vim.o.grepformat 3035 vim.bo.gfm = vim.bo.grepformat 3036 vim.go.grepformat = vim.o.grepformat 3037 vim.go.gfm = vim.go.grepformat 3038 3039 --- Program to use for the `:grep` command. This option may contain '%' 3040 --- and '#' characters, which are expanded like when used in a command- 3041 --- line. The placeholder "$*" is allowed to specify where the arguments 3042 --- will be included. Environment variables are expanded `:set_env`. See 3043 --- `option-backslash` about including spaces and backslashes. 3044 --- Special value: When 'grepprg' is set to "internal" the `:grep` command 3045 --- works like `:vimgrep`, `:lgrep` like `:lvimgrep`, `:grepadd` like 3046 --- `:vimgrepadd` and `:lgrepadd` like `:lvimgrepadd`. 3047 --- See also the section `:make_makeprg`, since most of the comments there 3048 --- apply equally to 'grepprg'. 3049 --- This option cannot be set from a `modeline` or in the `sandbox`, for 3050 --- security reasons. 3051 --- This option defaults to: 3052 --- - `rg --vimgrep -uu ` if ripgrep is available (`:checkhealth`), 3053 --- - `grep -HIn $* /dev/null` on Unix, 3054 --- - `findstr /n $* nul` on Windows. 3055 --- Ripgrep can perform additional filtering such as using .gitignore rules 3056 --- and skipping hidden files. This is disabled by default (see the -u option) 3057 --- to more closely match the behaviour of standard grep. 3058 --- You can make ripgrep match Vim's case handling using the 3059 --- -i/--ignore-case and -S/--smart-case options. 3060 --- An `OptionSet` autocmd can be used to set it up to match automatically. 3061 --- 3062 --- @type string 3063 vim.o.grepprg = "grep -HIn $* /dev/null" 3064 vim.o.gp = vim.o.grepprg 3065 vim.bo.grepprg = vim.o.grepprg 3066 vim.bo.gp = vim.bo.grepprg 3067 vim.go.grepprg = vim.o.grepprg 3068 vim.go.gp = vim.go.grepprg 3069 3070 --- Configures the cursor style for each mode. Works in the GUI and many 3071 --- terminals. See `tui-cursor-shape`. 3072 --- 3073 --- To disable cursor-styling, reset the option: 3074 --- 3075 --- ```vim 3076 --- set guicursor= 3077 --- ``` 3078 --- To enable mode shapes, "Cursor" highlight, and blinking: 3079 --- 3080 --- ```vim 3081 --- set guicursor=n-v-c:block,i-ci-ve:ver25,r-cr:hor20,o:hor50 3082 --- \,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor 3083 --- \,sm:block-blinkwait175-blinkoff150-blinkon175 3084 --- ``` 3085 --- The option is a comma-separated list of parts. Each part consists of a 3086 --- mode-list and an argument-list: 3087 --- mode-list:argument-list,mode-list:argument-list,.. 3088 --- The mode-list is a dash separated list of these modes: 3089 --- n Normal mode 3090 --- v Visual mode 3091 --- ve Visual mode with 'selection' "exclusive" (same as 'v', 3092 --- if not specified) 3093 --- o Operator-pending mode 3094 --- i Insert mode 3095 --- r Replace mode 3096 --- c Command-line Normal (append) mode 3097 --- ci Command-line Insert mode 3098 --- cr Command-line Replace mode 3099 --- sm showmatch in Insert mode 3100 --- t Terminal mode 3101 --- a all modes 3102 --- The argument-list is a dash separated list of these arguments: 3103 --- hor{N} horizontal bar, {N} percent of the character height 3104 --- ver{N} vertical bar, {N} percent of the character width 3105 --- block block cursor, fills the whole character 3106 --- - Only one of the above three should be present. 3107 --- - Default is "block" for each mode. 3108 --- blinkwait{N} *cursor-blinking* 3109 --- blinkon{N} 3110 --- blinkoff{N} 3111 --- blink times for cursor: blinkwait is the delay before 3112 --- the cursor starts blinking, blinkon is the time that 3113 --- the cursor is shown and blinkoff is the time that the 3114 --- cursor is not shown. Times are in msec. When one of 3115 --- the numbers is zero, there is no blinking. E.g.: 3116 --- 3117 --- ```vim 3118 --- set guicursor=n:blinkon0 3119 --- ``` 3120 --- 3121 --- Default is "blinkon0" for each mode. 3122 --- {group-name} 3123 --- Highlight group that decides the color and font of the 3124 --- cursor. 3125 --- In the `TUI`: 3126 --- - `inverse`/reverse and no group-name are interpreted 3127 --- as "host-terminal default cursor colors" which 3128 --- typically means "inverted bg and fg colors". 3129 --- - `ctermfg` and `guifg` are ignored. 3130 --- {group-name}/{group-name} 3131 --- Two highlight group names, the first is used when 3132 --- no language mappings are used, the other when they 3133 --- are. `language-mapping` 3134 --- 3135 --- Examples of parts: 3136 --- n-c-v:block-nCursor In Normal, Command-line and Visual mode, use a 3137 --- block cursor with colors from the "nCursor" 3138 --- highlight group 3139 --- n-v-c-sm:block,i-ci-ve:ver25-Cursor,r-cr-o:hor20 3140 --- In Normal et al. modes, use a block cursor 3141 --- with the default colors defined by the host 3142 --- terminal. In Insert-like modes, use 3143 --- a vertical bar cursor with colors from 3144 --- "Cursor" highlight group. In Replace-like 3145 --- modes, use an underline cursor with 3146 --- default colors. 3147 --- i-ci:ver30-iCursor-blinkwait300-blinkon200-blinkoff150 3148 --- In Insert and Command-line Insert mode, use a 3149 --- 30% vertical bar cursor with colors from the 3150 --- "iCursor" highlight group. Blink a bit 3151 --- faster. 3152 --- 3153 --- The 'a' mode is different. It will set the given argument-list for 3154 --- all modes. It does not reset anything to defaults. This can be used 3155 --- to do a common setting for all modes. For example, to switch off 3156 --- blinking: "a:blinkon0" 3157 --- 3158 --- Examples of cursor highlighting: 3159 --- 3160 --- ```vim 3161 --- highlight Cursor gui=reverse guifg=NONE guibg=NONE 3162 --- highlight Cursor gui=NONE guifg=bg guibg=fg 3163 --- ``` 3164 --- 3165 --- 3166 --- @type string 3167 vim.o.guicursor = "n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20,t:block-blinkon500-blinkoff500-TermCursor" 3168 vim.o.gcr = vim.o.guicursor 3169 vim.go.guicursor = vim.o.guicursor 3170 vim.go.gcr = vim.go.guicursor 3171 3172 --- This is a list of fonts which will be used for the GUI version of Vim. 3173 --- In its simplest form the value is just one font name. When 3174 --- the font cannot be found you will get an error message. To try other 3175 --- font names a list can be specified, font names separated with commas. 3176 --- The first valid font is used. 3177 --- 3178 --- Spaces after a comma are ignored. To include a comma in a font name 3179 --- precede it with a backslash. Setting an option requires an extra 3180 --- backslash before a space and a backslash. See also 3181 --- `option-backslash`. For example: 3182 --- 3183 --- ```vim 3184 --- set guifont=Screen15,\ 7x13,font\\,with\\,commas 3185 --- ``` 3186 --- will make Vim try to use the font "Screen15" first, and if it fails it 3187 --- will try to use "7x13" and then "font,with,commas" instead. 3188 --- 3189 --- If none of the fonts can be loaded, Vim will keep the current setting. 3190 --- If an empty font list is given, Vim will try using other resource 3191 --- settings (for X, it will use the Vim.font resource), and finally it 3192 --- will try some builtin default which should always be there ("7x13" in 3193 --- the case of X). The font names given should be "normal" fonts. Vim 3194 --- will try to find the related bold and italic fonts. 3195 --- 3196 --- For Win32 and Mac OS: 3197 --- 3198 --- ```vim 3199 --- set guifont=* 3200 --- ``` 3201 --- will bring up a font requester, where you can pick the font you want. 3202 --- 3203 --- The font name depends on the GUI used. 3204 --- 3205 --- For Mac OSX you can use something like this: 3206 --- 3207 --- ```vim 3208 --- set guifont=Monaco:h10 3209 --- ``` 3210 --- *E236* 3211 --- Note that the fonts must be mono-spaced (all characters have the same 3212 --- width). 3213 --- 3214 --- To preview a font on X11, you might be able to use the "xfontsel" 3215 --- program. The "xlsfonts" program gives a list of all available fonts. 3216 --- 3217 --- For the Win32 GUI *E244* *E245* 3218 --- - takes these options in the font name: 3219 --- hXX - height is XX (points, can be floating-point) 3220 --- wXX - width is XX (points, can be floating-point) 3221 --- b - bold 3222 --- i - italic 3223 --- u - underline 3224 --- s - strikeout 3225 --- cXX - character set XX. Valid charsets are: ANSI, ARABIC, 3226 --- BALTIC, CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK, 3227 --- HANGEUL, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS, 3228 --- SYMBOL, THAI, TURKISH, VIETNAMESE ANSI and BALTIC. 3229 --- Normally you would use "cDEFAULT". 3230 --- 3231 --- Use a ':' to separate the options. 3232 --- - A '_' can be used in the place of a space, so you don't need to use 3233 --- backslashes to escape the spaces. 3234 --- - Examples: 3235 --- 3236 --- ```vim 3237 --- set guifont=courier_new:h12:w5:b:cRUSSIAN 3238 --- set guifont=Andale_Mono:h7.5:w4.5 3239 --- ``` 3240 --- 3241 --- 3242 --- @type string 3243 vim.o.guifont = "Source Code Pro,DejaVu Sans Mono,Courier New,monospace" 3244 vim.o.gfn = vim.o.guifont 3245 vim.go.guifont = vim.o.guifont 3246 vim.go.gfn = vim.go.guifont 3247 3248 --- Comma-separated list of fonts to be used for double-width characters. 3249 --- The first font that can be loaded is used. 3250 --- Note: The size of these fonts must be exactly twice as wide as the one 3251 --- specified with 'guifont' and the same height. 3252 --- 3253 --- When 'guifont' has a valid font and 'guifontwide' is empty Vim will 3254 --- attempt to set 'guifontwide' to a matching double-width font. 3255 --- 3256 --- @type string 3257 vim.o.guifontwide = "" 3258 vim.o.gfw = vim.o.guifontwide 3259 vim.go.guifontwide = vim.o.guifontwide 3260 vim.go.gfw = vim.go.guifontwide 3261 3262 --- Name of the main help file. All distributed help files should be 3263 --- placed together in one directory. Additionally, all "doc" directories 3264 --- in 'runtimepath' will be used. 3265 --- Environment variables are expanded `:set_env`. For example: 3266 --- "$VIMRUNTIME/doc/help.txt". If $VIMRUNTIME is not set, $VIM is also 3267 --- tried. Also see `$VIMRUNTIME` and `option-backslash` about including 3268 --- spaces and backslashes. 3269 --- This option cannot be set from a `modeline` or in the `sandbox`, for 3270 --- security reasons. 3271 --- 3272 --- @type string 3273 vim.o.helpfile = "$VIMRUNTIME/doc/help.txt" 3274 vim.o.hf = vim.o.helpfile 3275 vim.go.helpfile = vim.o.helpfile 3276 vim.go.hf = vim.go.helpfile 3277 3278 --- Minimal initial height of the help window when it is opened with the 3279 --- ":help" command. The initial height of the help window is half of the 3280 --- current window, or (when the 'ea' option is on) the same as other 3281 --- windows. When the height is less than 'helpheight', the height is 3282 --- set to 'helpheight'. Set to zero to disable. 3283 --- 3284 --- @type integer 3285 vim.o.helpheight = 20 3286 vim.o.hh = vim.o.helpheight 3287 vim.go.helpheight = vim.o.helpheight 3288 vim.go.hh = vim.go.helpheight 3289 3290 --- Comma-separated list of languages. Vim will use the first language 3291 --- for which the desired help can be found. The English help will always 3292 --- be used as a last resort. You can add "en" to prefer English over 3293 --- another language, but that will only find tags that exist in that 3294 --- language and not in the English help. 3295 --- Example: 3296 --- 3297 --- ```vim 3298 --- set helplang=de,it 3299 --- ``` 3300 --- This will first search German, then Italian and finally English help 3301 --- files. 3302 --- When using `CTRL-]` and ":help!" in a non-English help file Vim will 3303 --- try to find the tag in the current language before using this option. 3304 --- See `help-translated`. 3305 --- 3306 --- @type string 3307 vim.o.helplang = "" 3308 vim.o.hlg = vim.o.helplang 3309 vim.go.helplang = vim.o.helplang 3310 vim.go.hlg = vim.go.helplang 3311 3312 --- When off a buffer is unloaded (including loss of undo information) 3313 --- when it is `abandon`ed. When on a buffer becomes hidden when it is 3314 --- `abandon`ed. A buffer displayed in another window does not become 3315 --- hidden, of course. 3316 --- 3317 --- Commands that move through the buffer list sometimes hide a buffer 3318 --- although the 'hidden' option is off when these three are true: 3319 --- - the buffer is modified 3320 --- - 'autowrite' is off or writing is not possible 3321 --- - the '!' flag was used 3322 --- Also see `windows`. 3323 --- 3324 --- To hide a specific buffer use the 'bufhidden' option. 3325 --- 'hidden' is set for one command with ":hide {command}" `:hide`. 3326 --- 3327 --- @type boolean 3328 vim.o.hidden = true 3329 vim.o.hid = vim.o.hidden 3330 vim.go.hidden = vim.o.hidden 3331 vim.go.hid = vim.go.hidden 3332 3333 --- A history of ":" commands, and a history of previous search patterns 3334 --- is remembered. This option decides how many entries may be stored in 3335 --- each of these histories (see `cmdline-editing` and 'messagesopt' for 3336 --- the number of messages to remember). 3337 --- The maximum value is 10000. 3338 --- 3339 --- @type integer 3340 vim.o.history = 10000 3341 vim.o.hi = vim.o.history 3342 vim.go.history = vim.o.history 3343 vim.go.hi = vim.go.history 3344 3345 --- When there is a previous search pattern, highlight all its matches. 3346 --- The `hl-Search` highlight group determines the highlighting for all 3347 --- matches not under the cursor while the `hl-CurSearch` highlight group 3348 --- (if defined) determines the highlighting for the match under the 3349 --- cursor. If `hl-CurSearch` is not defined, then `hl-Search` is used for 3350 --- both. Note that only the matching text is highlighted, any offsets 3351 --- are not applied. 3352 --- See also: 'incsearch' and `:match`. 3353 --- When you get bored looking at the highlighted matches, you can turn it 3354 --- off with `:nohlsearch`. This does not change the option value, as 3355 --- soon as you use a search command, the highlighting comes back. 3356 --- 'redrawtime' specifies the maximum time spent on finding matches. 3357 --- When the search pattern can match an end-of-line, Vim will try to 3358 --- highlight all of the matched text. However, this depends on where the 3359 --- search starts. This will be the first line in the window or the first 3360 --- line below a closed fold. A match in a previous line which is not 3361 --- drawn may not continue in a newly drawn line. 3362 --- You can specify whether the highlight status is restored on startup 3363 --- with the 'h' flag in 'shada' `shada-h`. 3364 --- 3365 --- @type boolean 3366 vim.o.hlsearch = true 3367 vim.o.hls = vim.o.hlsearch 3368 vim.go.hlsearch = vim.o.hlsearch 3369 vim.go.hls = vim.go.hlsearch 3370 3371 --- When on, the icon text of the window will be set to the value of 3372 --- 'iconstring' (if it is not empty), or to the name of the file 3373 --- currently being edited. Only the last part of the name is used. 3374 --- Overridden by the 'iconstring' option. 3375 --- Only works if the terminal supports setting window icons. 3376 --- 3377 --- @type boolean 3378 vim.o.icon = false 3379 vim.go.icon = vim.o.icon 3380 3381 --- When this option is not empty, it will be used for the icon text of 3382 --- the window. This happens only when the 'icon' option is on. 3383 --- Only works if the terminal supports setting window icon text 3384 --- When this option contains printf-style '%' items, they will be 3385 --- expanded according to the rules used for 'statusline'. See 3386 --- 'titlestring' for example settings. 3387 --- This option cannot be set in a modeline when 'modelineexpr' is off. 3388 --- 3389 --- @type string 3390 vim.o.iconstring = "" 3391 vim.go.iconstring = vim.o.iconstring 3392 3393 --- Ignore case in search patterns, `cmdline-completion`, when 3394 --- searching in the tags file, `expr-==` and for Insert-mode completion 3395 --- `ins-completion`. 3396 --- Also see 'smartcase' and 'tagcase'. 3397 --- Can be overruled by using "\c" or "\C" in the pattern, see 3398 --- `/ignorecase`. 3399 --- 3400 --- @type boolean 3401 vim.o.ignorecase = false 3402 vim.o.ic = vim.o.ignorecase 3403 vim.go.ignorecase = vim.o.ignorecase 3404 vim.go.ic = vim.go.ignorecase 3405 3406 --- Specifies whether :lmap or an Input Method (IM) is to be used in 3407 --- Insert mode. Valid values: 3408 --- 0 :lmap is off and IM is off 3409 --- 1 :lmap is ON and IM is off 3410 --- 2 :lmap is off and IM is ON 3411 --- To always reset the option to zero when leaving Insert mode with <Esc> 3412 --- this can be used: 3413 --- 3414 --- ```vim 3415 --- inoremap <ESC> <ESC>:set iminsert=0<CR> 3416 --- ``` 3417 --- This makes :lmap and IM turn off automatically when leaving Insert 3418 --- mode. 3419 --- Note that this option changes when using CTRL-^ in Insert mode 3420 --- `i_CTRL-^`. 3421 --- The value is set to 1 when setting 'keymap' to a valid keymap name. 3422 --- It is also used for the argument of commands like "r" and "f". 3423 --- 3424 --- @type integer 3425 vim.o.iminsert = 0 3426 vim.o.imi = vim.o.iminsert 3427 vim.bo.iminsert = vim.o.iminsert 3428 vim.bo.imi = vim.bo.iminsert 3429 3430 --- Specifies whether :lmap or an Input Method (IM) is to be used when 3431 --- entering a search pattern. Valid values: 3432 --- -1 the value of 'iminsert' is used, makes it look like 3433 --- 'iminsert' is also used when typing a search pattern 3434 --- 0 :lmap is off and IM is off 3435 --- 1 :lmap is ON and IM is off 3436 --- 2 :lmap is off and IM is ON 3437 --- Note that this option changes when using CTRL-^ in Command-line mode 3438 --- `c_CTRL-^`. 3439 --- The value is set to 1 when it is not -1 and setting the 'keymap' 3440 --- option to a valid keymap name. 3441 --- 3442 --- @type integer 3443 vim.o.imsearch = -1 3444 vim.o.ims = vim.o.imsearch 3445 vim.bo.imsearch = vim.o.imsearch 3446 vim.bo.ims = vim.bo.imsearch 3447 3448 --- When nonempty, shows the effects of `:substitute`, `:smagic`, 3449 --- `:snomagic` and user commands with the `:command-preview` flag as you 3450 --- type. 3451 --- 3452 --- Possible values: 3453 --- nosplit Shows the effects of a command incrementally in the 3454 --- buffer. 3455 --- split Like "nosplit", but also shows partial off-screen 3456 --- results in a preview window. 3457 --- 3458 --- If the preview for built-in commands is too slow (exceeds 3459 --- 'redrawtime') then 'inccommand' is automatically disabled until 3460 --- `Command-line-mode` is done. 3461 --- 3462 --- @type 'nosplit'|'split'|'' 3463 vim.o.inccommand = "nosplit" 3464 vim.o.icm = vim.o.inccommand 3465 vim.go.inccommand = vim.o.inccommand 3466 vim.go.icm = vim.go.inccommand 3467 3468 --- Pattern to be used to find an include command. It is a search 3469 --- pattern, just like for the "/" command (See `pattern`). This option 3470 --- is used for the commands "[i", "]I", "[d", etc. 3471 --- Normally the 'isfname' option is used to recognize the file name that 3472 --- comes after the matched pattern. But if "\zs" appears in the pattern 3473 --- then the text matched from "\zs" to the end, or until "\ze" if it 3474 --- appears, is used as the file name. Use this to include characters 3475 --- that are not in 'isfname', such as a space. You can then use 3476 --- 'includeexpr' to process the matched text. 3477 --- See `option-backslash` about including spaces and backslashes. 3478 --- 3479 --- @type string 3480 vim.o.include = "" 3481 vim.o.inc = vim.o.include 3482 vim.bo.include = vim.o.include 3483 vim.bo.inc = vim.bo.include 3484 vim.go.include = vim.o.include 3485 vim.go.inc = vim.go.include 3486 3487 --- Expression to be used to transform the string found with the 'include' 3488 --- option to a file name. Mostly useful to change "." to "/" for Java: 3489 --- 3490 --- ```vim 3491 --- setlocal includeexpr=substitute(v:fname,'\\.','/','g') 3492 --- ``` 3493 --- The "v:fname" variable will be set to the file name that was detected. 3494 --- Note the double backslash: the `:set` command first halves them, then 3495 --- one remains in the value, where "\." matches a dot literally. For 3496 --- simple character replacements `tr()` avoids the need for escaping: 3497 --- 3498 --- ```vim 3499 --- setlocal includeexpr=tr(v:fname,'.','/') 3500 --- ``` 3501 --- 3502 --- Also used for the `gf` command if an unmodified file name can't be 3503 --- found. Allows doing "gf" on the name after an 'include' statement. 3504 --- Note: Not used for `<cfile>`. 3505 --- 3506 --- If the expression starts with s: or `<SID>`, then it is replaced with 3507 --- the script ID (`local-function`). Example: 3508 --- 3509 --- ```vim 3510 --- setlocal includeexpr=s:MyIncludeExpr() 3511 --- setlocal includeexpr=<SID>SomeIncludeExpr() 3512 --- ``` 3513 --- Otherwise, the expression is evaluated in the context of the script 3514 --- where the option was set, thus script-local items are available. 3515 --- 3516 --- It is more efficient if the value is just a function call without 3517 --- arguments, see `expr-option-function`. 3518 --- 3519 --- The expression will be evaluated in the `sandbox` when set from a 3520 --- modeline, see `sandbox-option`. 3521 --- This option cannot be set in a modeline when 'modelineexpr' is off. 3522 --- 3523 --- It is not allowed to change text or jump to another window while 3524 --- evaluating 'includeexpr' `textlock`. 3525 --- 3526 --- @type string 3527 vim.o.includeexpr = "" 3528 vim.o.inex = vim.o.includeexpr 3529 vim.bo.includeexpr = vim.o.includeexpr 3530 vim.bo.inex = vim.bo.includeexpr 3531 3532 --- While typing a search command, show where the pattern, as it was typed 3533 --- so far, matches. The matched string is highlighted. If the pattern 3534 --- is invalid or not found, nothing is shown. The screen will be updated 3535 --- often, this is only useful on fast terminals. 3536 --- Note that the match will be shown, but the cursor will return to its 3537 --- original position when no match is found and when pressing <Esc>. You 3538 --- still need to finish the search command with <Enter> to move the 3539 --- cursor to the match. 3540 --- You can use the CTRL-G and CTRL-T keys to move to the next and 3541 --- previous match. `c_CTRL-G` `c_CTRL-T` 3542 --- Vim only searches for about half a second. With a complicated 3543 --- pattern and/or a lot of text the match may not be found. This is to 3544 --- avoid that Vim hangs while you are typing the pattern. 3545 --- The `hl-IncSearch` highlight group determines the highlighting. 3546 --- When 'hlsearch' is on, all matched strings are highlighted too while 3547 --- typing a search command. See also: 'hlsearch'. 3548 --- If you don't want to turn 'hlsearch' on, but want to highlight all 3549 --- matches while searching, you can turn on and off 'hlsearch' with 3550 --- autocmd. Example: 3551 --- 3552 --- ```vim 3553 --- augroup vimrc-incsearch-highlight 3554 --- autocmd! 3555 --- autocmd CmdlineEnter [\/\?] :set hlsearch 3556 --- autocmd CmdlineLeave [\/\?] :set nohlsearch 3557 --- augroup END 3558 --- ``` 3559 --- 3560 --- CTRL-L can be used to add one character from after the current match 3561 --- to the command line. If 'ignorecase' and 'smartcase' are set and the 3562 --- command line has no uppercase characters, the added character is 3563 --- converted to lowercase. 3564 --- CTRL-R CTRL-W can be used to add the word at the end of the current 3565 --- match, excluding the characters that were already typed. 3566 --- 3567 --- @type boolean 3568 vim.o.incsearch = true 3569 vim.o.is = vim.o.incsearch 3570 vim.go.incsearch = vim.o.incsearch 3571 vim.go.is = vim.go.incsearch 3572 3573 --- Expression which is evaluated to obtain the proper indent for a line. 3574 --- It is used when a new line is created, for the `=` operator and 3575 --- in Insert mode as specified with the 'indentkeys' option. 3576 --- When this option is not empty, it overrules the 'cindent' and 3577 --- 'smartindent' indenting. When 'lisp' is set, this option is 3578 --- only used when 'lispoptions' contains "expr:1". 3579 --- The expression is evaluated with `v:lnum` set to the line number for 3580 --- which the indent is to be computed. The cursor is also in this line 3581 --- when the expression is evaluated (but it may be moved around). 3582 --- 3583 --- If the expression starts with s: or `<SID>`, then it is replaced with 3584 --- the script ID (`local-function`). Example: 3585 --- 3586 --- ```vim 3587 --- set indentexpr=s:MyIndentExpr() 3588 --- set indentexpr=<SID>SomeIndentExpr() 3589 --- ``` 3590 --- Otherwise, the expression is evaluated in the context of the script 3591 --- where the option was set, thus script-local items are available. 3592 --- 3593 --- The advantage of using a function call without arguments is that it is 3594 --- faster, see `expr-option-function`. 3595 --- 3596 --- The expression must return the number of spaces worth of indent. It 3597 --- can return "-1" to keep the current indent (this means 'autoindent' is 3598 --- used for the indent). 3599 --- Functions useful for computing the indent are `indent()`, `cindent()` 3600 --- and `lispindent()`. 3601 --- The evaluation of the expression must not have side effects! It must 3602 --- not change the text, jump to another window, etc. Afterwards the 3603 --- cursor position is always restored, thus the cursor may be moved. 3604 --- Normally this option would be set to call a function: 3605 --- 3606 --- ```vim 3607 --- set indentexpr=GetMyIndent() 3608 --- ``` 3609 --- Error messages will be suppressed, unless the 'debug' option contains 3610 --- "msg". 3611 --- See `indent-expression`. 3612 --- 3613 --- The expression will be evaluated in the `sandbox` when set from a 3614 --- modeline, see `sandbox-option`. 3615 --- This option cannot be set in a modeline when 'modelineexpr' is off. 3616 --- 3617 --- It is not allowed to change text or jump to another window while 3618 --- evaluating 'indentexpr' `textlock`. 3619 --- 3620 --- @type string 3621 vim.o.indentexpr = "" 3622 vim.o.inde = vim.o.indentexpr 3623 vim.bo.indentexpr = vim.o.indentexpr 3624 vim.bo.inde = vim.bo.indentexpr 3625 3626 --- A list of keys that, when typed in Insert mode, cause reindenting of 3627 --- the current line. Only happens if 'indentexpr' isn't empty. 3628 --- The format is identical to 'cinkeys', see `indentkeys-format`. 3629 --- See `C-indenting` and `indent-expression`. 3630 --- 3631 --- @type string 3632 vim.o.indentkeys = "0{,0},0),0],:,0#,!^F,o,O,e" 3633 vim.o.indk = vim.o.indentkeys 3634 vim.bo.indentkeys = vim.o.indentkeys 3635 vim.bo.indk = vim.bo.indentkeys 3636 3637 --- When doing keyword completion in insert mode `ins-completion`, and 3638 --- 'ignorecase' is also on, the case of the match is adjusted depending 3639 --- on the typed text. If the typed text contains a lowercase letter 3640 --- where the match has an upper case letter, the completed part is made 3641 --- lowercase. If the typed text has no lowercase letters and the match 3642 --- has a lowercase letter where the typed text has an uppercase letter, 3643 --- and there is a letter before it, the completed part is made uppercase. 3644 --- With 'noinfercase' the match is used as-is. 3645 --- 3646 --- @type boolean 3647 vim.o.infercase = false 3648 vim.o.inf = vim.o.infercase 3649 vim.bo.infercase = vim.o.infercase 3650 vim.bo.inf = vim.bo.infercase 3651 3652 --- The characters specified by this option are included in file names and 3653 --- path names. Filenames are used for commands like "gf", "[i" and in 3654 --- the tags file. It is also used for "\f" in a `pattern`. 3655 --- Multi-byte characters 256 and above are always included, only the 3656 --- characters up to 255 are specified with this option. 3657 --- For UTF-8 the characters 0xa0 to 0xff are included as well. 3658 --- Think twice before adding white space to this option. Although a 3659 --- space may appear inside a file name, the effect will be that Vim 3660 --- doesn't know where a file name starts or ends when doing completion. 3661 --- It most likely works better without a space in 'isfname'. 3662 --- 3663 --- Note that on systems using a backslash as path separator, Vim tries to 3664 --- do its best to make it work as you would expect. That is a bit 3665 --- tricky, since Vi originally used the backslash to escape special 3666 --- characters. Vim will not remove a backslash in front of a normal file 3667 --- name character on these systems, but it will on Unix and alikes. The 3668 --- '&' and '^' are not included by default, because these are special for 3669 --- cmd.exe. 3670 --- 3671 --- The format of this option is a list of parts, separated with commas. 3672 --- Each part can be a single character number or a range. A range is two 3673 --- character numbers with '-' in between. A character number can be a 3674 --- decimal number between 0 and 255 or the ASCII character itself (does 3675 --- not work for digits). Example: 3676 --- "_,-,128-140,#-43" (include '_' and '-' and the range 3677 --- 128 to 140 and '#' to 43) 3678 --- If a part starts with '^', the following character number or range 3679 --- will be excluded from the option. The option is interpreted from left 3680 --- to right. Put the excluded character after the range where it is 3681 --- included. To include '^' itself use it as the last character of the 3682 --- option or the end of a range. Example: 3683 --- "^a-z,#,^" (exclude 'a' to 'z', include '#' and '^') 3684 --- If the character is '@', all characters where isalpha() returns TRUE 3685 --- are included. Normally these are the characters a to z and A to Z, 3686 --- plus accented characters. To include '@' itself use "@-@". Examples: 3687 --- "@,^a-z" All alphabetic characters, excluding lower 3688 --- case ASCII letters. 3689 --- "a-z,A-Z,@-@" All letters plus the '@' character. 3690 --- A comma can be included by using it where a character number is 3691 --- expected. Example: 3692 --- "48-57,,,_" Digits, comma and underscore. 3693 --- A comma can be excluded by prepending a '^'. Example: 3694 --- " -~,^,,9" All characters from space to '~', excluding 3695 --- comma, plus <Tab>. 3696 --- See `option-backslash` about including spaces and backslashes. 3697 --- 3698 --- @type string 3699 vim.o.isfname = "@,48-57,/,.,-,_,+,,,#,$,%,~,=" 3700 vim.o.isf = vim.o.isfname 3701 vim.go.isfname = vim.o.isfname 3702 vim.go.isf = vim.go.isfname 3703 3704 --- The characters given by this option are included in identifiers. 3705 --- Identifiers are used in recognizing environment variables and after a 3706 --- match of the 'define' option. It is also used for "\i" in a 3707 --- `pattern`. See 'isfname' for a description of the format of this 3708 --- option. For '@' only characters up to 255 are used. 3709 --- Careful: If you change this option, it might break expanding 3710 --- environment variables. E.g., when '/' is included and Vim tries to 3711 --- expand "$HOME/.local/state/nvim/shada/main.shada". Maybe you should 3712 --- change 'iskeyword' instead. 3713 --- 3714 --- @type string 3715 vim.o.isident = "@,48-57,_,192-255" 3716 vim.o.isi = vim.o.isident 3717 vim.go.isident = vim.o.isident 3718 vim.go.isi = vim.go.isident 3719 3720 --- Keywords are used in searching and recognizing with many commands: 3721 --- "w", "*", "[i", etc. It is also used for "\k" in a `pattern`. See 3722 --- 'isfname' for a description of the format of this option. For '@' 3723 --- characters above 255 check the "word" character class (any character 3724 --- that is categorized as a letter, number or emoji according to the 3725 --- Unicode general category). 3726 --- 3727 --- Note that there is a difference between the "\k" character class and 3728 --- the `word` motion. The former matches any word character, while the 3729 --- latter stops at a change of the character class. 3730 --- 3731 --- For C programs you could use "a-z,A-Z,48-57,_,.,-,>". 3732 --- For a help file it is set to all non-blank printable characters except 3733 --- "*", '"' and '|' (so that CTRL-] on a command finds the help for that 3734 --- command). 3735 --- When the 'lisp' option is on the '-' character is always included. 3736 --- This option also influences syntax highlighting, unless the syntax 3737 --- uses `:syn-iskeyword`. 3738 --- 3739 --- @type string 3740 vim.o.iskeyword = "@,48-57,_,192-255" 3741 vim.o.isk = vim.o.iskeyword 3742 vim.bo.iskeyword = vim.o.iskeyword 3743 vim.bo.isk = vim.bo.iskeyword 3744 3745 --- The characters given by this option are displayed directly on the 3746 --- screen. It is also used for "\p" in a `pattern`. The characters from 3747 --- space (ASCII 32) to '~' (ASCII 126) are always displayed directly, 3748 --- even when they are not included in 'isprint' or excluded. See 3749 --- 'isfname' for a description of the format of this option. 3750 --- 3751 --- Non-printable characters are displayed with two characters: 3752 --- 0 - 31 "^@" - "^_" 3753 --- 32 - 126 always single characters 3754 --- 127 "^?" 3755 --- 128 - 159 "~@" - "~_" 3756 --- 160 - 254 "| " - "|~" 3757 --- 255 "~?" 3758 --- Illegal bytes from 128 to 255 (invalid UTF-8) are 3759 --- displayed as <xx>, with the hexadecimal value of the byte. 3760 --- When 'display' contains "uhex" all unprintable characters are 3761 --- displayed as <xx>. 3762 --- The SpecialKey highlighting will be used for unprintable characters. 3763 --- `hl-SpecialKey` 3764 --- 3765 --- Multi-byte characters 256 and above are always included, only the 3766 --- characters up to 255 are specified with this option. When a character 3767 --- is printable but it is not available in the current font, a 3768 --- replacement character will be shown. 3769 --- Unprintable and zero-width Unicode characters are displayed as <xxxx>. 3770 --- There is no option to specify these characters. 3771 --- 3772 --- @type string 3773 vim.o.isprint = "@,161-255" 3774 vim.o.isp = vim.o.isprint 3775 vim.go.isprint = vim.o.isprint 3776 vim.go.isp = vim.go.isprint 3777 3778 --- Insert two spaces after a '.', '?' and '!' with a join command. 3779 --- Otherwise only one space is inserted. 3780 --- 3781 --- @type boolean 3782 vim.o.joinspaces = false 3783 vim.o.js = vim.o.joinspaces 3784 vim.go.joinspaces = vim.o.joinspaces 3785 vim.go.js = vim.go.joinspaces 3786 3787 --- List of words that change the behavior of the `jumplist`. 3788 --- stack Make the jumplist behave like the tagstack. 3789 --- Relative location of entries in the jumplist is 3790 --- preserved at the cost of discarding subsequent entries 3791 --- when navigating backwards in the jumplist and then 3792 --- jumping to a location. `jumplist-stack` 3793 --- 3794 --- view When moving through the jumplist, `changelist`, 3795 --- `alternate-file`, using `mark-motions` or when popping 3796 --- the `tagstack` try to restore the `mark-view` in which 3797 --- the action occurred. 3798 --- 3799 --- clean Remove unloaded buffers from the jumplist. 3800 --- EXPERIMENTAL: this flag may change in the future. 3801 --- 3802 --- @type string 3803 vim.o.jumpoptions = "clean" 3804 vim.o.jop = vim.o.jumpoptions 3805 vim.go.jumpoptions = vim.o.jumpoptions 3806 vim.go.jop = vim.go.jumpoptions 3807 3808 --- Name of a keyboard mapping. See `mbyte-keymap`. 3809 --- Setting this option to a valid keymap name has the side effect of 3810 --- setting 'iminsert' to one, so that the keymap becomes effective. 3811 --- 'imsearch' is also set to one, unless it was -1 3812 --- Only alphanumeric characters, '.', '-' and '_' can be used. 3813 --- 3814 --- @type string 3815 vim.o.keymap = "" 3816 vim.o.kmp = vim.o.keymap 3817 vim.bo.keymap = vim.o.keymap 3818 vim.bo.kmp = vim.bo.keymap 3819 3820 --- List of comma-separated words, which enable special things that keys 3821 --- can do. These values can be used: 3822 --- startsel Using a shifted special key starts selection (either 3823 --- Select mode or Visual mode, depending on "key" being 3824 --- present in 'selectmode'). 3825 --- stopsel Using a not-shifted special key stops selection. 3826 --- Special keys in this context are the cursor keys, <End>, <Home>, 3827 --- <PageUp> and <PageDown>. 3828 --- 3829 --- @type string 3830 vim.o.keymodel = "" 3831 vim.o.km = vim.o.keymodel 3832 vim.go.keymodel = vim.o.keymodel 3833 vim.go.km = vim.go.keymodel 3834 3835 --- Program to use for the `K` command. Environment variables are 3836 --- expanded `:set_env`. ":help" may be used to access the Vim internal 3837 --- help. (Note that previously setting the global option to the empty 3838 --- value did this, which is now deprecated.) 3839 --- When the first character is ":", the command is invoked as a Vim 3840 --- Ex command prefixed with [count]. 3841 --- When "man" or "man -s" is used, Vim will automatically translate 3842 --- a [count] for the "K" command to a section number. 3843 --- See `option-backslash` about including spaces and backslashes. 3844 --- Example: 3845 --- 3846 --- ```vim 3847 --- set keywordprg=man\ -s 3848 --- set keywordprg=:Man 3849 --- ``` 3850 --- This option cannot be set from a `modeline` or in the `sandbox`, for 3851 --- security reasons. 3852 --- 3853 --- @type string 3854 vim.o.keywordprg = ":Man" 3855 vim.o.kp = vim.o.keywordprg 3856 vim.bo.keywordprg = vim.o.keywordprg 3857 vim.bo.kp = vim.bo.keywordprg 3858 vim.go.keywordprg = vim.o.keywordprg 3859 vim.go.kp = vim.go.keywordprg 3860 3861 --- This option allows switching your keyboard into a special language 3862 --- mode. When you are typing text in Insert mode the characters are 3863 --- inserted directly. When in Normal mode the 'langmap' option takes 3864 --- care of translating these special characters to the original meaning 3865 --- of the key. This means you don't have to change the keyboard mode to 3866 --- be able to execute Normal mode commands. 3867 --- This is the opposite of the 'keymap' option, where characters are 3868 --- mapped in Insert mode. 3869 --- Also consider setting 'langremap' to off, to prevent 'langmap' from 3870 --- applying to characters resulting from a mapping. 3871 --- This option cannot be set from a `modeline` or in the `sandbox`, for 3872 --- security reasons. 3873 --- 3874 --- Example (for Greek, in UTF-8): *greek* 3875 --- 3876 --- ```vim 3877 --- 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 3878 --- ``` 3879 --- Example (exchanges meaning of z and y for commands): 3880 --- 3881 --- ```vim 3882 --- set langmap=zy,yz,ZY,YZ 3883 --- ``` 3884 --- 3885 --- The 'langmap' option is a list of parts, separated with commas. Each 3886 --- part can be in one of two forms: 3887 --- 1. A list of pairs. Each pair is a "from" character immediately 3888 --- followed by the "to" character. Examples: "aA", "aAbBcC". 3889 --- 2. A list of "from" characters, a semicolon and a list of "to" 3890 --- characters. Example: "abc;ABC" 3891 --- Example: "aA,fgh;FGH,cCdDeE" 3892 --- Special characters need to be preceded with a backslash. These are 3893 --- ";", ',', '"', '|' and backslash itself. 3894 --- 3895 --- This will allow you to activate vim actions without having to switch 3896 --- back and forth between the languages. Your language characters will 3897 --- be understood as normal vim English characters (according to the 3898 --- langmap mappings) in the following cases: 3899 --- o Normal/Visual mode (commands, buffer/register names, user mappings) 3900 --- o Insert/Replace Mode: Register names after CTRL-R 3901 --- o Insert/Replace Mode: Mappings 3902 --- Characters entered in Command-line mode will NOT be affected by 3903 --- this option. Note that this option can be changed at any time 3904 --- allowing to switch between mappings for different languages/encodings. 3905 --- Use a mapping to avoid having to type it each time! 3906 --- 3907 --- @type string 3908 vim.o.langmap = "" 3909 vim.o.lmap = vim.o.langmap 3910 vim.go.langmap = vim.o.langmap 3911 vim.go.lmap = vim.go.langmap 3912 3913 --- Language to use for menu translation. Tells which file is loaded 3914 --- from the "lang" directory in 'runtimepath': 3915 --- 3916 --- ```vim 3917 --- "lang/menu_" .. &langmenu .. ".vim" 3918 --- ``` 3919 --- (without the spaces). For example, to always use the Dutch menus, no 3920 --- matter what $LANG is set to: 3921 --- 3922 --- ```vim 3923 --- set langmenu=nl_NL.ISO_8859-1 3924 --- ``` 3925 --- When 'langmenu' is empty, `v:lang` is used. 3926 --- Only normal file name characters can be used, `/\*?[|<>` are illegal. 3927 --- If your $LANG is set to a non-English language but you do want to use 3928 --- the English menus: 3929 --- 3930 --- ```vim 3931 --- set langmenu=none 3932 --- ``` 3933 --- This option must be set before loading menus, switching on filetype 3934 --- detection or syntax highlighting. Once the menus are defined setting 3935 --- this option has no effect. But you could do this: 3936 --- 3937 --- ```vim 3938 --- source $VIMRUNTIME/delmenu.vim 3939 --- set langmenu=de_DE.ISO_8859-1 3940 --- source $VIMRUNTIME/menu.vim 3941 --- ``` 3942 --- Warning: This deletes all menus that you defined yourself! 3943 --- 3944 --- @type string 3945 vim.o.langmenu = "" 3946 vim.o.lm = vim.o.langmenu 3947 vim.go.langmenu = vim.o.langmenu 3948 vim.go.lm = vim.go.langmenu 3949 3950 --- When off, setting 'langmap' does not apply to characters resulting 3951 --- from a mapping. If setting 'langmap' disables some of your mappings, 3952 --- make sure this option is off. 3953 --- 3954 --- @type boolean 3955 vim.o.langremap = false 3956 vim.o.lrm = vim.o.langremap 3957 vim.go.langremap = vim.o.langremap 3958 vim.go.lrm = vim.go.langremap 3959 3960 --- The value of this option influences when the last window will have a 3961 --- status line: 3962 --- 0: never 3963 --- 1: only if there are at least two windows 3964 --- 2: always 3965 --- 3: always and ONLY the last window 3966 --- The screen looks nicer with a status line if you have several 3967 --- windows, but it takes another screen line. `status-line` 3968 --- 3969 --- @type integer 3970 vim.o.laststatus = 2 3971 vim.o.ls = vim.o.laststatus 3972 vim.go.laststatus = vim.o.laststatus 3973 vim.go.ls = vim.go.laststatus 3974 3975 --- When this option is set, the screen will not be redrawn while 3976 --- executing macros, registers and other commands that have not been 3977 --- typed. Also, updating the window title is postponed. To force an 3978 --- update use `:redraw`. 3979 --- This may occasionally cause display errors. It is only meant to be 3980 --- set temporarily when performing an operation where redrawing may cause 3981 --- flickering or cause a slowdown. 3982 --- 3983 --- @type boolean 3984 vim.o.lazyredraw = false 3985 vim.o.lz = vim.o.lazyredraw 3986 vim.go.lazyredraw = vim.o.lazyredraw 3987 vim.go.lz = vim.go.lazyredraw 3988 3989 --- Like 'chistory', but for the location list stack associated with a 3990 --- window. If the option is changed in either the location list window 3991 --- itself or the window that is associated with the location list stack, 3992 --- the new value will also be applied to the other one. This means this 3993 --- value will always be the same for a given location list window and its 3994 --- corresponding window. See `quickfix-stack` for additional info. 3995 --- 3996 --- @type integer 3997 vim.o.lhistory = 10 3998 vim.o.lhi = vim.o.lhistory 3999 vim.wo.lhistory = vim.o.lhistory 4000 vim.wo.lhi = vim.wo.lhistory 4001 4002 --- If on, Vim will wrap long lines at a character in 'breakat' rather 4003 --- than at the last character that fits on the screen. Unlike 4004 --- 'wrapmargin' and 'textwidth', this does not insert <EOL>s in the file, 4005 --- it only affects the way the file is displayed, not its contents. 4006 --- If 'breakindent' is set, line is visually indented. Then, the value 4007 --- of 'showbreak' is used to put in front of wrapped lines. This option 4008 --- is not used when the 'wrap' option is off. 4009 --- Note that <Tab> characters after an <EOL> are mostly not displayed 4010 --- with the right amount of white space. 4011 --- 4012 --- @type boolean 4013 vim.o.linebreak = false 4014 vim.o.lbr = vim.o.linebreak 4015 vim.wo.linebreak = vim.o.linebreak 4016 vim.wo.lbr = vim.wo.linebreak 4017 4018 --- Number of lines of the Vim window. 4019 --- Normally you don't need to set this. It is done automatically by the 4020 --- terminal initialization code. 4021 --- When Vim is running in the GUI or in a resizable window, setting this 4022 --- option will cause the window size to be changed. When you only want 4023 --- to use the size for the GUI, put the command in your `gvimrc` file. 4024 --- Vim limits the number of lines to what fits on the screen. You can 4025 --- use this command to get the tallest window possible: 4026 --- 4027 --- ```vim 4028 --- set lines=999 4029 --- ``` 4030 --- Minimum value is 2, maximum value is 1000. 4031 --- 4032 --- @type integer 4033 vim.o.lines = 24 4034 vim.go.lines = vim.o.lines 4035 4036 --- only in the GUI 4037 --- Number of pixel lines inserted between characters. Useful if the font 4038 --- uses the full character cell height, making lines touch each other. 4039 --- When non-zero there is room for underlining. 4040 --- With some fonts there can be too much room between lines (to have 4041 --- space for ascents and descents). Then it makes sense to set 4042 --- 'linespace' to a negative value. This may cause display problems 4043 --- though! 4044 --- 4045 --- @type integer 4046 vim.o.linespace = 0 4047 vim.o.lsp = vim.o.linespace 4048 vim.go.linespace = vim.o.linespace 4049 vim.go.lsp = vim.go.linespace 4050 4051 --- Lisp mode: When <Enter> is typed in insert mode set the indent for 4052 --- the next line to Lisp standards (well, sort of). Also happens with 4053 --- "cc" or "S". 'autoindent' must also be on for this to work. 4054 --- Also see 'lispwords'. 4055 --- The '-' character is included in keyword characters. Redefines the 4056 --- "=" operator to use this same indentation algorithm rather than 4057 --- calling an external program if 'equalprg' is empty. 4058 --- 4059 --- @type boolean 4060 vim.o.lisp = false 4061 vim.bo.lisp = vim.o.lisp 4062 4063 --- Comma-separated list of items that influence the Lisp indenting when 4064 --- enabled with the 'lisp' option. Currently only one item is supported: 4065 --- expr:1 use 'indentexpr' for Lisp indenting when it is set 4066 --- expr:0 do not use 'indentexpr' for Lisp indenting (default) 4067 --- Note that when using 'indentexpr' the `=` operator indents all the 4068 --- lines, otherwise the first line is not indented (Vi-compatible). 4069 --- 4070 --- @type string 4071 vim.o.lispoptions = "" 4072 vim.o.lop = vim.o.lispoptions 4073 vim.bo.lispoptions = vim.o.lispoptions 4074 vim.bo.lop = vim.bo.lispoptions 4075 4076 --- Comma-separated list of words that influence the Lisp indenting when 4077 --- enabled with the 'lisp' option. 4078 --- 4079 --- @type string 4080 vim.o.lispwords = "defun,define,defmacro,set!,lambda,if,case,let,flet,let*,letrec,do,do*,define-syntax,let-syntax,letrec-syntax,destructuring-bind,defpackage,defparameter,defstruct,deftype,defvar,do-all-symbols,do-external-symbols,do-symbols,dolist,dotimes,ecase,etypecase,eval-when,labels,macrolet,multiple-value-bind,multiple-value-call,multiple-value-prog1,multiple-value-setq,prog1,progv,typecase,unless,unwind-protect,when,with-input-from-string,with-open-file,with-open-stream,with-output-to-string,with-package-iterator,define-condition,handler-bind,handler-case,restart-bind,restart-case,with-simple-restart,store-value,use-value,muffle-warning,abort,continue,with-slots,with-slots*,with-accessors,with-accessors*,defclass,defmethod,print-unreadable-object" 4081 vim.o.lw = vim.o.lispwords 4082 vim.bo.lispwords = vim.o.lispwords 4083 vim.bo.lw = vim.bo.lispwords 4084 vim.go.lispwords = vim.o.lispwords 4085 vim.go.lw = vim.go.lispwords 4086 4087 --- List mode: By default, show tabs as ">", trailing spaces as "-", and 4088 --- non-breakable space characters as "+". Useful to see the difference 4089 --- between tabs and spaces and for trailing blanks. Further changed by 4090 --- the 'listchars' option. 4091 --- 4092 --- When 'listchars' does not contain "tab" field, tabs are shown as "^I" 4093 --- or "<09>", like how unprintable characters are displayed. 4094 --- 4095 --- The cursor is displayed at the start of the space a Tab character 4096 --- occupies, not at the end as usual in Normal mode. To get this cursor 4097 --- position while displaying Tabs with spaces, use: 4098 --- 4099 --- ```vim 4100 --- let &list = v:true | let &lcs = 'tab: ' 4101 --- ``` 4102 --- 4103 --- Note that list mode will also affect formatting (set with 'textwidth' 4104 --- or 'wrapmargin') when 'cpoptions' includes 'L'. See 'listchars' for 4105 --- changing the way tabs are displayed. 4106 --- 4107 --- @type boolean 4108 vim.o.list = false 4109 vim.wo.list = vim.o.list 4110 4111 --- Strings to use in 'list' mode and for the `:list` command. It is a 4112 --- comma-separated list of string settings. *E1511* 4113 --- 4114 --- *lcs-eol* 4115 --- eol:c Character to show at the end of each line. When 4116 --- omitted, there is no extra character at the end of the 4117 --- line. 4118 --- *lcs-tab* 4119 --- tab:xy[z] Two or three characters to be used to show a tab. 4120 --- The third character is optional. 4121 --- 4122 --- tab:xy The 'x' is always used, then 'y' as many times as will 4123 --- fit. Thus "tab:>-" displays: 4124 --- ``` 4125 --- 4126 --- ``` 4127 --- >- 4128 --- >-- 4129 --- etc. 4130 --- ``` 4131 --- 4132 --- tab:xyz The 'z' is always used, then 'x' is prepended, and 4133 --- then 'y' is used as many times as will fit. Thus 4134 --- "tab:<->" displays: 4135 --- ``` 4136 --- 4137 --- ``` 4138 --- <> 4139 --- <-> 4140 --- <--> 4141 --- etc. 4142 --- ``` 4143 --- 4144 --- When "tab:" is omitted, a tab is shown as ^I. 4145 --- *lcs-space* 4146 --- space:c Character to show for a space. When omitted, spaces 4147 --- are left blank. 4148 --- *lcs-multispace* 4149 --- multispace:c... 4150 --- One or more characters to use cyclically to show for 4151 --- multiple consecutive spaces. Overrides the "space" 4152 --- setting, except for single spaces. When omitted, the 4153 --- "space" setting is used. For example, 4154 --- `:set listchars=multispace:---+` shows ten consecutive 4155 --- spaces as: 4156 --- ``` 4157 --- ---+---+-- 4158 --- ``` 4159 --- 4160 --- *lcs-lead* 4161 --- lead:c Character to show for leading spaces. When omitted, 4162 --- leading spaces are blank. Overrides the "space" and 4163 --- "multispace" settings for leading spaces. You can 4164 --- combine it with "tab:", for example: 4165 --- 4166 --- ```vim 4167 --- set listchars+=tab:>-,lead:. 4168 --- ``` 4169 --- 4170 --- *lcs-leadmultispace* 4171 --- leadmultispace:c... 4172 --- Like the `lcs-multispace` value, but for leading 4173 --- spaces only. Also overrides `lcs-lead` for leading 4174 --- multiple spaces. 4175 --- `:set listchars=leadmultispace:---+` shows ten 4176 --- consecutive leading spaces as: 4177 --- ``` 4178 --- ---+---+--XXX 4179 --- ``` 4180 --- 4181 --- Where "XXX" denotes the first non-blank characters in 4182 --- the line. 4183 --- *lcs-leadtab* 4184 --- leadtab:xy[z] 4185 --- Like `lcs-tab`, but only for leading tabs. When 4186 --- omitted, the "tab" setting is used for leading tabs. 4187 --- `lcs-tab` must also be set for this to work. *E1572* 4188 --- You can combine it with "tab:", for example: 4189 --- 4190 --- ```vim 4191 --- let &listchars = 'tab:>-,leadtab:. ' 4192 --- ``` 4193 --- This shows leading tabs as periods(.) and other tabs 4194 --- as ">--". 4195 --- *lcs-trail* 4196 --- trail:c Character to show for trailing spaces. When omitted, 4197 --- trailing spaces are blank. Overrides the "space" and 4198 --- "multispace" settings for trailing spaces. 4199 --- *lcs-extends* 4200 --- extends:c Character to show in the last column, when 'wrap' is 4201 --- off and the line continues beyond the right of the 4202 --- screen. 4203 --- *lcs-precedes* 4204 --- precedes:c Character to show in the first visible column of the 4205 --- physical line, when there is text preceding the 4206 --- character visible in the first column. 4207 --- *lcs-conceal* 4208 --- conceal:c Character to show in place of concealed text, when 4209 --- 'conceallevel' is set to 1. A space when omitted. 4210 --- *lcs-nbsp* 4211 --- nbsp:c Character to show for a non-breakable space character 4212 --- (0xA0 (160 decimal) and U+202F). Left blank when 4213 --- omitted. 4214 --- 4215 --- The characters ':' and ',' should not be used. UTF-8 characters can 4216 --- be used. All characters must be single width. *E1512* 4217 --- 4218 --- Each character can be specified as hex: 4219 --- 4220 --- ```vim 4221 --- set listchars=eol:\\x24 4222 --- set listchars=eol:\\u21b5 4223 --- set listchars=eol:\\U000021b5 4224 --- ``` 4225 --- Note that a double backslash is used. The number of hex characters 4226 --- must be exactly 2 for \\x, 4 for \\u and 8 for \\U. 4227 --- 4228 --- Examples: 4229 --- 4230 --- ```vim 4231 --- set lcs=tab:>-,trail:- 4232 --- set lcs=tab:>-,eol:<,nbsp:% 4233 --- set lcs=extends:>,precedes:< 4234 --- ``` 4235 --- `hl-NonText` highlighting will be used for "eol", "extends" and 4236 --- "precedes". `hl-Whitespace` for "nbsp", "space", "tab", "multispace", 4237 --- "lead" and "trail". 4238 --- 4239 --- @type string 4240 vim.o.listchars = "tab:> ,trail:-,nbsp:+" 4241 vim.o.lcs = vim.o.listchars 4242 vim.wo.listchars = vim.o.listchars 4243 vim.wo.lcs = vim.wo.listchars 4244 vim.go.listchars = vim.o.listchars 4245 vim.go.lcs = vim.go.listchars 4246 4247 --- When on the plugin scripts are loaded when starting up `load-plugins`. 4248 --- This option can be reset in your `vimrc` file to disable the loading 4249 --- of plugins. 4250 --- Note that using the "-u NONE" and "--noplugin" command line arguments 4251 --- reset this option. `-u` `--noplugin` 4252 --- 4253 --- @type boolean 4254 vim.o.loadplugins = true 4255 vim.o.lpl = vim.o.loadplugins 4256 vim.go.loadplugins = vim.o.loadplugins 4257 vim.go.lpl = vim.go.loadplugins 4258 4259 --- Name of the errorfile for the `:make` command (see `:make_makeprg`) 4260 --- and the `:grep` command. 4261 --- When it is empty, an internally generated temp file will be used. 4262 --- When "##" is included, it is replaced by a number to make the name 4263 --- unique. This makes sure that the ":make" command doesn't overwrite an 4264 --- existing file. 4265 --- NOT used for the ":cf" command. See 'errorfile' for that. 4266 --- Environment variables are expanded `:set_env`. 4267 --- See `option-backslash` about including spaces and backslashes. 4268 --- This option cannot be set from a `modeline` or in the `sandbox`, for 4269 --- security reasons. 4270 --- 4271 --- @type string 4272 vim.o.makeef = "" 4273 vim.o.mef = vim.o.makeef 4274 vim.go.makeef = vim.o.makeef 4275 vim.go.mef = vim.go.makeef 4276 4277 --- Encoding used for reading the output of external commands. When 4278 --- empty, encoding is not converted. 4279 --- This is used for `:make`, `:lmake`, `:grep`, `:lgrep`, `:grepadd`, 4280 --- `:lgrepadd`, `:cfile`, `:cgetfile`, `:caddfile`, `:lfile`, `:lgetfile`, 4281 --- and `:laddfile`. 4282 --- 4283 --- This would be mostly useful when you use MS-Windows. If iconv is 4284 --- enabled, setting 'makeencoding' to "char" has the same effect as 4285 --- setting to the system locale encoding. Example: 4286 --- 4287 --- ```vim 4288 --- set makeencoding=char " system locale is used 4289 --- ``` 4290 --- 4291 --- 4292 --- @type string 4293 vim.o.makeencoding = "" 4294 vim.o.menc = vim.o.makeencoding 4295 vim.bo.makeencoding = vim.o.makeencoding 4296 vim.bo.menc = vim.bo.makeencoding 4297 vim.go.makeencoding = vim.o.makeencoding 4298 vim.go.menc = vim.go.makeencoding 4299 4300 --- Program to use for the ":make" command. See `:make_makeprg`. 4301 --- This option may contain '%' and '#' characters (see `:_%` and `:_#`), 4302 --- which are expanded to the current and alternate file name. Use `::S` 4303 --- to escape file names in case they contain special characters. 4304 --- Environment variables are expanded `:set_env`. See `option-backslash` 4305 --- about including spaces and backslashes. 4306 --- Note that a '|' must be escaped twice: once for ":set" and once for 4307 --- the interpretation of a command. When you use a filter called 4308 --- "myfilter" do it like this: 4309 --- 4310 --- ```vim 4311 --- set makeprg=gmake\ \\\|\ myfilter 4312 --- ``` 4313 --- The placeholder "$*" can be given (even multiple times) to specify 4314 --- where the arguments will be included, for example: 4315 --- 4316 --- ```vim 4317 --- set makeprg=latex\ \\\\nonstopmode\ \\\\input\\{$*} 4318 --- ``` 4319 --- This option cannot be set from a `modeline` or in the `sandbox`, for 4320 --- security reasons. 4321 --- 4322 --- @type string 4323 vim.o.makeprg = "make" 4324 vim.o.mp = vim.o.makeprg 4325 vim.bo.makeprg = vim.o.makeprg 4326 vim.bo.mp = vim.bo.makeprg 4327 vim.go.makeprg = vim.o.makeprg 4328 vim.go.mp = vim.go.makeprg 4329 4330 --- Characters that form pairs. The `%` command jumps from one to the 4331 --- other. 4332 --- Only character pairs are allowed that are different, thus you cannot 4333 --- jump between two double quotes. 4334 --- The characters must be separated by a colon. 4335 --- The pairs must be separated by a comma. Example for including '<' and 4336 --- '>' (for HTML): 4337 --- 4338 --- ```vim 4339 --- set mps+=<:> 4340 --- ``` 4341 --- A more exotic example, to jump between the '=' and ';' in an 4342 --- assignment, useful for languages like C and Java: 4343 --- 4344 --- ```vim 4345 --- au FileType c,cpp,java set mps+==:; 4346 --- ``` 4347 --- For a more advanced way of using "%", see the matchit.vim plugin in 4348 --- the $VIMRUNTIME/plugin directory. `add-local-help` 4349 --- 4350 --- @type string 4351 vim.o.matchpairs = "(:),{:},[:]" 4352 vim.o.mps = vim.o.matchpairs 4353 vim.bo.matchpairs = vim.o.matchpairs 4354 vim.bo.mps = vim.bo.matchpairs 4355 4356 --- Tenths of a second to show the matching paren, when 'showmatch' is 4357 --- set. Note that this is not in milliseconds, like other options that 4358 --- set a time. This is to be compatible with Nvi. 4359 --- 4360 --- @type integer 4361 vim.o.matchtime = 5 4362 vim.o.mat = vim.o.matchtime 4363 vim.go.matchtime = vim.o.matchtime 4364 vim.go.mat = vim.go.matchtime 4365 4366 --- Maximum depth of function calls for user functions. This normally 4367 --- catches endless recursion. When using a recursive function with 4368 --- more depth, set 'maxfuncdepth' to a bigger number. But this will use 4369 --- more memory, there is the danger of failing when memory is exhausted. 4370 --- Increasing this limit above 200 also changes the maximum for Ex 4371 --- command recursion, see `E169`. 4372 --- See also `:function`. 4373 --- Also used for maximum depth of callback functions. 4374 --- 4375 --- @type integer 4376 vim.o.maxfuncdepth = 100 4377 vim.o.mfd = vim.o.maxfuncdepth 4378 vim.go.maxfuncdepth = vim.o.maxfuncdepth 4379 vim.go.mfd = vim.go.maxfuncdepth 4380 4381 --- Maximum number of times a mapping is done without resulting in a 4382 --- character to be used. This normally catches endless mappings, like 4383 --- ":map x y" with ":map y x". It still does not catch ":map g wg", 4384 --- because the 'w' is used before the next mapping is done. See also 4385 --- `key-mapping`. 4386 --- 4387 --- @type integer 4388 vim.o.maxmapdepth = 1000 4389 vim.o.mmd = vim.o.maxmapdepth 4390 vim.go.maxmapdepth = vim.o.maxmapdepth 4391 vim.go.mmd = vim.go.maxmapdepth 4392 4393 --- Maximum amount of memory (in Kbyte) to use for pattern matching. 4394 --- The maximum value is about 2000000. Use this to work without a limit. 4395 --- *E363* 4396 --- When Vim runs into the limit it gives an error message and mostly 4397 --- behaves like CTRL-C was typed. 4398 --- Running into the limit often means that the pattern is very 4399 --- inefficient or too complex. This may already happen with the pattern 4400 --- `\(.\)*` on a very long line. `.*` works much better. 4401 --- Might also happen on redraw, when syntax rules try to match a complex 4402 --- text structure. 4403 --- Vim may run out of memory before hitting the 'maxmempattern' limit, in 4404 --- which case you get an "Out of memory" error instead. 4405 --- 4406 --- @type integer 4407 vim.o.maxmempattern = 1000 4408 vim.o.mmp = vim.o.maxmempattern 4409 vim.go.maxmempattern = vim.o.maxmempattern 4410 vim.go.mmp = vim.go.maxmempattern 4411 4412 --- Maximum number of matches shown for the search count status `shm-S` 4413 --- When the number of matches exceeds this value, Vim shows ">" instead 4414 --- of the exact count to keep searching fast. 4415 --- Note: larger values may impact performance. 4416 --- The value must be between 1 and 9999. See also the `searchcount()` 4417 --- function. 4418 --- 4419 --- @type integer 4420 vim.o.maxsearchcount = 999 4421 vim.o.msc = vim.o.maxsearchcount 4422 vim.go.maxsearchcount = vim.o.maxsearchcount 4423 vim.go.msc = vim.go.maxsearchcount 4424 4425 --- Maximum number of items to use in a menu. Used for menus that are 4426 --- generated from a list of items, e.g., the Buffers menu. Changing this 4427 --- option has no direct effect, the menu must be refreshed first. 4428 --- 4429 --- @type integer 4430 vim.o.menuitems = 25 4431 vim.o.mis = vim.o.menuitems 4432 vim.go.menuitems = vim.o.menuitems 4433 vim.go.mis = vim.go.menuitems 4434 4435 --- Option settings for outputting messages. It can consist of the 4436 --- following items. Items must be separated by a comma. 4437 --- 4438 --- hit-enter Use a `hit-enter` prompt when the message is longer than 4439 --- 'cmdheight' size. 4440 --- 4441 --- wait:{n} Instead of using a `hit-enter` prompt, simply wait for 4442 --- {n} milliseconds so that the user has a chance to read 4443 --- the message. The maximum value of {n} is 10000. Use 4444 --- 0 to disable the wait (but then the user may miss an 4445 --- important message). 4446 --- This item is ignored when "hit-enter" is present, but 4447 --- required when "hit-enter" is not present. 4448 --- 4449 --- history:{n} Determines how many entries are remembered in the 4450 --- `:messages` history. The maximum value is 10000. 4451 --- Setting it to zero clears the message history. 4452 --- This item must always be present. 4453 --- 4454 --- @type string 4455 vim.o.messagesopt = "hit-enter,history:500" 4456 vim.o.mopt = vim.o.messagesopt 4457 vim.go.messagesopt = vim.o.messagesopt 4458 vim.go.mopt = vim.go.messagesopt 4459 4460 --- Parameters for `:mkspell`. This tunes when to start compressing the 4461 --- word tree. Compression can be slow when there are many words, but 4462 --- it's needed to avoid running out of memory. The amount of memory used 4463 --- per word depends very much on how similar the words are, that's why 4464 --- this tuning is complicated. 4465 --- 4466 --- There are three numbers, separated by commas: 4467 --- ``` 4468 --- {start},{inc},{added} 4469 --- ``` 4470 --- 4471 --- For most languages the uncompressed word tree fits in memory. {start} 4472 --- gives the amount of memory in Kbyte that can be used before any 4473 --- compression is done. It should be a bit smaller than the amount of 4474 --- memory that is available to Vim. 4475 --- 4476 --- When going over the {start} limit the {inc} number specifies the 4477 --- amount of memory in Kbyte that can be allocated before another 4478 --- compression is done. A low number means compression is done after 4479 --- less words are added, which is slow. A high number means more memory 4480 --- will be allocated. 4481 --- 4482 --- After doing compression, {added} times 1024 words can be added before 4483 --- the {inc} limit is ignored and compression is done when any extra 4484 --- amount of memory is needed. A low number means there is a smaller 4485 --- chance of hitting the {inc} limit, less memory is used but it's 4486 --- slower. 4487 --- 4488 --- The languages for which these numbers are important are Italian and 4489 --- Hungarian. The default works for when you have about 512 Mbyte. If 4490 --- you have 1 Gbyte you could use: 4491 --- 4492 --- ```vim 4493 --- set mkspellmem=900000,3000,800 4494 --- ``` 4495 --- If you have less than 512 Mbyte `:mkspell` may fail for some 4496 --- languages, no matter what you set 'mkspellmem' to. 4497 --- Environment variables are expanded `:set_env`. 4498 --- This option cannot be set from a `modeline` or in the `sandbox`, for 4499 --- security reasons. 4500 --- 4501 --- @type string 4502 vim.o.mkspellmem = "460000,2000,500" 4503 vim.o.msm = vim.o.mkspellmem 4504 vim.go.mkspellmem = vim.o.mkspellmem 4505 vim.go.msm = vim.go.mkspellmem 4506 4507 --- If 'modeline' is on 'modelines' gives the number of lines that is 4508 --- checked for set commands. If 'modeline' is off or 'modelines' is zero 4509 --- no lines are checked. See `modeline`. 4510 --- 4511 --- @type boolean 4512 vim.o.modeline = true 4513 vim.o.ml = vim.o.modeline 4514 vim.bo.modeline = vim.o.modeline 4515 vim.bo.ml = vim.bo.modeline 4516 4517 --- When on allow some options that are an expression to be set in the 4518 --- modeline. Check the option for whether it is affected by 4519 --- 'modelineexpr'. Also see `modeline`. 4520 --- This option cannot be set from a `modeline` or in the `sandbox`, for 4521 --- security reasons. 4522 --- 4523 --- @type boolean 4524 vim.o.modelineexpr = false 4525 vim.o.mle = vim.o.modelineexpr 4526 vim.go.modelineexpr = vim.o.modelineexpr 4527 vim.go.mle = vim.go.modelineexpr 4528 4529 --- If 'modeline' is on 'modelines' gives the number of lines that is 4530 --- checked for set commands. If 'modeline' is off or 'modelines' is zero 4531 --- no lines are checked. See `modeline`. 4532 --- 4533 --- 4534 --- @type integer 4535 vim.o.modelines = 5 4536 vim.o.mls = vim.o.modelines 4537 vim.go.modelines = vim.o.modelines 4538 vim.go.mls = vim.go.modelines 4539 4540 --- When off the buffer contents cannot be changed. The 'fileformat' and 4541 --- 'fileencoding' options also can't be changed. 4542 --- Can be reset on startup with the `-M` command line argument. 4543 --- 4544 --- @type boolean 4545 vim.o.modifiable = true 4546 vim.o.ma = vim.o.modifiable 4547 vim.bo.modifiable = vim.o.modifiable 4548 vim.bo.ma = vim.bo.modifiable 4549 4550 --- When on, the buffer is considered to be modified. This option is set 4551 --- when: 4552 --- 1. A change was made to the text since it was last written. Using the 4553 --- `undo` command to go back to the original text will reset the 4554 --- option. But undoing changes that were made before writing the 4555 --- buffer will set the option again, since the text is different from 4556 --- when it was written. 4557 --- 2. 'fileformat' or 'fileencoding' is different from its original 4558 --- value. The original value is set when the buffer is read or 4559 --- written. A ":set nomodified" command also resets the original 4560 --- values to the current values and the 'modified' option will be 4561 --- reset. 4562 --- Similarly for 'eol' and 'bomb'. 4563 --- This option is not set when a change is made to the buffer as the 4564 --- result of a BufNewFile, BufRead/BufReadPost, BufWritePost, 4565 --- FileAppendPost or VimLeave autocommand event. See `gzip-example` for 4566 --- an explanation. 4567 --- When 'buftype' is "nowrite" or "nofile" this option may be set, but 4568 --- will be ignored. 4569 --- Note that the text may actually be the same, e.g. 'modified' is set 4570 --- when using "rA" on an "A". 4571 --- 4572 --- @type boolean 4573 vim.o.modified = false 4574 vim.o.mod = vim.o.modified 4575 vim.bo.modified = vim.o.modified 4576 vim.bo.mod = vim.bo.modified 4577 4578 --- When on, listings pause when the whole screen is filled. You will get 4579 --- the `more-prompt`. When this option is off there are no pauses, the 4580 --- listing continues until finished. 4581 --- 4582 --- @type boolean 4583 vim.o.more = true 4584 vim.go.more = vim.o.more 4585 4586 --- Enables mouse support. For example, to enable the mouse in Normal mode 4587 --- and Visual mode: 4588 --- 4589 --- ```vim 4590 --- set mouse=nv 4591 --- ``` 4592 --- 4593 --- To temporarily disable mouse support, hold the shift key while using 4594 --- the mouse. 4595 --- 4596 --- Mouse support can be enabled for different modes: 4597 --- n Normal mode 4598 --- v Visual mode 4599 --- i Insert mode 4600 --- c Command-line mode 4601 --- h all previous modes when editing a help file 4602 --- a all previous modes 4603 --- r for `hit-enter` and `more-prompt` prompt 4604 --- 4605 --- Left-click anywhere in a text buffer to place the cursor there. This 4606 --- works with operators too, e.g. type `d` then left-click to delete text 4607 --- from the current cursor position to the position where you clicked. 4608 --- 4609 --- Drag the `status-line` or vertical separator of a window to resize it. 4610 --- 4611 --- If enabled for "v" (Visual mode) then double-click selects word-wise, 4612 --- triple-click makes it line-wise, and quadruple-click makes it 4613 --- rectangular block-wise. 4614 --- 4615 --- For scrolling with a mouse wheel see `scroll-mouse-wheel`. 4616 --- 4617 --- Note: When enabling the mouse in a terminal, copy/paste will use the 4618 --- "* register if possible. See also 'clipboard'. 4619 --- 4620 --- Related options: 4621 --- 'mousefocus' window focus follows mouse pointer 4622 --- 'mousemodel' what mouse button does which action 4623 --- 'mousehide' hide mouse pointer while typing text 4624 --- 'selectmode' whether to start Select mode or Visual mode 4625 --- 4626 --- @type string 4627 vim.o.mouse = "nvi" 4628 vim.go.mouse = vim.o.mouse 4629 4630 --- The window that the mouse pointer is on is automatically activated. 4631 --- When changing the window layout or window focus in another way, the 4632 --- mouse pointer is moved to the window with keyboard focus. Off is the 4633 --- default because it makes using the pull down menus a little goofy, as 4634 --- a pointer transit may activate a window unintentionally. 4635 --- 4636 --- @type boolean 4637 vim.o.mousefocus = false 4638 vim.o.mousef = vim.o.mousefocus 4639 vim.go.mousefocus = vim.o.mousefocus 4640 vim.go.mousef = vim.go.mousefocus 4641 4642 --- only in the GUI 4643 --- When on, the mouse pointer is hidden when characters are typed. 4644 --- The mouse pointer is restored when the mouse is moved. 4645 --- 4646 --- @type boolean 4647 vim.o.mousehide = true 4648 vim.o.mh = vim.o.mousehide 4649 vim.go.mousehide = vim.o.mousehide 4650 vim.go.mh = vim.go.mousehide 4651 4652 --- Sets the model to use for the mouse. The name mostly specifies what 4653 --- the right mouse button is used for: 4654 --- extend Right mouse button extends a selection. This works 4655 --- like in an xterm. 4656 --- popup Right mouse button pops up a menu. The shifted left 4657 --- mouse button extends a selection. This works like 4658 --- with Microsoft Windows. 4659 --- popup_setpos Like "popup", but the cursor will be moved to the 4660 --- position where the mouse was clicked, and thus the 4661 --- selected operation will act upon the clicked object. 4662 --- If clicking inside a selection, that selection will 4663 --- be acted upon, i.e. no cursor move. This implies of 4664 --- course, that right clicking outside a selection will 4665 --- end Visual mode. 4666 --- Overview of what button does what for each model: 4667 --- mouse extend popup(_setpos) ~ 4668 --- left click place cursor place cursor 4669 --- left drag start selection start selection 4670 --- shift-left search word extend selection 4671 --- right click extend selection popup menu (place cursor) 4672 --- right drag extend selection - 4673 --- middle click paste paste 4674 --- 4675 --- In the "popup" model the right mouse button produces a pop-up menu. 4676 --- Nvim creates a default `popup-menu` but you can redefine it. 4677 --- 4678 --- Note that you can further refine the meaning of buttons with mappings. 4679 --- See `mouse-overview`. But mappings are NOT used for modeless selection. 4680 --- 4681 --- Example: 4682 --- 4683 --- ```vim 4684 --- map <S-LeftMouse> <RightMouse> 4685 --- map <S-LeftDrag> <RightDrag> 4686 --- map <S-LeftRelease> <RightRelease> 4687 --- map <2-S-LeftMouse> <2-RightMouse> 4688 --- map <2-S-LeftDrag> <2-RightDrag> 4689 --- map <2-S-LeftRelease> <2-RightRelease> 4690 --- map <3-S-LeftMouse> <3-RightMouse> 4691 --- map <3-S-LeftDrag> <3-RightDrag> 4692 --- map <3-S-LeftRelease> <3-RightRelease> 4693 --- map <4-S-LeftMouse> <4-RightMouse> 4694 --- map <4-S-LeftDrag> <4-RightDrag> 4695 --- map <4-S-LeftRelease> <4-RightRelease> 4696 --- ``` 4697 --- 4698 --- Mouse commands requiring the CTRL modifier can be simulated by typing 4699 --- the "g" key before using the mouse: 4700 --- "g<LeftMouse>" is "<C-LeftMouse> (jump to tag under mouse click) 4701 --- "g<RightMouse>" is "<C-RightMouse> ("CTRL-T") 4702 --- 4703 --- @type 'extend'|'popup'|'popup_setpos' 4704 vim.o.mousemodel = "popup_setpos" 4705 vim.o.mousem = vim.o.mousemodel 4706 vim.go.mousemodel = vim.o.mousemodel 4707 vim.go.mousem = vim.go.mousemodel 4708 4709 --- When on, mouse move events are delivered to the input queue and are 4710 --- available for mapping `<MouseMove>`. The default, off, avoids the 4711 --- mouse movement overhead except when needed. 4712 --- Warning: Setting this option can make pending mappings to be aborted 4713 --- when the mouse is moved. 4714 --- 4715 --- @type boolean 4716 vim.o.mousemoveevent = false 4717 vim.o.mousemev = vim.o.mousemoveevent 4718 vim.go.mousemoveevent = vim.o.mousemoveevent 4719 vim.go.mousemev = vim.go.mousemoveevent 4720 4721 --- This option controls the number of lines / columns to scroll by when 4722 --- scrolling with a mouse wheel (`scroll-mouse-wheel`). The option is 4723 --- a comma-separated list. Each part consists of a direction and a count 4724 --- as follows: 4725 --- direction:count,direction:count 4726 --- Direction is one of either "hor" or "ver". "hor" controls horizontal 4727 --- scrolling and "ver" controls vertical scrolling. Count sets the amount 4728 --- to scroll by for the given direction, it should be a non negative 4729 --- integer. Each direction should be set at most once. If a direction 4730 --- is omitted, a default value is used (6 for horizontal scrolling and 3 4731 --- for vertical scrolling). You can disable mouse scrolling by using 4732 --- a count of 0. 4733 --- 4734 --- Example: 4735 --- 4736 --- ```vim 4737 --- set mousescroll=ver:5,hor:2 4738 --- ``` 4739 --- Will make Nvim scroll 5 lines at a time when scrolling vertically, and 4740 --- scroll 2 columns at a time when scrolling horizontally. 4741 --- 4742 --- @type string 4743 vim.o.mousescroll = "ver:3,hor:6" 4744 vim.go.mousescroll = vim.o.mousescroll 4745 4746 --- Defines the maximum time in msec between two mouse clicks for the 4747 --- second click to be recognized as a multi click. 4748 --- 4749 --- @type integer 4750 vim.o.mousetime = 500 4751 vim.o.mouset = vim.o.mousetime 4752 vim.go.mousetime = vim.o.mousetime 4753 vim.go.mouset = vim.go.mousetime 4754 4755 --- This defines what bases Vim will consider for numbers when using the 4756 --- CTRL-A and CTRL-X commands for adding to and subtracting from a number 4757 --- respectively; see `CTRL-A` for more info on these commands. 4758 --- alpha If included, single alphabetical characters will be 4759 --- incremented or decremented. This is useful for a list with a 4760 --- letter index a), b), etc. *octal-nrformats* 4761 --- octal If included, numbers that start with a zero will be considered 4762 --- to be octal. Example: Using CTRL-A on "007" results in "010". 4763 --- hex If included, numbers starting with "0x" or "0X" will be 4764 --- considered to be hexadecimal. Example: Using CTRL-X on 4765 --- "0x100" results in "0x0ff". 4766 --- bin If included, numbers starting with "0b" or "0B" will be 4767 --- considered to be binary. Example: Using CTRL-X on 4768 --- "0b1000" subtracts one, resulting in "0b0111". 4769 --- unsigned If included, numbers are recognized as unsigned. Thus a 4770 --- leading dash or negative sign won't be considered as part of 4771 --- the number. Examples: 4772 --- Using CTRL-X on "2020" in "9-2020" results in "9-2019" 4773 --- (without "unsigned" it would become "9-2021"). 4774 --- Using CTRL-A on "2020" in "9-2020" results in "9-2021" 4775 --- (without "unsigned" it would become "9-2019"). 4776 --- Using CTRL-X on "0" or CTRL-A on "18446744073709551615" 4777 --- (2^64 - 1) has no effect, overflow is prevented. 4778 --- blank If included, treat numbers as signed or unsigned based on 4779 --- preceding whitespace. If a number with a leading dash has its 4780 --- dash immediately preceded by a non-whitespace character (i.e., 4781 --- not a tab or a " "), the negative sign won't be considered as 4782 --- part of the number. For example: 4783 --- Using CTRL-A on "14" in "Carbon-14" results in "Carbon-15" 4784 --- (without "blank" it would become "Carbon-13"). 4785 --- Using CTRL-X on "8" in "Carbon -8" results in "Carbon -9" 4786 --- (because -8 is preceded by whitespace. If "unsigned" was 4787 --- set, it would result in "Carbon -7"). 4788 --- If this format is included, overflow is prevented as if 4789 --- "unsigned" were set. If both this format and "unsigned" are 4790 --- included, "unsigned" will take precedence. 4791 --- 4792 --- Numbers which simply begin with a digit in the range 1-9 are always 4793 --- considered decimal. This also happens for numbers that are not 4794 --- recognized as octal or hex. 4795 --- 4796 --- @type string 4797 vim.o.nrformats = "bin,hex" 4798 vim.o.nf = vim.o.nrformats 4799 vim.bo.nrformats = vim.o.nrformats 4800 vim.bo.nf = vim.bo.nrformats 4801 4802 --- Print the line number in front of each line. When the 'n' option is 4803 --- excluded from 'cpoptions' a wrapped line will not use the column of 4804 --- line numbers. 4805 --- Use the 'numberwidth' option to adjust the room for the line number. 4806 --- When a long, wrapped line doesn't start with the first character, '-' 4807 --- characters are put before the number. 4808 --- For highlighting see `hl-LineNr`, `hl-CursorLineNr`, and the 4809 --- `:sign-define` "numhl" argument. 4810 --- *number_relativenumber* 4811 --- The 'relativenumber' option changes the displayed number to be 4812 --- relative to the cursor. Together with 'number' there are these 4813 --- four combinations (cursor in line 3): 4814 --- 4815 --- 'nonu' 'nu' 'nonu' 'nu' 4816 --- 'nornu' 'nornu' 'rnu' 'rnu' 4817 --- ``` 4818 --- |apple | 1 apple | 2 apple | 2 apple 4819 --- |pear | 2 pear | 1 pear | 1 pear 4820 --- |nobody | 3 nobody | 0 nobody |3 nobody 4821 --- |there | 4 there | 1 there | 1 there 4822 --- ``` 4823 --- 4824 --- 4825 --- @type boolean 4826 vim.o.number = false 4827 vim.o.nu = vim.o.number 4828 vim.wo.number = vim.o.number 4829 vim.wo.nu = vim.wo.number 4830 4831 --- Minimal number of columns to use for the line number. Only relevant 4832 --- when the 'number' or 'relativenumber' option is set or printing lines 4833 --- with a line number. Since one space is always between the number and 4834 --- the text, there is one less character for the number itself. 4835 --- The value is the minimum width. A bigger width is used when needed to 4836 --- fit the highest line number in the buffer respectively the number of 4837 --- rows in the window, depending on whether 'number' or 'relativenumber' 4838 --- is set. Thus with the Vim default of 4 there is room for a line 4839 --- number up to 999. When the buffer has 1000 lines five columns will be 4840 --- used. The minimum value is 1, the maximum value is 20. 4841 --- 4842 --- @type integer 4843 vim.o.numberwidth = 4 4844 vim.o.nuw = vim.o.numberwidth 4845 vim.wo.numberwidth = vim.o.numberwidth 4846 vim.wo.nuw = vim.wo.numberwidth 4847 4848 --- This option specifies a function to be used for Insert mode omni 4849 --- completion with CTRL-X CTRL-O. `i_CTRL-X_CTRL-O` 4850 --- See `complete-functions` for an explanation of how the function is 4851 --- invoked and what it should return. The value can be the name of a 4852 --- function, a `lambda` or a `Funcref`. See `option-value-function` for 4853 --- more information. 4854 --- This option is usually set by a filetype plugin: 4855 --- `:filetype-plugin-on` 4856 --- This option cannot be set from a `modeline` or in the `sandbox`, for 4857 --- security reasons. 4858 --- 4859 --- @type string 4860 vim.o.omnifunc = "" 4861 vim.o.ofu = vim.o.omnifunc 4862 vim.bo.omnifunc = vim.o.omnifunc 4863 vim.bo.ofu = vim.bo.omnifunc 4864 4865 --- This option specifies a function to be called by the `g@` operator. 4866 --- See `:map-operator` for more info and an example. The value can be 4867 --- the name of a function, a `lambda` or a `Funcref`. See 4868 --- `option-value-function` for more information. 4869 --- 4870 --- This option cannot be set from a `modeline` or in the `sandbox`, for 4871 --- security reasons. 4872 --- 4873 --- @type string 4874 vim.o.operatorfunc = "" 4875 vim.o.opfunc = vim.o.operatorfunc 4876 vim.go.operatorfunc = vim.o.operatorfunc 4877 vim.go.opfunc = vim.go.operatorfunc 4878 4879 --- Directories used to find packages. 4880 --- See `packages` and `packages-runtimepath`. 4881 --- Environment variables are expanded `:set_env`. 4882 --- This option cannot be set from a `modeline` or in the `sandbox`, for 4883 --- security reasons. 4884 --- 4885 --- @type string 4886 vim.o.packpath = "..." 4887 vim.o.pp = vim.o.packpath 4888 vim.go.packpath = vim.o.packpath 4889 vim.go.pp = vim.go.packpath 4890 4891 --- Specifies the nroff macros that separate paragraphs. These are pairs 4892 --- of two letters (see `object-motions`). 4893 --- 4894 --- @type string 4895 vim.o.paragraphs = "IPLPPPQPP TPHPLIPpLpItpplpipbp" 4896 vim.o.para = vim.o.paragraphs 4897 vim.go.paragraphs = vim.o.paragraphs 4898 vim.go.para = vim.go.paragraphs 4899 4900 --- Expression which is evaluated to apply a patch to a file and generate 4901 --- the resulting new version of the file. See `diff-patchexpr`. 4902 --- This option cannot be set from a `modeline` or in the `sandbox`, for 4903 --- security reasons. 4904 --- 4905 --- @type string 4906 vim.o.patchexpr = "" 4907 vim.o.pex = vim.o.patchexpr 4908 vim.go.patchexpr = vim.o.patchexpr 4909 vim.go.pex = vim.go.patchexpr 4910 4911 --- When non-empty the oldest version of a file is kept. This can be used 4912 --- to keep the original version of a file if you are changing files in a 4913 --- source distribution. Only the first time that a file is written a 4914 --- copy of the original file will be kept. The name of the copy is the 4915 --- name of the original file with the string in the 'patchmode' option 4916 --- appended. This option should start with a dot. Use a string like 4917 --- ".orig" or ".org". 'backupdir' must not be empty for this to work 4918 --- (Detail: The backup file is renamed to the patchmode file after the 4919 --- new file has been successfully written, that's why it must be possible 4920 --- to write a backup file). If there was no file to be backed up, an 4921 --- empty file is created. 4922 --- When the 'backupskip' pattern matches, a patchmode file is not made. 4923 --- Using 'patchmode' for compressed files appends the extension at the 4924 --- end (e.g., "file.gz.orig"), thus the resulting name isn't always 4925 --- recognized as a compressed file. 4926 --- Only normal file name characters can be used, `/\*?[|<>` are illegal. 4927 --- 4928 --- @type string 4929 vim.o.patchmode = "" 4930 vim.o.pm = vim.o.patchmode 4931 vim.go.patchmode = vim.o.patchmode 4932 vim.go.pm = vim.go.patchmode 4933 4934 --- This is a list of directories which will be searched when using the 4935 --- `gf`, [f, ]f, ^Wf, `:find`, `:sfind`, `:tabfind` and other commands, 4936 --- provided that the file being searched for has a relative path (not 4937 --- starting with "/", "./" or "../"). The directories in the 'path' 4938 --- option may be relative or absolute. 4939 --- - Use commas to separate directory names: 4940 --- 4941 --- ```vim 4942 --- set path=.,/usr/local/include,/usr/include 4943 --- ``` 4944 --- - Spaces can also be used to separate directory names. To have a 4945 --- space in a directory name, precede it with an extra backslash, and 4946 --- escape the space: 4947 --- 4948 --- ```vim 4949 --- set path=.,/dir/with\\\ space 4950 --- ``` 4951 --- - To include a comma in a directory name precede it with an extra 4952 --- backslash: 4953 --- 4954 --- ```vim 4955 --- set path=.,/dir/with\\,comma 4956 --- ``` 4957 --- - To search relative to the directory of the current file, use: 4958 --- 4959 --- ```vim 4960 --- set path=. 4961 --- ``` 4962 --- - To search in the current directory use an empty string between two 4963 --- commas: 4964 --- 4965 --- ```vim 4966 --- set path=,, 4967 --- ``` 4968 --- - A directory name may end in a ':' or '/'. 4969 --- - Environment variables are expanded `:set_env`. 4970 --- - When using `netrw` URLs can be used. For example, adding 4971 --- "https://www.vim.org" will make ":find index.html" work. 4972 --- - Search upwards and downwards in a directory tree using "*", "**" and 4973 --- ";". See `file-searching` for info and syntax. 4974 --- - Careful with '\' characters, type two to get one in the option: 4975 --- 4976 --- ```vim 4977 --- set path=.,c:\\include 4978 --- ``` 4979 --- Or just use '/' instead: 4980 --- 4981 --- ```vim 4982 --- set path=.,c:/include 4983 --- ``` 4984 --- Don't forget "." or files won't even be found in the same directory as 4985 --- the file! 4986 --- The maximum length is limited. How much depends on the system, mostly 4987 --- it is something like 256 or 1024 characters. 4988 --- You can check if all the include files are found, using the value of 4989 --- 'path', see `:checkpath`. 4990 --- The use of `:set+=` and `:set-=` is preferred when adding or removing 4991 --- directories from the list. This avoids problems when a future version 4992 --- uses another default. To remove the current directory use: 4993 --- 4994 --- ```vim 4995 --- set path-= 4996 --- ``` 4997 --- To add the current directory use: 4998 --- 4999 --- ```vim 5000 --- set path+= 5001 --- ``` 5002 --- To use an environment variable, you probably need to replace the 5003 --- separator. Here is an example to append $INCL, in which directory 5004 --- names are separated with a semicolon: 5005 --- 5006 --- ```vim 5007 --- let &path = &path .. "," .. substitute($INCL, ';', ',', 'g') 5008 --- ``` 5009 --- Replace the ';' with a ':' or whatever separator is used. Note that 5010 --- this doesn't work when $INCL contains a comma or white space. 5011 --- 5012 --- @type string 5013 vim.o.path = ".,," 5014 vim.o.pa = vim.o.path 5015 vim.bo.path = vim.o.path 5016 vim.bo.pa = vim.bo.path 5017 vim.go.path = vim.o.path 5018 vim.go.pa = vim.go.path 5019 5020 --- When changing the indent of the current line, preserve as much of the 5021 --- indent structure as possible. Normally the indent is replaced by a 5022 --- series of tabs followed by spaces as required (unless 'expandtab' is 5023 --- enabled, in which case only spaces are used). Enabling this option 5024 --- means the indent will preserve as many existing characters as possible 5025 --- for indenting, and only add additional tabs or spaces as required. 5026 --- 'expandtab' does not apply to the preserved white space, a Tab remains 5027 --- a Tab. 5028 --- NOTE: When using ">>" multiple times the resulting indent is a mix of 5029 --- tabs and spaces. You might not like this. 5030 --- Also see 'copyindent'. 5031 --- Use `:retab` to clean up white space. 5032 --- 5033 --- @type boolean 5034 vim.o.preserveindent = false 5035 vim.o.pi = vim.o.preserveindent 5036 vim.bo.preserveindent = vim.o.preserveindent 5037 vim.bo.pi = vim.bo.preserveindent 5038 5039 --- Default height for a preview window. Used for `:ptag` and associated 5040 --- commands. Used for `CTRL-W_}` when no count is given. 5041 --- 5042 --- @type integer 5043 vim.o.previewheight = 12 5044 vim.o.pvh = vim.o.previewheight 5045 vim.go.previewheight = vim.o.previewheight 5046 vim.go.pvh = vim.go.previewheight 5047 5048 --- Identifies the preview window. Only one window can have this option 5049 --- set. It's normally not set directly, but by using one of the commands 5050 --- `:ptag`, `:pedit`, etc. 5051 --- 5052 --- @type boolean 5053 vim.o.previewwindow = false 5054 vim.o.pvw = vim.o.previewwindow 5055 vim.wo.previewwindow = vim.o.previewwindow 5056 vim.wo.pvw = vim.wo.previewwindow 5057 5058 --- Enables pseudo-transparency for the `popup-menu`. Valid values are in 5059 --- the range of 0 for fully opaque popupmenu (disabled) to 100 for fully 5060 --- transparent background. Values between 0-30 are typically most useful. 5061 --- 5062 --- It is possible to override the level for individual highlights within 5063 --- the popupmenu using `highlight-blend`. For instance, to enable 5064 --- transparency but force the current selected element to be fully opaque: 5065 --- 5066 --- ```vim 5067 --- 5068 --- set pumblend=15 5069 --- hi PmenuSel blend=0 5070 --- ``` 5071 --- 5072 --- UI-dependent. Works best with RGB colors. 'termguicolors' 5073 --- 5074 --- @type integer 5075 vim.o.pumblend = 0 5076 vim.o.pb = vim.o.pumblend 5077 vim.go.pumblend = vim.o.pumblend 5078 vim.go.pb = vim.go.pumblend 5079 5080 --- Defines the default border style of popupmenu windows. See 'winborder' for 5081 --- valid values. `hl-PmenuBorder` is used for highlighting the border, and when 5082 --- style is "shadow" the `hl-PmenuShadow` and `hl-PmenuShadowThrough` groups are used. 5083 --- 5084 --- @type string 5085 vim.o.pumborder = "" 5086 vim.go.pumborder = vim.o.pumborder 5087 5088 --- Maximum number of items to show in the popup menu 5089 --- (`ins-completion-menu`). Zero means "use available screen space". 5090 --- 5091 --- @type integer 5092 vim.o.pumheight = 0 5093 vim.o.ph = vim.o.pumheight 5094 vim.go.pumheight = vim.o.pumheight 5095 vim.go.ph = vim.go.pumheight 5096 5097 --- Maximum width for the popup menu (`ins-completion-menu`). When zero, 5098 --- there is no maximum width limit, otherwise the popup menu will never be 5099 --- wider than this value. Truncated text will be indicated by "trunc" 5100 --- value of 'fillchars' option. 5101 --- 5102 --- This option takes precedence over 'pumwidth'. 5103 --- 5104 --- @type integer 5105 vim.o.pummaxwidth = 0 5106 vim.o.pmw = vim.o.pummaxwidth 5107 vim.go.pummaxwidth = vim.o.pummaxwidth 5108 vim.go.pmw = vim.go.pummaxwidth 5109 5110 --- Minimum width for the popup menu (`ins-completion-menu`). If the 5111 --- cursor column + 'pumwidth' exceeds screen width, the popup menu is 5112 --- nudged to fit on the screen. 5113 --- 5114 --- @type integer 5115 vim.o.pumwidth = 15 5116 vim.o.pw = vim.o.pumwidth 5117 vim.go.pumwidth = vim.o.pumwidth 5118 vim.go.pw = vim.go.pumwidth 5119 5120 --- Specifies the python version used for pyx* functions and commands 5121 --- `python_x`. As only Python 3 is supported, this always has the value 5122 --- `3`. Setting any other value is an error. 5123 --- 5124 --- This option cannot be set from a `modeline` or in the `sandbox`, for 5125 --- security reasons. 5126 --- 5127 --- @type integer 5128 vim.o.pyxversion = 3 5129 vim.o.pyx = vim.o.pyxversion 5130 vim.go.pyxversion = vim.o.pyxversion 5131 vim.go.pyx = vim.go.pyxversion 5132 5133 --- This option specifies a function to be used to get the text to display 5134 --- in the quickfix and location list windows. This can be used to 5135 --- customize the information displayed in the quickfix or location window 5136 --- for each entry in the corresponding quickfix or location list. See 5137 --- `quickfix-window-function` for an explanation of how to write the 5138 --- function and an example. The value can be the name of a function, a 5139 --- `lambda` or a `Funcref`. See `option-value-function` for more 5140 --- information. 5141 --- 5142 --- It is not allowed to change text or jump to another window while 5143 --- evaluating 'qftf' `textlock`. 5144 --- 5145 --- This option cannot be set from a `modeline` or in the `sandbox`, for 5146 --- security reasons. 5147 --- 5148 --- @type string 5149 vim.o.quickfixtextfunc = "" 5150 vim.o.qftf = vim.o.quickfixtextfunc 5151 vim.go.quickfixtextfunc = vim.o.quickfixtextfunc 5152 vim.go.qftf = vim.go.quickfixtextfunc 5153 5154 --- The characters that are used to escape quotes in a string. Used for 5155 --- objects like a', a" and a` `a'`. 5156 --- When one of the characters in this option is found inside a string, 5157 --- the following character will be skipped. The default value makes the 5158 --- text "foo\"bar\\" considered to be one string. 5159 --- 5160 --- @type string 5161 vim.o.quoteescape = "\\" 5162 vim.o.qe = vim.o.quoteescape 5163 vim.bo.quoteescape = vim.o.quoteescape 5164 vim.bo.qe = vim.bo.quoteescape 5165 5166 --- If on, writes fail unless you use a '!'. Protects you from 5167 --- accidentally overwriting a file. Default on when Vim is started 5168 --- in read-only mode ("vim -R") or when the executable is called "view". 5169 --- When using ":w!" the 'readonly' option is reset for the current 5170 --- buffer, unless the 'Z' flag is in 'cpoptions'. 5171 --- When using the ":view" command the 'readonly' option is set for the 5172 --- newly edited buffer. 5173 --- See 'modifiable' for disallowing changes to the buffer. 5174 --- 5175 --- @type boolean 5176 vim.o.readonly = false 5177 vim.o.ro = vim.o.readonly 5178 vim.bo.readonly = vim.o.readonly 5179 vim.bo.ro = vim.bo.readonly 5180 5181 --- Flags to change the way redrawing works, for debugging purposes. 5182 --- Most useful with 'writedelay' set to some reasonable value. 5183 --- Supports the following flags: 5184 --- compositor Indicate each redraw event handled by the compositor 5185 --- by briefly flashing the redrawn regions in colors 5186 --- indicating the redraw type. These are the highlight 5187 --- groups used (and their default colors): 5188 --- RedrawDebugNormal gui=reverse normal redraw passed through 5189 --- RedrawDebugClear guibg=Yellow clear event passed through 5190 --- RedrawDebugComposed guibg=Green redraw event modified by the 5191 --- compositor (due to 5192 --- overlapping grids, etc) 5193 --- RedrawDebugRecompose guibg=Red redraw generated by the 5194 --- compositor itself, due to a 5195 --- grid being moved or deleted. 5196 --- line introduce a delay after each line drawn on the screen. 5197 --- When using the TUI or another single-grid UI, "compositor" 5198 --- gives more information and should be preferred (every 5199 --- line is processed as a separate event by the compositor) 5200 --- flush introduce a delay after each "flush" event. 5201 --- nothrottle Turn off throttling of the message grid. This is an 5202 --- optimization that joins many small scrolls to one 5203 --- larger scroll when drawing the message area (with 5204 --- 'display' msgsep flag active). 5205 --- invalid Enable stricter checking (abort) of inconsistencies 5206 --- of the internal screen state. This is mostly 5207 --- useful when running nvim inside a debugger (and 5208 --- the test suite). 5209 --- nodelta Send all internally redrawn cells to the UI, even if 5210 --- they are unchanged from the already displayed state. 5211 --- 5212 --- @type string 5213 vim.o.redrawdebug = "" 5214 vim.o.rdb = vim.o.redrawdebug 5215 vim.go.redrawdebug = vim.o.redrawdebug 5216 vim.go.rdb = vim.go.redrawdebug 5217 5218 --- Time in milliseconds for redrawing the display. Applies to 5219 --- 'hlsearch', 'inccommand', `:match` highlighting, syntax highlighting, 5220 --- and async `LanguageTree:parse()`. 5221 --- When redrawing takes more than this many milliseconds no further 5222 --- matches will be highlighted. 5223 --- For syntax highlighting the time applies per window. When over the 5224 --- limit syntax highlighting is disabled until `CTRL-L` is used. 5225 --- This is used to avoid that Vim hangs when using a very complicated 5226 --- pattern. 5227 --- 5228 --- @type integer 5229 vim.o.redrawtime = 2000 5230 vim.o.rdt = vim.o.redrawtime 5231 vim.go.redrawtime = vim.o.redrawtime 5232 vim.go.rdt = vim.go.redrawtime 5233 5234 --- This selects the default regexp engine. `two-engines` 5235 --- The possible values are: 5236 --- 0 automatic selection 5237 --- 1 old engine 5238 --- 2 NFA engine 5239 --- Note that when using the NFA engine and the pattern contains something 5240 --- that is not supported the pattern will not match. This is only useful 5241 --- for debugging the regexp engine. 5242 --- Using automatic selection enables Vim to switch the engine, if the 5243 --- default engine becomes too costly. E.g., when the NFA engine uses too 5244 --- many states. This should prevent Vim from hanging on a combination of 5245 --- a complex pattern with long text. 5246 --- 5247 --- @type integer 5248 vim.o.regexpengine = 0 5249 vim.o.re = vim.o.regexpengine 5250 vim.go.regexpengine = vim.o.regexpengine 5251 vim.go.re = vim.go.regexpengine 5252 5253 --- Show the line number relative to the line with the cursor in front of 5254 --- each line. Relative line numbers help you use the `count` you can 5255 --- precede some vertical motion commands (e.g. j k + -) with, without 5256 --- having to calculate it yourself. Especially useful in combination 5257 --- with other commands (e.g. y d c < > gq gw =). 5258 --- When the 'n' option is excluded from 'cpoptions' a wrapped line will 5259 --- not use the column of line numbers. 5260 --- The 'numberwidth' option can be used to set the room used for the line 5261 --- number. 5262 --- When a long, wrapped line doesn't start with the first character, '-' 5263 --- characters are put before the number. 5264 --- See `hl-LineNr` and `hl-CursorLineNr` for the highlighting used for 5265 --- the number. 5266 --- 5267 --- The number in front of the cursor line also depends on the value of 5268 --- 'number', see `number_relativenumber` for all combinations of the two 5269 --- options. 5270 --- 5271 --- @type boolean 5272 vim.o.relativenumber = false 5273 vim.o.rnu = vim.o.relativenumber 5274 vim.wo.relativenumber = vim.o.relativenumber 5275 vim.wo.rnu = vim.wo.relativenumber 5276 5277 --- Threshold for reporting number of lines changed. When the number of 5278 --- changed lines is more than 'report' a message will be given for most 5279 --- ":" commands. If you want it always, set 'report' to 0. 5280 --- For the ":substitute" command the number of substitutions is used 5281 --- instead of the number of lines. 5282 --- 5283 --- @type integer 5284 vim.o.report = 2 5285 vim.go.report = vim.o.report 5286 5287 --- Inserting characters in Insert mode will work backwards. See "typing 5288 --- backwards" `ins-reverse`. This option can be toggled with the CTRL-_ 5289 --- command in Insert mode, when 'allowrevins' is set. 5290 --- 5291 --- @type boolean 5292 vim.o.revins = false 5293 vim.o.ri = vim.o.revins 5294 vim.go.revins = vim.o.revins 5295 vim.go.ri = vim.go.revins 5296 5297 --- When on, display orientation becomes right-to-left, i.e., characters 5298 --- that are stored in the file appear from the right to the left. 5299 --- Using this option, it is possible to edit files for languages that 5300 --- are written from the right to the left such as Hebrew and Arabic. 5301 --- This option is per window, so it is possible to edit mixed files 5302 --- simultaneously, or to view the same file in both ways (this is 5303 --- useful whenever you have a mixed text file with both right-to-left 5304 --- and left-to-right strings so that both sets are displayed properly 5305 --- in different windows). Also see `rileft.txt`. 5306 --- 5307 --- @type boolean 5308 vim.o.rightleft = false 5309 vim.o.rl = vim.o.rightleft 5310 vim.wo.rightleft = vim.o.rightleft 5311 vim.wo.rl = vim.wo.rightleft 5312 5313 --- Each word in this option enables the command line editing to work in 5314 --- right-to-left mode for a group of commands: 5315 --- 5316 --- search "/" and "?" commands 5317 --- 5318 --- This is useful for languages such as Hebrew, Arabic and Farsi. 5319 --- The 'rightleft' option must be set for 'rightleftcmd' to take effect. 5320 --- 5321 --- @type string 5322 vim.o.rightleftcmd = "search" 5323 vim.o.rlc = vim.o.rightleftcmd 5324 vim.wo.rightleftcmd = vim.o.rightleftcmd 5325 vim.wo.rlc = vim.wo.rightleftcmd 5326 5327 --- Show the line and column number of the cursor position, separated by a 5328 --- comma. When there is room, the relative position of the displayed 5329 --- text in the file is shown on the far right: 5330 --- Top first line is visible 5331 --- Bot last line is visible 5332 --- All first and last line are visible 5333 --- 45% relative position in the file 5334 --- If 'rulerformat' is set, it will determine the contents of the ruler. 5335 --- Each window has its own ruler. If a window has a status line, the 5336 --- ruler is shown there. If a window doesn't have a status line and 5337 --- 'cmdheight' is zero, the ruler is not shown. Otherwise it is shown in 5338 --- the last line of the screen. If the statusline is given by 5339 --- 'statusline' (i.e. not empty), this option takes precedence over 5340 --- 'ruler' and 'rulerformat'. 5341 --- If the number of characters displayed is different from the number of 5342 --- bytes in the text (e.g., for a TAB or a multibyte character), both 5343 --- the text column (byte number) and the screen column are shown, 5344 --- separated with a dash. 5345 --- For an empty line "0-1" is shown. 5346 --- For an empty buffer the line number will also be zero: "0,0-1". 5347 --- If you don't want to see the ruler all the time but want to know where 5348 --- you are, use "g CTRL-G" `g_CTRL-G`. 5349 --- 5350 --- @type boolean 5351 vim.o.ruler = true 5352 vim.o.ru = vim.o.ruler 5353 vim.go.ruler = vim.o.ruler 5354 vim.go.ru = vim.go.ruler 5355 5356 --- When this option is not empty, it determines the content of the ruler 5357 --- string, as displayed for the 'ruler' option. 5358 --- The format of this option is like that of 'statusline'. 5359 --- This option cannot be set in a modeline when 'modelineexpr' is off. 5360 --- 5361 --- The default ruler width is 17 characters. To make the ruler 15 5362 --- characters wide, put "%15(" at the start and "%)" at the end. 5363 --- Example: 5364 --- 5365 --- ```vim 5366 --- set rulerformat=%15(%c%V\ %p%%%) 5367 --- ``` 5368 --- 5369 --- 5370 --- @type string 5371 vim.o.rulerformat = "" 5372 vim.o.ruf = vim.o.rulerformat 5373 vim.go.rulerformat = vim.o.rulerformat 5374 vim.go.ruf = vim.go.rulerformat 5375 5376 --- List of directories to be searched for these runtime files: 5377 --- filetype.lua filetypes `new-filetype` 5378 --- autoload/ automatically loaded scripts `autoload-functions` 5379 --- colors/ color scheme files `:colorscheme` 5380 --- compiler/ compiler files `:compiler` 5381 --- doc/ documentation `write-local-help` 5382 --- ftplugin/ filetype plugins `write-filetype-plugin` 5383 --- indent/ indent scripts `indent-expression` 5384 --- keymap/ key mapping files `mbyte-keymap` 5385 --- lang/ menu translations `:menutrans` 5386 --- lsp/ LSP client configurations `lsp-config` 5387 --- lua/ `Lua` plugins 5388 --- menu.vim GUI menus `menu.vim` 5389 --- pack/ packages `:packadd` 5390 --- parser/ `treesitter` syntax parsers 5391 --- plugin/ plugin scripts `write-plugin` 5392 --- queries/ `treesitter` queries 5393 --- rplugin/ `remote-plugin` scripts 5394 --- spell/ spell checking files `spell` 5395 --- syntax/ syntax files `mysyntaxfile` 5396 --- tutor/ tutorial files `:Tutor` 5397 --- 5398 --- And any other file searched for with the `:runtime` command. 5399 --- 5400 --- Defaults are setup to search these locations: 5401 --- 1. Your home directory, for personal preferences. 5402 --- Given by `stdpath("config")`. `$XDG_CONFIG_HOME` 5403 --- 2. Directories which must contain configuration files according to 5404 --- `xdg` ($XDG_CONFIG_DIRS, defaults to /etc/xdg). This also contains 5405 --- preferences from system administrator. 5406 --- 3. Data home directory, for plugins installed by user. 5407 --- Given by `stdpath("data")/site`. `$XDG_DATA_HOME` 5408 --- 4. nvim/site subdirectories for each directory in $XDG_DATA_DIRS. 5409 --- This is for plugins which were installed by system administrator, 5410 --- but are not part of the Nvim distribution. XDG_DATA_DIRS defaults 5411 --- to /usr/local/share/:/usr/share/, so system administrators are 5412 --- expected to install site plugins to /usr/share/nvim/site. 5413 --- 5. $VIMRUNTIME, for files distributed with Nvim. 5414 --- *after-directory* 5415 --- 6, 7, 8, 9. In after/ subdirectories of 1, 2, 3 and 4, with reverse 5416 --- ordering. This is for preferences to overrule or add to the 5417 --- distributed defaults or system-wide settings (rarely needed). 5418 --- 5419 --- *packages-runtimepath* 5420 --- "start" packages will also be searched (`runtime-search-path`) for 5421 --- runtime files after these, though such packages are not explicitly 5422 --- reported in &runtimepath. But "opt" packages are explicitly added to 5423 --- &runtimepath by `:packadd`. 5424 --- 5425 --- Note that, unlike 'path', no wildcards like "**" are allowed. Normal 5426 --- wildcards are allowed, but can significantly slow down searching for 5427 --- runtime files. For speed, use as few items as possible and avoid 5428 --- wildcards. 5429 --- See `:runtime`. 5430 --- Example: 5431 --- 5432 --- ```vim 5433 --- set runtimepath=~/vimruntime,/mygroup/vim,$VIMRUNTIME 5434 --- ``` 5435 --- This will use the directory "~/vimruntime" first (containing your 5436 --- personal Nvim runtime files), then "/mygroup/vim", and finally 5437 --- "$VIMRUNTIME" (the default runtime files). 5438 --- You can put a directory before $VIMRUNTIME to find files which replace 5439 --- distributed runtime files. You can put a directory after $VIMRUNTIME 5440 --- to find files which add to distributed runtime files. 5441 --- 5442 --- With `--clean` the home directory entries are not included. 5443 --- Environment variables are expanded `:set_env`. 5444 --- This option cannot be set from a `modeline` or in the `sandbox`, for 5445 --- security reasons. 5446 --- 5447 --- @type string 5448 vim.o.runtimepath = "..." 5449 vim.o.rtp = vim.o.runtimepath 5450 vim.go.runtimepath = vim.o.runtimepath 5451 vim.go.rtp = vim.go.runtimepath 5452 5453 --- Number of lines to scroll with CTRL-U and CTRL-D commands. Will be 5454 --- set to half the number of lines in the window when the window size 5455 --- changes. This may happen when enabling the `status-line` or 5456 --- 'tabline' option after setting the 'scroll' option. 5457 --- If you give a count to the CTRL-U or CTRL-D command it will 5458 --- be used as the new value for 'scroll'. Reset to half the window 5459 --- height with ":set scroll=0". 5460 --- 5461 --- @type integer 5462 vim.o.scroll = 0 5463 vim.o.scr = vim.o.scroll 5464 vim.wo.scroll = vim.o.scroll 5465 vim.wo.scr = vim.wo.scroll 5466 5467 --- Maximum number of lines kept beyond the visible screen. Lines at the 5468 --- top are deleted if new lines exceed this limit. 5469 --- Minimum is 1, maximum is 1000000. 5470 --- Only in `terminal` buffers. 5471 --- 5472 --- Note: Lines that are not visible and kept in scrollback are not 5473 --- reflown when the terminal buffer is resized horizontally. 5474 --- 5475 --- @type integer 5476 vim.o.scrollback = -1 5477 vim.o.scbk = vim.o.scrollback 5478 vim.bo.scrollback = vim.o.scrollback 5479 vim.bo.scbk = vim.bo.scrollback 5480 5481 --- See also `scroll-binding`. When this option is set, scrolling the 5482 --- current window also scrolls other scrollbind windows (windows that 5483 --- also have this option set). This option is useful for viewing the 5484 --- differences between two versions of a file, see 'diff'. 5485 --- See 'scrollopt' for options that determine how this option should be 5486 --- interpreted. 5487 --- This option is mostly reset when splitting a window to edit another 5488 --- file. This means that ":split | edit file" results in two windows 5489 --- with scroll-binding, but ":split file" does not. 5490 --- 5491 --- @type boolean 5492 vim.o.scrollbind = false 5493 vim.o.scb = vim.o.scrollbind 5494 vim.wo.scrollbind = vim.o.scrollbind 5495 vim.wo.scb = vim.wo.scrollbind 5496 5497 --- Minimal number of lines to scroll when the cursor gets off the 5498 --- screen (e.g., with "j"). Not used for scroll commands (e.g., CTRL-E, 5499 --- CTRL-D). Useful if your terminal scrolls very slowly. 5500 --- When set to a negative number from -1 to -100 this is used as the 5501 --- percentage of the window height. Thus -50 scrolls half the window 5502 --- height. 5503 --- 5504 --- @type integer 5505 vim.o.scrolljump = 1 5506 vim.o.sj = vim.o.scrolljump 5507 vim.go.scrolljump = vim.o.scrolljump 5508 vim.go.sj = vim.go.scrolljump 5509 5510 --- Minimal number of screen lines to keep above and below the cursor. 5511 --- This will make some context visible around where you are working. If 5512 --- you set it to a very large value (999) the cursor line will always be 5513 --- in the middle of the window (except at the start or end of the file or 5514 --- when long lines wrap). 5515 --- After using the local value, go back the global value with one of 5516 --- these two: 5517 --- 5518 --- ```vim 5519 --- setlocal scrolloff< 5520 --- setlocal scrolloff=-1 5521 --- ``` 5522 --- For scrolling horizontally see 'sidescrolloff'. 5523 --- 5524 --- @type integer 5525 vim.o.scrolloff = 0 5526 vim.o.so = vim.o.scrolloff 5527 vim.wo.scrolloff = vim.o.scrolloff 5528 vim.wo.so = vim.wo.scrolloff 5529 vim.go.scrolloff = vim.o.scrolloff 5530 vim.go.so = vim.go.scrolloff 5531 5532 --- This is a comma-separated list of words that specifies how 5533 --- 'scrollbind' windows should behave. 'sbo' stands for ScrollBind 5534 --- Options. 5535 --- The following words are available: 5536 --- ver Bind vertical scrolling for 'scrollbind' windows 5537 --- hor Bind horizontal scrolling for 'scrollbind' windows 5538 --- jump Applies to the offset between two windows for vertical 5539 --- scrolling. This offset is the difference in the first 5540 --- displayed line of the bound windows. When moving 5541 --- around in a window, another 'scrollbind' window may 5542 --- reach a position before the start or after the end of 5543 --- the buffer. The offset is not changed though, when 5544 --- moving back the 'scrollbind' window will try to scroll 5545 --- to the desired position when possible. 5546 --- When now making that window the current one, two 5547 --- things can be done with the relative offset: 5548 --- 1. When "jump" is not included, the relative offset is 5549 --- adjusted for the scroll position in the new current 5550 --- window. When going back to the other window, the 5551 --- new relative offset will be used. 5552 --- 2. When "jump" is included, the other windows are 5553 --- scrolled to keep the same relative offset. When 5554 --- going back to the other window, it still uses the 5555 --- same relative offset. 5556 --- Also see `scroll-binding`. 5557 --- When 'diff' mode is active there always is vertical scroll binding, 5558 --- even when "ver" isn't there. 5559 --- 5560 --- @type string 5561 vim.o.scrollopt = "ver,jump" 5562 vim.o.sbo = vim.o.scrollopt 5563 vim.go.scrollopt = vim.o.scrollopt 5564 vim.go.sbo = vim.go.scrollopt 5565 5566 --- Specifies the nroff macros that separate sections. These are pairs of 5567 --- two letters (See `object-motions`). The default makes a section start 5568 --- at the nroff macros ".SH", ".NH", ".H", ".HU", ".nh" and ".sh". 5569 --- 5570 --- @type string 5571 vim.o.sections = "SHNHH HUnhsh" 5572 vim.o.sect = vim.o.sections 5573 vim.go.sections = vim.o.sections 5574 vim.go.sect = vim.go.sections 5575 5576 --- This option defines the behavior of the selection. It is only used 5577 --- in Visual and Select mode. 5578 --- Possible values: 5579 --- value past line inclusive ~ 5580 --- old no yes 5581 --- inclusive yes yes 5582 --- exclusive yes no 5583 --- "past line" means that the cursor is allowed to be positioned one 5584 --- character past the line. 5585 --- "inclusive" means that the last character of the selection is included 5586 --- in an operation. For example, when "x" is used to delete the 5587 --- selection. 5588 --- When "old" is used and 'virtualedit' allows the cursor to move past 5589 --- the end of line the line break still isn't included. 5590 --- When "exclusive" is used, cursor position in visual mode will be 5591 --- adjusted for inclusive motions `inclusive-motion-selection-exclusive`. 5592 --- 5593 --- Note: 5594 --- - When "exclusive" is used and selecting from the end backwards, you 5595 --- cannot include the last character of a line, when starting in Normal 5596 --- mode and 'virtualedit' empty. 5597 --- - when "exclusive" is used with a single character visual selection, 5598 --- Vim will behave as if the 'selection' is inclusive (in other words, 5599 --- you cannot visually select an empty region). 5600 --- 5601 --- @type 'inclusive'|'exclusive'|'old' 5602 vim.o.selection = "inclusive" 5603 vim.o.sel = vim.o.selection 5604 vim.go.selection = vim.o.selection 5605 vim.go.sel = vim.go.selection 5606 5607 --- This is a comma-separated list of words, which specifies when to start 5608 --- Select mode instead of Visual mode, when a selection is started. 5609 --- Possible values: 5610 --- mouse when using the mouse 5611 --- key when using shifted special keys 5612 --- cmd when using "v", "V" or CTRL-V 5613 --- See `Select-mode`. 5614 --- 5615 --- @type string 5616 vim.o.selectmode = "" 5617 vim.o.slm = vim.o.selectmode 5618 vim.go.selectmode = vim.o.selectmode 5619 vim.go.slm = vim.go.selectmode 5620 5621 --- Changes the effect of the `:mksession` command. It is a comma- 5622 --- separated list of words. Each word enables saving and restoring 5623 --- something: 5624 --- word save and restore ~ 5625 --- blank empty windows 5626 --- buffers hidden and unloaded buffers, not just those in windows 5627 --- curdir the current directory 5628 --- folds manually created folds, opened/closed folds and local 5629 --- fold options 5630 --- globals global variables that start with an uppercase letter 5631 --- and contain at least one lowercase letter. Only 5632 --- String and Number types are stored. 5633 --- help the help window 5634 --- localoptions options and mappings local to a window or buffer (not 5635 --- global values for local options) 5636 --- options all options and mappings (also global values for local 5637 --- options) 5638 --- skiprtp exclude 'runtimepath' and 'packpath' from the options 5639 --- resize size of the Vim window: 'lines' and 'columns' 5640 --- sesdir the directory in which the session file is located 5641 --- will become the current directory (useful with 5642 --- projects accessed over a network from different 5643 --- systems) 5644 --- tabpages all tab pages; without this only the current tab page 5645 --- is restored, so that you can make a session for each 5646 --- tab page separately 5647 --- terminal include terminal windows where the command can be 5648 --- restored 5649 --- winpos position of the whole Vim window 5650 --- winsize window sizes 5651 --- slash `deprecated` Always enabled. Uses "/" in filenames. 5652 --- unix `deprecated` Always enabled. Uses "\n" line endings. 5653 --- 5654 --- Don't include both "curdir" and "sesdir". When neither is included 5655 --- filenames are stored as absolute paths. 5656 --- If you leave out "options" many things won't work well after restoring 5657 --- the session. 5658 --- 5659 --- @type string 5660 vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,terminal" 5661 vim.o.ssop = vim.o.sessionoptions 5662 vim.go.sessionoptions = vim.o.sessionoptions 5663 vim.go.ssop = vim.go.sessionoptions 5664 5665 --- When non-empty, the shada file is read upon startup and written 5666 --- when exiting Vim (see `shada-file`). The string should be a comma- 5667 --- separated list of parameters, each consisting of a single character 5668 --- identifying the particular parameter, followed by a number or string 5669 --- which specifies the value of that parameter. If a particular 5670 --- character is left out, then the default value is used for that 5671 --- parameter. The following is a list of the identifying characters and 5672 --- the effect of their value. 5673 --- CHAR VALUE ~ 5674 --- *shada-!* 5675 --- ! When included, save and restore global variables that start 5676 --- with an uppercase letter, and don't contain a lowercase 5677 --- letter. Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis" 5678 --- and "_K_L_M" are not. Nested List and Dict items may not be 5679 --- read back correctly, you end up with an empty item. 5680 --- *shada-quote* 5681 --- " Maximum number of lines saved for each register. Old name of 5682 --- the '<' item, with the disadvantage that you need to put a 5683 --- backslash before the ", otherwise it will be recognized as the 5684 --- start of a comment! 5685 --- *shada-%* 5686 --- % When included, save and restore the buffer list. If Vim is 5687 --- started with a file name argument, the buffer list is not 5688 --- restored. If Vim is started without a file name argument, the 5689 --- buffer list is restored from the shada file. Quickfix 5690 --- ('buftype'), unlisted ('buflisted'), unnamed and buffers on 5691 --- removable media (`shada-r`) are not saved. 5692 --- When followed by a number, the number specifies the maximum 5693 --- number of buffers that are stored. Without a number all 5694 --- buffers are stored. 5695 --- *shada-'* 5696 --- ' Maximum number of previously edited files for which the marks 5697 --- are remembered. This parameter must always be included when 5698 --- 'shada' is non-empty. 5699 --- If non-zero, then the `jumplist` and the `changelist` are also 5700 --- stored in the shada file. 5701 --- *shada-/* 5702 --- / Maximum number of items in the search pattern history to be 5703 --- saved. If non-zero, then the previous search and substitute 5704 --- patterns are also saved. When not included, the value of 5705 --- 'history' is used. 5706 --- *shada-:* 5707 --- : Maximum number of items in the command-line history to be 5708 --- saved. When not included, the value of 'history' is used. 5709 --- *shada-<* 5710 --- \< Maximum number of lines saved for each register. If zero then 5711 --- registers are not saved. When not included, all lines are 5712 --- saved. '"' is the old name for this item. 5713 --- Also see the 's' item below: limit specified in KiB. 5714 --- *shada-@* 5715 --- @ Maximum number of items in the input-line history to be 5716 --- saved. When not included, the value of 'history' is used. 5717 --- *shada-c* 5718 --- c Dummy option, kept for compatibility reasons. Has no actual 5719 --- effect: ShaDa always uses UTF-8 and 'encoding' value is fixed 5720 --- to UTF-8 as well. 5721 --- *shada-f* 5722 --- f Whether file marks need to be stored. If zero, file marks ('0 5723 --- to '9, 'A to 'Z) are not stored. When not present or when 5724 --- non-zero, they are all stored. '0 is used for the current 5725 --- cursor position (when exiting or when doing `:wshada`). 5726 --- *shada-h* 5727 --- h Disable the effect of 'hlsearch' when loading the shada 5728 --- file. When not included, it depends on whether ":nohlsearch" 5729 --- has been used since the last search command. 5730 --- *shada-n* 5731 --- n Name of the shada file. The name must immediately follow 5732 --- the 'n'. Must be at the end of the option! If the 5733 --- 'shadafile' option is set, that file name overrides the one 5734 --- given here with 'shada'. Environment variables are 5735 --- expanded when opening the file, not when setting the option. 5736 --- *shada-r* 5737 --- r Removable media. The argument is a string (up to the next 5738 --- ','). This parameter can be given several times. Each 5739 --- specifies the start of a path for which no marks will be 5740 --- stored. This is to avoid removable media. For Windows you 5741 --- could use "ra:,rb:". You can also use it for temp files, 5742 --- e.g., for Unix: "r/tmp". Case is ignored. 5743 --- *shada-s* 5744 --- s Maximum size of an item contents in KiB. If zero then nothing 5745 --- is saved. Unlike Vim this applies to all items, except for 5746 --- the buffer list and header. Full item size is off by three 5747 --- unsigned integers: with `s10` maximum item size may be 1 byte 5748 --- (type: 7-bit integer) + 9 bytes (timestamp: up to 64-bit 5749 --- integer) + 3 bytes (item size: up to 16-bit integer because 5750 --- 2^8 < 10240 < 2^16) + 10240 bytes (requested maximum item 5751 --- contents size) = 10253 bytes. 5752 --- 5753 --- Example: 5754 --- 5755 --- ```vim 5756 --- set shada='50,<1000,s100,:0,n~/nvim/shada 5757 --- ``` 5758 --- 5759 --- '50 Marks will be remembered for the last 50 files you 5760 --- edited. 5761 --- <1000 Contents of registers (up to 1000 lines each) will be 5762 --- remembered. 5763 --- s100 Items with contents occupying more then 100 KiB are 5764 --- skipped. 5765 --- :0 Command-line history will not be saved. 5766 --- n~/nvim/shada The name of the file to use is "~/nvim/shada". 5767 --- no / Since '/' is not specified, the default will be used, 5768 --- that is, save all of the search history, and also the 5769 --- previous search and substitute patterns. 5770 --- no % The buffer list will not be saved nor read back. 5771 --- no h 'hlsearch' highlighting will be restored. 5772 --- 5773 --- When setting 'shada' from an empty value you can use `:rshada` to 5774 --- load the contents of the file, this is not done automatically. 5775 --- 5776 --- This option cannot be set from a `modeline` or in the `sandbox`, for 5777 --- security reasons. 5778 --- 5779 --- @type string 5780 vim.o.shada = "!,'100,<50,s10,h,r/tmp/,r/private/" 5781 vim.o.sd = vim.o.shada 5782 vim.go.shada = vim.o.shada 5783 vim.go.sd = vim.go.shada 5784 5785 --- When non-empty, overrides the file name used for `shada` (viminfo). 5786 --- When equal to "NONE" no shada file will be read or written. 5787 --- This option can be set with the `-i` command line flag. The `--clean` 5788 --- command line flag sets it to "NONE". 5789 --- Environment variables are expanded `:set_env`. 5790 --- This option cannot be set from a `modeline` or in the `sandbox`, for 5791 --- security reasons. 5792 --- 5793 --- @type string 5794 vim.o.shadafile = "" 5795 vim.o.sdf = vim.o.shadafile 5796 vim.go.shadafile = vim.o.shadafile 5797 vim.go.sdf = vim.go.shadafile 5798 5799 --- Name of the shell to use for ! and :! commands. When changing the 5800 --- value also check these options: 'shellpipe', 'shellslash' 5801 --- 'shellredir', 'shellquote', 'shellxquote' and 'shellcmdflag'. 5802 --- It is allowed to give an argument to the command, e.g. "csh -f". 5803 --- See `option-backslash` about including spaces and backslashes. 5804 --- Environment variables are expanded `:set_env`. 5805 --- 5806 --- If the name of the shell contains a space, you need to enclose it in 5807 --- quotes. Example with quotes: 5808 --- 5809 --- ```vim 5810 --- set shell=\"c:\program\ files\unix\sh.exe\"\ -f 5811 --- ``` 5812 --- Note the backslash before each quote (to avoid starting a comment) and 5813 --- each space (to avoid ending the option value), so better use `:let-&` 5814 --- like this: 5815 --- 5816 --- ```vim 5817 --- let &shell='"C:\Program Files\unix\sh.exe" -f' 5818 --- ``` 5819 --- Also note that the "-f" is not inside the quotes, because it is not 5820 --- part of the command name. 5821 --- *shell-unquoting* 5822 --- Rules regarding quotes: 5823 --- 1. Option is split on space and tab characters that are not inside 5824 --- quotes: "abc def" runs shell named "abc" with additional argument 5825 --- "def", '"abc def"' runs shell named "abc def" with no additional 5826 --- arguments (here and below: additional means “additional to 5827 --- 'shellcmdflag'”). 5828 --- 2. Quotes in option may be present in any position and any number: 5829 --- '"abc"', '"a"bc', 'a"b"c', 'ab"c"' and '"a"b"c"' are all equivalent 5830 --- to just "abc". 5831 --- 3. Inside quotes backslash preceding backslash means one backslash. 5832 --- Backslash preceding quote means one quote. Backslash preceding 5833 --- anything else means backslash and next character literally: 5834 --- '"a\\b"' is the same as "a\b", '"a\\"b"' runs shell named literally 5835 --- 'a"b', '"a\b"' is the same as "a\b" again. 5836 --- 4. Outside of quotes backslash always means itself, it cannot be used 5837 --- to escape quote: 'a\"b"' is the same as "a\b". 5838 --- Note that such processing is done after `:set` did its own round of 5839 --- unescaping, so to keep yourself sane use `:let-&` like shown above. 5840 --- *shell-powershell* 5841 --- To use PowerShell: 5842 --- 5843 --- ```vim 5844 --- set noshelltemp 5845 --- let &shell = 'powershell' 5846 --- let &shellcmdflag = '-NoLogo -NoProfile -ExecutionPolicy RemoteSigned -Command ' 5847 --- let &shellcmdflag .= '[Console]::InputEncoding=[Console]::OutputEncoding=[System.Text.UTF8Encoding]::new();' 5848 --- let &shellcmdflag .= '$PSDefaultParameterValues[''Out-File:Encoding'']=''utf8'';' 5849 --- let &shellpipe = '> %s 2>&1' 5850 --- set shellquote= shellxquote= 5851 --- ``` 5852 --- 5853 --- *shell-pwsh* 5854 --- To use pwsh, use the above settings with `let &shell = 'pwsh'`, and 5855 --- add: 5856 --- 5857 --- ```vim 5858 --- let &shellcmdflag .= '$PSStyle.OutputRendering = ''PlainText'';' 5859 --- " Workaround (may not be needed in future version of pwsh): 5860 --- let $__SuppressAnsiEscapeSequences = 1 5861 --- ``` 5862 --- 5863 --- This option cannot be set from a `modeline` or in the `sandbox`, for 5864 --- security reasons. 5865 --- 5866 --- @type string 5867 vim.o.shell = "sh" 5868 vim.o.sh = vim.o.shell 5869 vim.go.shell = vim.o.shell 5870 vim.go.sh = vim.go.shell 5871 5872 --- Flag passed to the shell to execute "!" and ":!" commands; e.g., 5873 --- `bash.exe -c ls` or `cmd.exe /s /c "dir"`. For MS-Windows, the 5874 --- default is set according to the value of 'shell', to reduce the need 5875 --- to set this option by the user. 5876 --- On Unix it can have more than one flag. Each white space separated 5877 --- part is passed as an argument to the shell command. 5878 --- See `option-backslash` about including spaces and backslashes. 5879 --- See `shell-unquoting` which talks about separating this option into 5880 --- multiple arguments. 5881 --- This option cannot be set from a `modeline` or in the `sandbox`, for 5882 --- security reasons. 5883 --- 5884 --- @type string 5885 vim.o.shellcmdflag = "-c" 5886 vim.o.shcf = vim.o.shellcmdflag 5887 vim.go.shellcmdflag = vim.o.shellcmdflag 5888 vim.go.shcf = vim.go.shellcmdflag 5889 5890 --- String to be used to put the output of the ":make" command in the 5891 --- error file. See also `:make_makeprg`. See `option-backslash` about 5892 --- including spaces and backslashes. 5893 --- The name of the temporary file can be represented by "%s" if necessary 5894 --- (the file name is appended automatically if no %s appears in the value 5895 --- of this option). 5896 --- For MS-Windows the default is "2>&1| tee". The stdout and stderr are 5897 --- saved in a file and echoed to the screen. 5898 --- For Unix the default is "| tee". The stdout of the compiler is saved 5899 --- in a file and echoed to the screen. If the 'shell' option is "csh" or 5900 --- "tcsh" after initializations, the default becomes "|& tee". If the 5901 --- 'shell' option is "sh", "ksh", "mksh", "pdksh", "zsh", "zsh-beta", 5902 --- "bash", "fish", "ash" or "dash" the default becomes "2>&1| tee". This 5903 --- means that stderr is also included. Before using the 'shell' option a 5904 --- path is removed, thus "/bin/sh" uses "sh". 5905 --- The initialization of this option is done after reading the vimrc 5906 --- and the other initializations, so that when the 'shell' option is set 5907 --- there, the 'shellpipe' option changes automatically, unless it was 5908 --- explicitly set before. 5909 --- When 'shellpipe' is set to an empty string, no redirection of the 5910 --- ":make" output will be done. This is useful if you use a 'makeprg' 5911 --- that writes to 'makeef' by itself. If you want no piping, but do 5912 --- want to include the 'makeef', set 'shellpipe' to a single space. 5913 --- Don't forget to precede the space with a backslash: ":set sp=\ ". 5914 --- In the future pipes may be used for filtering and this option will 5915 --- become obsolete (at least for Unix). 5916 --- Note: When using a pipe like "| tee", you'll lose the exit code of the 5917 --- shell command. This might be configurable by your shell, look for 5918 --- the pipefail option (for bash and zsh, use ":set -o pipefail"). 5919 --- This option cannot be set from a `modeline` or in the `sandbox`, for 5920 --- security reasons. 5921 --- 5922 --- @type string 5923 vim.o.shellpipe = "| tee" 5924 vim.o.sp = vim.o.shellpipe 5925 vim.go.shellpipe = vim.o.shellpipe 5926 vim.go.sp = vim.go.shellpipe 5927 5928 --- Quoting character(s), put around the command passed to the shell, for 5929 --- the "!" and ":!" commands. The redirection is kept outside of the 5930 --- quoting. See 'shellxquote' to include the redirection. It's 5931 --- probably not useful to set both options. 5932 --- This is an empty string by default. Only known to be useful for 5933 --- third-party shells on Windows systems, such as the MKS Korn Shell 5934 --- or bash, where it should be "\"". The default is adjusted according 5935 --- the value of 'shell', to reduce the need to set this option by the 5936 --- user. 5937 --- This option cannot be set from a `modeline` or in the `sandbox`, for 5938 --- security reasons. 5939 --- 5940 --- @type string 5941 vim.o.shellquote = "" 5942 vim.o.shq = vim.o.shellquote 5943 vim.go.shellquote = vim.o.shellquote 5944 vim.go.shq = vim.go.shellquote 5945 5946 --- String to be used to put the output of a filter command in a temporary 5947 --- file. See also `:!`. See `option-backslash` about including spaces 5948 --- and backslashes. 5949 --- The name of the temporary file can be represented by "%s" if necessary 5950 --- (the file name is appended automatically if no %s appears in the value 5951 --- of this option). 5952 --- The default is ">". For Unix, if the 'shell' option is "csh" or 5953 --- "tcsh" during initializations, the default becomes ">&". If the 5954 --- 'shell' option is "sh", "ksh", "mksh", "pdksh", "zsh", "zsh-beta", 5955 --- "bash" or "fish", the default becomes ">%s 2>&1". This means that 5956 --- stderr is also included. For Win32, the Unix checks are done and 5957 --- additionally "cmd" is checked for, which makes the default ">%s 2>&1". 5958 --- Also, the same names with ".exe" appended are checked for. 5959 --- The initialization of this option is done after reading the vimrc 5960 --- and the other initializations, so that when the 'shell' option is set 5961 --- there, the 'shellredir' option changes automatically unless it was 5962 --- explicitly set before. 5963 --- In the future pipes may be used for filtering and this option will 5964 --- become obsolete (at least for Unix). 5965 --- This option cannot be set from a `modeline` or in the `sandbox`, for 5966 --- security reasons. 5967 --- 5968 --- @type string 5969 vim.o.shellredir = ">" 5970 vim.o.srr = vim.o.shellredir 5971 vim.go.shellredir = vim.o.shellredir 5972 vim.go.srr = vim.go.shellredir 5973 5974 --- only modifiable in MS-Windows 5975 --- When set, a forward slash is used when expanding file names. This is 5976 --- useful when a Unix-like shell is used instead of cmd.exe. Backward 5977 --- slashes can still be typed, but they are changed to forward slashes by 5978 --- Vim. 5979 --- Note that setting or resetting this option has no effect for some 5980 --- existing file names, thus this option needs to be set before opening 5981 --- any file for best results. This might change in the future. 5982 --- 'shellslash' only works when a backslash can be used as a path 5983 --- separator. To test if this is so use: 5984 --- 5985 --- ```vim 5986 --- if exists('+shellslash') 5987 --- ``` 5988 --- Also see 'completeslash'. 5989 --- 5990 --- @type boolean 5991 vim.o.shellslash = true 5992 vim.o.ssl = vim.o.shellslash 5993 vim.go.shellslash = vim.o.shellslash 5994 vim.go.ssl = vim.go.shellslash 5995 5996 --- When on, use temp files for shell commands. When off use a pipe. 5997 --- When using a pipe is not possible temp files are used anyway. 5998 --- The advantage of using a pipe is that nobody can read the temp file 5999 --- and the 'shell' command does not need to support redirection. 6000 --- The advantage of using a temp file is that the file type and encoding 6001 --- can be detected. 6002 --- The `FilterReadPre`, `FilterReadPost` and `FilterWritePre`, 6003 --- `FilterWritePost` autocommands event are not triggered when 6004 --- 'shelltemp' is off. 6005 --- `system()` does not respect this option, it always uses pipes. 6006 --- 6007 --- @type boolean 6008 vim.o.shelltemp = false 6009 vim.o.stmp = vim.o.shelltemp 6010 vim.go.shelltemp = vim.o.shelltemp 6011 vim.go.stmp = vim.go.shelltemp 6012 6013 --- When 'shellxquote' is set to "(" then the characters listed in this 6014 --- option will be escaped with a '^' character. This makes it possible 6015 --- to execute most external commands with cmd.exe. 6016 --- This option cannot be set from a `modeline` or in the `sandbox`, for 6017 --- security reasons. 6018 --- 6019 --- @type string 6020 vim.o.shellxescape = "" 6021 vim.o.sxe = vim.o.shellxescape 6022 vim.go.shellxescape = vim.o.shellxescape 6023 vim.go.sxe = vim.go.shellxescape 6024 6025 --- Quoting character(s), put around the command passed to the shell, for 6026 --- the "!" and ":!" commands. Includes the redirection. See 6027 --- 'shellquote' to exclude the redirection. It's probably not useful 6028 --- to set both options. 6029 --- When the value is '(' then ')' is appended. When the value is '"(' 6030 --- then ')"' is appended. 6031 --- When the value is '(' then also see 'shellxescape'. 6032 --- This option cannot be set from a `modeline` or in the `sandbox`, for 6033 --- security reasons. 6034 --- 6035 --- @type string 6036 vim.o.shellxquote = "" 6037 vim.o.sxq = vim.o.shellxquote 6038 vim.go.shellxquote = vim.o.shellxquote 6039 vim.go.sxq = vim.go.shellxquote 6040 6041 --- Round indent to multiple of 'shiftwidth'. Applies to > and < 6042 --- commands. CTRL-T and CTRL-D in Insert mode always round the indent to 6043 --- a multiple of 'shiftwidth' (this is Vi compatible). 6044 --- 6045 --- @type boolean 6046 vim.o.shiftround = false 6047 vim.o.sr = vim.o.shiftround 6048 vim.go.shiftround = vim.o.shiftround 6049 vim.go.sr = vim.go.shiftround 6050 6051 --- Number of columns that make up one level of (auto)indentation. Used 6052 --- by 'cindent', `<<`, `>>`, etc. 6053 --- If set to 0, Vim uses the current 'tabstop' value. Use `shiftwidth()` 6054 --- to obtain the effective value in scripts. 6055 --- 6056 --- @type integer 6057 vim.o.shiftwidth = 8 6058 vim.o.sw = vim.o.shiftwidth 6059 vim.bo.shiftwidth = vim.o.shiftwidth 6060 vim.bo.sw = vim.bo.shiftwidth 6061 6062 --- This option helps to avoid all the `hit-enter` prompts caused by file 6063 --- messages, for example with CTRL-G, and to avoid some other messages. 6064 --- It is a list of flags: 6065 --- flag meaning when present ~ 6066 --- l use "999L, 888B" instead of "999 lines, 888 bytes" *shm-l* 6067 --- m use "[+]" instead of "[Modified]" *shm-m* 6068 --- r use "[RO]" instead of "[readonly]" *shm-r* 6069 --- w use "[w]" instead of "written" for file write message *shm-w* 6070 --- and "[a]" instead of "appended" for ':w >> file' command 6071 --- a all of the above abbreviations *shm-a* 6072 --- 6073 --- o overwrite message for writing a file with subsequent *shm-o* 6074 --- message for reading a file (useful for ":wn" or when 6075 --- 'autowrite' on) 6076 --- O message for reading a file overwrites any previous *shm-O* 6077 --- message; also for quickfix message (e.g., ":cn") 6078 --- s don't give "search hit BOTTOM, continuing at TOP" or *shm-s* 6079 --- "search hit TOP, continuing at BOTTOM" messages; when using 6080 --- the search count do not show "W" before the count message 6081 --- (see `shm-S` below) 6082 --- t truncate file message at the start if it is too long *shm-t* 6083 --- to fit on the command-line, "<" will appear in the left most 6084 --- column; ignored in Ex mode 6085 --- T truncate other messages in the middle if they are too *shm-T* 6086 --- long to fit on the command line; "..." will appear in the 6087 --- middle; ignored in Ex mode 6088 --- W don't give "written" or "[w]" when writing a file *shm-W* 6089 --- A don't give the "ATTENTION" message when an existing *shm-A* 6090 --- swap file is found 6091 --- I don't give the intro message when starting Vim, *shm-I* 6092 --- see `:intro` 6093 --- c don't give `ins-completion-menu` messages; for *shm-c* 6094 --- example, "-- XXX completion (YYY)", "match 1 of 2", "The only 6095 --- match", "Pattern not found", "Back at original", etc. 6096 --- C don't give messages while scanning for ins-completion *shm-C* 6097 --- items, for instance "scanning tags" 6098 --- q do not show "recording @a" when recording a macro *shm-q* 6099 --- F don't give the file info when editing a file, like *shm-F* 6100 --- `:silent` was used for the command; note that this also 6101 --- affects messages from 'autoread' reloading 6102 --- S do not show search count message when searching, e.g. *shm-S* 6103 --- "[1/5]". When the "S" flag is not present (e.g. search count 6104 --- is shown), the "search hit BOTTOM, continuing at TOP" and 6105 --- "search hit TOP, continuing at BOTTOM" messages are only 6106 --- indicated by a "W" (Mnemonic: Wrapped) letter before the 6107 --- search count statistics. The maximum limit can be set with 6108 --- the 'maxsearchcount' option, see also `searchcount()` 6109 --- function. 6110 --- 6111 --- This gives you the opportunity to avoid that a change between buffers 6112 --- requires you to hit <Enter>, but still gives as useful a message as 6113 --- possible for the space available. To get the whole message that you 6114 --- would have got with 'shm' empty, use ":file!" 6115 --- Useful values: 6116 --- shm= No abbreviation of message. 6117 --- shm=a Abbreviation, but no loss of information. 6118 --- shm=at Abbreviation, and truncate message when necessary. 6119 --- 6120 --- @type string 6121 vim.o.shortmess = "ltToOCF" 6122 vim.o.shm = vim.o.shortmess 6123 vim.go.shortmess = vim.o.shortmess 6124 vim.go.shm = vim.go.shortmess 6125 6126 --- String to put at the start of lines that have been wrapped. Useful 6127 --- values are "> " or "+++ ": 6128 --- 6129 --- ```vim 6130 --- let &showbreak = "> " 6131 --- let &showbreak = '+++ ' 6132 --- ``` 6133 --- Only printable single-cell characters are allowed, excluding <Tab> and 6134 --- comma (in a future version the comma might be used to separate the 6135 --- part that is shown at the end and at the start of a line). 6136 --- The `hl-NonText` highlight group determines the highlighting. 6137 --- Note that tabs after the showbreak will be displayed differently. 6138 --- If you want the 'showbreak' to appear in between line numbers, add the 6139 --- "n" flag to 'cpoptions'. 6140 --- A window-local value overrules a global value. If the global value is 6141 --- set and you want no value in the current window use NONE: 6142 --- 6143 --- ```vim 6144 --- setlocal showbreak=NONE 6145 --- ``` 6146 --- 6147 --- 6148 --- @type string 6149 vim.o.showbreak = "" 6150 vim.o.sbr = vim.o.showbreak 6151 vim.wo.showbreak = vim.o.showbreak 6152 vim.wo.sbr = vim.wo.showbreak 6153 vim.go.showbreak = vim.o.showbreak 6154 vim.go.sbr = vim.go.showbreak 6155 6156 --- Show (partial) command in the last line of the screen. Set this 6157 --- option off if your terminal is slow. 6158 --- In Visual mode the size of the selected area is shown: 6159 --- - When selecting characters within a line, the number of characters. 6160 --- If the number of bytes is different it is also displayed: "2-6" 6161 --- means two characters and six bytes. 6162 --- - When selecting more than one line, the number of lines. 6163 --- - When selecting a block, the size in screen characters: 6164 --- {lines}x{columns}. 6165 --- This information can be displayed in an alternative location using the 6166 --- 'showcmdloc' option, useful when 'cmdheight' is 0. 6167 --- 6168 --- @type boolean 6169 vim.o.showcmd = true 6170 vim.o.sc = vim.o.showcmd 6171 vim.go.showcmd = vim.o.showcmd 6172 vim.go.sc = vim.go.showcmd 6173 6174 --- This option can be used to display the (partially) entered command in 6175 --- another location. Possible values are: 6176 --- last Last line of the screen (default). 6177 --- statusline Status line of the current window. 6178 --- tabline First line of the screen if 'showtabline' is enabled. 6179 --- Setting this option to "statusline" or "tabline" means that these will 6180 --- be redrawn whenever the command changes, which can be on every key 6181 --- pressed. 6182 --- The %S 'statusline' item can be used in 'statusline' or 'tabline' to 6183 --- place the text. Without a custom 'statusline' or 'tabline' it will be 6184 --- displayed in a convenient location. 6185 --- 6186 --- @type 'last'|'statusline'|'tabline' 6187 vim.o.showcmdloc = "last" 6188 vim.o.sloc = vim.o.showcmdloc 6189 vim.go.showcmdloc = vim.o.showcmdloc 6190 vim.go.sloc = vim.go.showcmdloc 6191 6192 --- When completing a word in insert mode (see `ins-completion`) from the 6193 --- tags file, show both the tag name and a tidied-up form of the search 6194 --- pattern (if there is one) as possible matches. Thus, if you have 6195 --- matched a C function, you can see a template for what arguments are 6196 --- required (coding style permitting). 6197 --- Note that this doesn't work well together with having "longest" in 6198 --- 'completeopt', because the completion from the search pattern may not 6199 --- match the typed text. 6200 --- 6201 --- @type boolean 6202 vim.o.showfulltag = false 6203 vim.o.sft = vim.o.showfulltag 6204 vim.go.showfulltag = vim.o.showfulltag 6205 vim.go.sft = vim.go.showfulltag 6206 6207 --- When a bracket is inserted, briefly jump to the matching one. The 6208 --- jump is only done if the match can be seen on the screen. The time to 6209 --- show the match can be set with 'matchtime'. 6210 --- A Beep is given if there is no match (no matter if the match can be 6211 --- seen or not). 6212 --- When the 'm' flag is not included in 'cpoptions', typing a character 6213 --- will immediately move the cursor back to where it belongs. 6214 --- See the "sm" field in 'guicursor' for setting the cursor shape and 6215 --- blinking when showing the match. 6216 --- The 'matchpairs' option can be used to specify the characters to show 6217 --- matches for. 'rightleft' and 'revins' are used to look for opposite 6218 --- matches. 6219 --- Also see the matchparen plugin for highlighting the match when moving 6220 --- around `pi_paren.txt`. 6221 --- Note: Use of the short form is rated PG. 6222 --- 6223 --- @type boolean 6224 vim.o.showmatch = false 6225 vim.o.sm = vim.o.showmatch 6226 vim.go.showmatch = vim.o.showmatch 6227 vim.go.sm = vim.go.showmatch 6228 6229 --- If in Insert, Replace or Visual mode put a message on the last line. 6230 --- The `hl-ModeMsg` highlight group determines the highlighting. 6231 --- The option has no effect when 'cmdheight' is zero. 6232 --- 6233 --- @type boolean 6234 vim.o.showmode = true 6235 vim.o.smd = vim.o.showmode 6236 vim.go.showmode = vim.o.showmode 6237 vim.go.smd = vim.go.showmode 6238 6239 --- The value of this option specifies when the line with tab page labels 6240 --- will be displayed: 6241 --- 0: never 6242 --- 1: only if there are at least two tab pages 6243 --- 2: always 6244 --- This is both for the GUI and non-GUI implementation of the tab pages 6245 --- line. 6246 --- See `tab-page` for more information about tab pages. 6247 --- 6248 --- @type integer 6249 vim.o.showtabline = 1 6250 vim.o.stal = vim.o.showtabline 6251 vim.go.showtabline = vim.o.showtabline 6252 vim.go.stal = vim.go.showtabline 6253 6254 --- The minimal number of columns to scroll horizontally. Used only when 6255 --- the 'wrap' option is off and the cursor is moved off of the screen. 6256 --- When it is zero the cursor will be put in the middle of the screen. 6257 --- When using a slow terminal set it to a large number or 0. Not used 6258 --- for "zh" and "zl" commands. 6259 --- 6260 --- @type integer 6261 vim.o.sidescroll = 1 6262 vim.o.ss = vim.o.sidescroll 6263 vim.go.sidescroll = vim.o.sidescroll 6264 vim.go.ss = vim.go.sidescroll 6265 6266 --- The minimal number of screen columns to keep to the left and to the 6267 --- right of the cursor if 'nowrap' is set. Setting this option to a 6268 --- value greater than 0 while having 'sidescroll' also at a non-zero 6269 --- value makes some context visible in the line you are scrolling in 6270 --- horizontally (except at beginning of the line). Setting this option 6271 --- to a large value (like 999) has the effect of keeping the cursor 6272 --- horizontally centered in the window, as long as one does not come too 6273 --- close to the beginning of the line. 6274 --- After using the local value, go back the global value with one of 6275 --- these two: 6276 --- 6277 --- ```vim 6278 --- setlocal sidescrolloff< 6279 --- setlocal sidescrolloff=-1 6280 --- ``` 6281 --- 6282 --- Example: Try this together with 'sidescroll' and 'listchars' as in the 6283 --- following example to never allow the cursor to move onto the 6284 --- "extends" character: 6285 --- 6286 --- ```vim 6287 --- 6288 --- set nowrap sidescroll=1 listchars=extends:>,precedes:< 6289 --- set sidescrolloff=1 6290 --- ``` 6291 --- 6292 --- 6293 --- @type integer 6294 vim.o.sidescrolloff = 0 6295 vim.o.siso = vim.o.sidescrolloff 6296 vim.wo.sidescrolloff = vim.o.sidescrolloff 6297 vim.wo.siso = vim.wo.sidescrolloff 6298 vim.go.sidescrolloff = vim.o.sidescrolloff 6299 vim.go.siso = vim.go.sidescrolloff 6300 6301 --- When and how to draw the signcolumn. Valid values are: 6302 --- "auto" only when there is a sign to display 6303 --- "auto:[1-9]" resize to accommodate multiple signs up to the 6304 --- given number (maximum 9), e.g. "auto:4" 6305 --- "auto:[1-8]-[2-9]" 6306 --- resize to accommodate multiple signs up to the 6307 --- given maximum number (maximum 9) while keeping 6308 --- at least the given minimum (maximum 8) fixed 6309 --- space. The minimum number should always be less 6310 --- than the maximum number, e.g. "auto:2-5" 6311 --- "no" never 6312 --- "yes" always 6313 --- "yes:[1-9]" always, with fixed space for signs up to the given 6314 --- number (maximum 9), e.g. "yes:3" 6315 --- "number" display signs in the 'number' column. If the number 6316 --- column is not present, then behaves like "auto". 6317 --- 6318 --- @type 'yes'|'no'|'auto'|'auto:1'|'auto:2'|'auto:3'|'auto:4'|'auto:5'|'auto:6'|'auto:7'|'auto:8'|'auto:9'|'yes:1'|'yes:2'|'yes:3'|'yes:4'|'yes:5'|'yes:6'|'yes:7'|'yes:8'|'yes:9'|'number' 6319 vim.o.signcolumn = "auto" 6320 vim.o.scl = vim.o.signcolumn 6321 vim.wo.signcolumn = vim.o.signcolumn 6322 vim.wo.scl = vim.wo.signcolumn 6323 6324 --- Override the 'ignorecase' option if the search pattern contains upper 6325 --- case characters. Only used when the search pattern is typed and 6326 --- 'ignorecase' option is on. Used for the commands "/", "?", "n", "N", 6327 --- ":g" and ":s" and when filtering matches for the completion menu 6328 --- `compl-states`. 6329 --- Not used for "*", "#", "gd", tag search, etc. After "*" and "#" you 6330 --- can make 'smartcase' used by doing a "/" command, recalling the search 6331 --- pattern from history and hitting <Enter>. 6332 --- 6333 --- @type boolean 6334 vim.o.smartcase = false 6335 vim.o.scs = vim.o.smartcase 6336 vim.go.smartcase = vim.o.smartcase 6337 vim.go.scs = vim.go.smartcase 6338 6339 --- Do smart autoindenting when starting a new line. Works for C-like 6340 --- programs, but can also be used for other languages. 'cindent' does 6341 --- something like this, works better in most cases, but is more strict, 6342 --- see `C-indenting`. When 'cindent' is on or 'indentexpr' is set, 6343 --- setting 'si' has no effect. 'indentexpr' is a more advanced 6344 --- alternative. 6345 --- Normally 'autoindent' should also be on when using 'smartindent'. 6346 --- An indent is automatically inserted: 6347 --- - After a line ending in "{". 6348 --- - After a line starting with a keyword from 'cinwords'. 6349 --- - Before a line starting with "}" (only with the "O" command). 6350 --- When typing '}' as the first character in a new line, that line is 6351 --- given the same indent as the matching "{". 6352 --- When typing '#' as the first character in a new line, the indent for 6353 --- that line is removed, the '#' is put in the first column. The indent 6354 --- is restored for the next line. If you don't want this, use this 6355 --- mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H. 6356 --- When using the ">>" command, lines starting with '#' are not shifted 6357 --- right. 6358 --- 6359 --- @type boolean 6360 vim.o.smartindent = false 6361 vim.o.si = vim.o.smartindent 6362 vim.bo.smartindent = vim.o.smartindent 6363 vim.bo.si = vim.bo.smartindent 6364 6365 --- When enabled, the <Tab> key will indent by 'shiftwidth' if the cursor 6366 --- is in leading whitespace. The <BS> key has the opposite effect. 6367 --- In leading whitespace, this has the same effect as setting 6368 --- 'softtabstop' to the value of 'shiftwidth'. 6369 --- NOTE: in most cases, using 'softtabstop' is a better option. Have a 6370 --- look at section `30.5` of the user guide for detailed 6371 --- explanations on how Vim works with tabs and spaces. 6372 --- 6373 --- @type boolean 6374 vim.o.smarttab = true 6375 vim.o.sta = vim.o.smarttab 6376 vim.go.smarttab = vim.o.smarttab 6377 vim.go.sta = vim.go.smarttab 6378 6379 --- Scrolling works with screen lines. When 'wrap' is set and the first 6380 --- line in the window wraps part of it may not be visible, as if it is 6381 --- above the window. "<<<" is displayed at the start of the first line, 6382 --- highlighted with `hl-NonText`. 6383 --- You may also want to add "lastline" to the 'display' option to show as 6384 --- much of the last line as possible. 6385 --- NOTE: partly implemented, doesn't work yet for `gj` and `gk`. 6386 --- 6387 --- @type boolean 6388 vim.o.smoothscroll = false 6389 vim.o.sms = vim.o.smoothscroll 6390 vim.wo.smoothscroll = vim.o.smoothscroll 6391 vim.wo.sms = vim.wo.smoothscroll 6392 6393 --- Create soft tab stops, separated by 'softtabstop' number of columns. 6394 --- In Insert mode, pressing the <Tab> key will move the cursor to the 6395 --- next soft tab stop, instead of inserting a literal tab. <BS> behaves 6396 --- similarly in reverse. Vim inserts a minimal mix of tab and space 6397 --- characters to produce the visual effect. 6398 --- 6399 --- This setting does not affect the display of existing tab characters. 6400 --- 6401 --- A value of 0 disables this behaviour. A negative value makes Vim use 6402 --- 'shiftwidth'. If you plan to use 'sts' and 'shiftwidth' with 6403 --- different values, you might consider setting 'smarttab'. 6404 --- 6405 --- The 'L' flag in 'cpoptions' alters tab behavior when 'list' is 6406 --- enabled. See also `ins-expandtab` and user manual section `30.5` for 6407 --- in-depth explanations. 6408 --- 6409 --- The value of 'softtabstop' will be ignored if 'varsofttabstop' is set 6410 --- to anything other than an empty string. 6411 --- 6412 --- @type integer 6413 vim.o.softtabstop = 0 6414 vim.o.sts = vim.o.softtabstop 6415 vim.bo.softtabstop = vim.o.softtabstop 6416 vim.bo.sts = vim.bo.softtabstop 6417 6418 --- When on spell checking will be done. See `spell`. 6419 --- The languages are specified with 'spelllang'. 6420 --- 6421 --- @type boolean 6422 vim.o.spell = false 6423 vim.wo.spell = vim.o.spell 6424 6425 --- Pattern to locate the end of a sentence. The following word will be 6426 --- checked to start with a capital letter. If not then it is highlighted 6427 --- with SpellCap `hl-SpellCap` (unless the word is also badly spelled). 6428 --- When this check is not wanted make this option empty. 6429 --- Only used when 'spell' is set. 6430 --- Be careful with special characters, see `option-backslash` about 6431 --- including spaces and backslashes. 6432 --- To set this option automatically depending on the language, see 6433 --- `set-spc-auto`. 6434 --- 6435 --- @type string 6436 vim.o.spellcapcheck = "[.?!]\\_[\\])'\"\\t ]\\+" 6437 vim.o.spc = vim.o.spellcapcheck 6438 vim.bo.spellcapcheck = vim.o.spellcapcheck 6439 vim.bo.spc = vim.bo.spellcapcheck 6440 6441 --- Name of the word list file where words are added for the `zg` and `zw` 6442 --- commands. It must end in ".{encoding}.add". You need to include the 6443 --- path, otherwise the file is placed in the current directory. 6444 --- The path may include characters from 'isfname', ' ', ',', '@' and ':'. 6445 --- *E765* 6446 --- It may also be a comma-separated list of names. A count before the 6447 --- `zg` and `zw` commands can be used to access each. This allows using 6448 --- a personal word list file and a project word list file. 6449 --- When a word is added while this option is empty Nvim will use 6450 --- (and auto-create) `stdpath('data')/site/spell/`. For the file name the 6451 --- first language name that appears in 'spelllang' is used, ignoring the 6452 --- region. 6453 --- The resulting ".spl" file will be used for spell checking, it does not 6454 --- have to appear in 'spelllang'. 6455 --- Normally one file is used for all regions, but you can add the region 6456 --- name if you want to. However, it will then only be used when 6457 --- 'spellfile' is set to it, for entries in 'spelllang' only files 6458 --- without region name will be found. 6459 --- Environment variables are expanded `:set_env`. 6460 --- This option cannot be set from a `modeline` or in the `sandbox`, for 6461 --- security reasons. 6462 --- 6463 --- @type string 6464 vim.o.spellfile = "" 6465 vim.o.spf = vim.o.spellfile 6466 vim.bo.spellfile = vim.o.spellfile 6467 vim.bo.spf = vim.bo.spellfile 6468 6469 --- A comma-separated list of word list names. When the 'spell' option is 6470 --- on spellchecking will be done for these languages. Example: 6471 --- 6472 --- ```vim 6473 --- set spelllang=en_us,nl,medical 6474 --- ``` 6475 --- This means US English, Dutch and medical words are recognized. Words 6476 --- that are not recognized will be highlighted. 6477 --- The word list name must consist of alphanumeric characters, a dash or 6478 --- an underscore. It should not include a comma or dot. Using a dash is 6479 --- recommended to separate the two letter language name from a 6480 --- specification. Thus "en-rare" is used for rare English words. 6481 --- A region name must come last and have the form "_xx", where "xx" is 6482 --- the two-letter, lower case region name. You can use more than one 6483 --- region by listing them: "en_us,en_ca" supports both US and Canadian 6484 --- English, but not words specific for Australia, New Zealand or Great 6485 --- Britain. (Note: currently en_au and en_nz dictionaries are older than 6486 --- en_ca, en_gb and en_us). 6487 --- If the name "cjk" is included East Asian characters are excluded from 6488 --- spell checking. This is useful when editing text that also has Asian 6489 --- words. 6490 --- Note that the "medical" dictionary does not exist, it is just an 6491 --- example of a longer name. 6492 --- *E757* 6493 --- As a special case the name of a .spl file can be given as-is. The 6494 --- first "_xx" in the name is removed and used as the region name 6495 --- (_xx is an underscore, two letters and followed by a non-letter). 6496 --- This is mainly for testing purposes. You must make sure the correct 6497 --- encoding is used, Vim doesn't check it. 6498 --- How the related spell files are found is explained here: `spell-load`. 6499 --- 6500 --- If the `spellfile.lua` plugin is active and you use a language name 6501 --- for which Vim cannot find the .spl file in 'runtimepath' the plugin 6502 --- will ask you if you want to download the file. 6503 --- 6504 --- After this option has been set successfully, Vim will source the files 6505 --- "spell/LANG.vim" in 'runtimepath'. "LANG" is the value of 'spelllang' 6506 --- up to the first character that is not an ASCII letter or number and 6507 --- not a dash. Also see `set-spc-auto`. 6508 --- 6509 --- @type string 6510 vim.o.spelllang = "en" 6511 vim.o.spl = vim.o.spelllang 6512 vim.bo.spelllang = vim.o.spelllang 6513 vim.bo.spl = vim.bo.spelllang 6514 6515 --- A comma-separated list of options for spell checking: 6516 --- camel When a word is CamelCased, assume "Cased" is a 6517 --- separate word: every upper-case character in a word 6518 --- that comes after a lower case character indicates the 6519 --- start of a new word. 6520 --- noplainbuffer Only spellcheck a buffer when 'syntax' is enabled, 6521 --- or when extmarks are set within the buffer. Only 6522 --- designated regions of the buffer are spellchecked in 6523 --- this case. 6524 --- 6525 --- @type string 6526 vim.o.spelloptions = "" 6527 vim.o.spo = vim.o.spelloptions 6528 vim.bo.spelloptions = vim.o.spelloptions 6529 vim.bo.spo = vim.bo.spelloptions 6530 6531 --- Methods used for spelling suggestions. Both for the `z=` command and 6532 --- the `spellsuggest()` function. This is a comma-separated list of 6533 --- items: 6534 --- 6535 --- best Internal method that works best for English. Finds 6536 --- changes like "fast" and uses a bit of sound-a-like 6537 --- scoring to improve the ordering. 6538 --- 6539 --- double Internal method that uses two methods and mixes the 6540 --- results. The first method is "fast", the other method 6541 --- computes how much the suggestion sounds like the bad 6542 --- word. That only works when the language specifies 6543 --- sound folding. Can be slow and doesn't always give 6544 --- better results. 6545 --- 6546 --- fast Internal method that only checks for simple changes: 6547 --- character inserts/deletes/swaps. Works well for 6548 --- simple typing mistakes. 6549 --- 6550 --- {number} The maximum number of suggestions listed for `z=`. 6551 --- Not used for `spellsuggest()`. The number of 6552 --- suggestions is never more than the value of 'lines' 6553 --- minus two. 6554 --- 6555 --- timeout:{millisec} Limit the time searching for suggestions to 6556 --- {millisec} milliseconds. Applies to the following 6557 --- methods. When omitted the limit is 5000. When 6558 --- negative there is no limit. 6559 --- 6560 --- file:{filename} Read file {filename}, which must have two columns, 6561 --- separated by a slash. The first column contains the 6562 --- bad word, the second column the suggested good word. 6563 --- Example: 6564 --- theribal/terrible ~ 6565 --- Use this for common mistakes that do not appear at the 6566 --- top of the suggestion list with the internal methods. 6567 --- Lines without a slash are ignored, use this for 6568 --- comments. 6569 --- The word in the second column must be correct, 6570 --- otherwise it will not be used. Add the word to an 6571 --- ".add" file if it is currently flagged as a spelling 6572 --- mistake. 6573 --- The file is used for all languages. 6574 --- 6575 --- expr:{expr} Evaluate expression {expr}. Use a function to avoid 6576 --- trouble with spaces. Best is to call a function 6577 --- without arguments, see `expr-option-function`. 6578 --- `v:val` holds the badly spelled word. The expression 6579 --- must evaluate to a List of Lists, each with a 6580 --- suggestion and a score. 6581 --- Example: 6582 --- [['the', 33], ['that', 44]] ~ 6583 --- Set 'verbose' and use `z=` to see the scores that the 6584 --- internal methods use. A lower score is better. 6585 --- This may invoke `spellsuggest()` if you temporarily 6586 --- set 'spellsuggest' to exclude the "expr:" part. 6587 --- Errors are silently ignored, unless you set the 6588 --- 'verbose' option to a non-zero value. 6589 --- 6590 --- Only one of "best", "double" or "fast" may be used. The others may 6591 --- appear several times in any order. Example: 6592 --- 6593 --- ```vim 6594 --- set sps=file:~/.config/nvim/sugg,best,expr:MySuggest() 6595 --- ``` 6596 --- Environment variables are expanded `:set_env`. 6597 --- This option cannot be set from a `modeline` or in the `sandbox`, for 6598 --- security reasons. 6599 --- 6600 --- @type string 6601 vim.o.spellsuggest = "best" 6602 vim.o.sps = vim.o.spellsuggest 6603 vim.go.spellsuggest = vim.o.spellsuggest 6604 vim.go.sps = vim.go.spellsuggest 6605 6606 --- When on, splitting a window will put the new window below the current 6607 --- one. `:split` 6608 --- 6609 --- @type boolean 6610 vim.o.splitbelow = false 6611 vim.o.sb = vim.o.splitbelow 6612 vim.go.splitbelow = vim.o.splitbelow 6613 vim.go.sb = vim.go.splitbelow 6614 6615 --- The value of this option determines the scroll behavior when opening, 6616 --- closing or resizing horizontal splits. 6617 --- 6618 --- Possible values are: 6619 --- cursor Keep the same relative cursor position. 6620 --- screen Keep the text on the same screen line. 6621 --- topline Keep the topline the same. 6622 --- 6623 --- For the "screen" and "topline" values, the cursor position will be 6624 --- changed when necessary. In this case, the jumplist will be populated 6625 --- with the previous cursor position. For "screen", the text cannot 6626 --- always be kept on the same screen line when 'wrap' is enabled. 6627 --- 6628 --- @type 'cursor'|'screen'|'topline' 6629 vim.o.splitkeep = "cursor" 6630 vim.o.spk = vim.o.splitkeep 6631 vim.go.splitkeep = vim.o.splitkeep 6632 vim.go.spk = vim.go.splitkeep 6633 6634 --- When on, splitting a window will put the new window right of the 6635 --- current one. `:vsplit` 6636 --- 6637 --- @type boolean 6638 vim.o.splitright = false 6639 vim.o.spr = vim.o.splitright 6640 vim.go.splitright = vim.o.splitright 6641 vim.go.spr = vim.go.splitright 6642 6643 --- When "on" the commands listed below move the cursor to the first 6644 --- non-blank of the line. When off the cursor is kept in the same column 6645 --- (if possible). This applies to the commands: 6646 --- - CTRL-D, CTRL-U, CTRL-B, CTRL-F, "G", "H", "M", "L", "gg" 6647 --- - "d", "<<", "==" and ">>" with a linewise operator 6648 --- (`operator-resulting-pos`) 6649 --- - "%" with a count 6650 --- - buffer changing commands (CTRL-^, :bnext, :bNext, etc.) 6651 --- - Ex commands that only have a line number, e.g., ":25" or ":+". 6652 --- In case of buffer changing commands the cursor is placed at the column 6653 --- where it was the last time the buffer was edited. 6654 --- 6655 --- @type boolean 6656 vim.o.startofline = false 6657 vim.o.sol = vim.o.startofline 6658 vim.go.startofline = vim.o.startofline 6659 vim.go.sol = vim.go.startofline 6660 6661 --- When non-empty, this option determines the content of the area to the 6662 --- side of a window, normally containing the fold, sign and number columns. 6663 --- The format of this option is like that of 'statusline'. 6664 --- 6665 --- Some of the items from the 'statusline' format are different for 6666 --- 'statuscolumn': 6667 --- 6668 --- %l line number column for currently drawn line 6669 --- %s sign column for currently drawn line 6670 --- %C fold column for currently drawn line 6671 --- 6672 --- The 'statuscolumn' width follows that of the default columns and 6673 --- adapts to the 'numberwidth', 'signcolumn' and 'foldcolumn' option values 6674 --- (regardless of whether the sign and fold items are present). 6675 --- Additionally, the 'statuscolumn' grows with the size of the evaluated 6676 --- format string, up to a point (following the maximum size of the default 6677 --- fold, sign and number columns). Shrinking only happens when the number 6678 --- of lines in a buffer changes, or the 'statuscolumn' option is set. 6679 --- 6680 --- The `v:lnum` variable holds the line number to be drawn. 6681 --- The `v:relnum` variable holds the relative line number to be drawn. 6682 --- The `v:virtnum` variable is negative when drawing virtual lines, zero 6683 --- when drawing the actual buffer line, and positive when 6684 --- drawing the wrapped part of a buffer line. 6685 --- 6686 --- When using `v:relnum`, keep in mind that cursor movement by itself will 6687 --- not cause the 'statuscolumn' to update unless 'relativenumber' is set. 6688 --- 6689 --- NOTE: The %@ click execute function item is supported as well but the 6690 --- specified function will be the same for each row in the same column. 6691 --- It cannot be switched out through a dynamic 'statuscolumn' format, the 6692 --- handler should be written with this in mind. 6693 --- 6694 --- Examples: 6695 --- 6696 --- ```vim 6697 --- " Line number with bar separator and click handlers: 6698 --- set statuscolumn=%@SignCb@%s%=%T%@NumCb@%l│%T 6699 --- 6700 --- " Line numbers in hexadecimal for non wrapped part of lines: 6701 --- let &stc='%=%{v:virtnum>0?"":printf("%x",v:lnum)} ' 6702 --- 6703 --- " Human readable line numbers with thousands separator: 6704 --- let &stc='%{substitute(v:lnum,"\\d\\zs\\ze\\' 6705 --- . '%(\\d\\d\\d\\)\\+$",",","g")}' 6706 --- 6707 --- " Both relative and absolute line numbers with different 6708 --- " highlighting for odd and even relative numbers: 6709 --- let &stc='%#NonText#%{&nu?v:lnum:""}' . 6710 --- '%=%{&rnu&&(v:lnum%2)?"\ ".v:relnum:""}' . 6711 --- '%#LineNr#%{&rnu&&!(v:lnum%2)?"\ ".v:relnum:""}' 6712 --- ``` 6713 --- WARNING: this expression is evaluated for each screen line so defining 6714 --- an expensive expression can negatively affect render performance. 6715 --- 6716 --- @type string 6717 vim.o.statuscolumn = "" 6718 vim.o.stc = vim.o.statuscolumn 6719 vim.wo.statuscolumn = vim.o.statuscolumn 6720 vim.wo.stc = vim.wo.statuscolumn 6721 6722 --- Sets the `status-line`. 6723 --- 6724 --- The option consists of printf style '%' items interspersed with 6725 --- normal text. Each status line item is of the form: 6726 --- %-0{minwid}.{maxwid}{item} 6727 --- All fields except the {item} are optional. A single percent sign can 6728 --- be given as "%%". 6729 --- 6730 --- *stl-%!* 6731 --- When the option starts with "%!" then it is used as an expression, 6732 --- evaluated and the result is used as the option value. Example: 6733 --- 6734 --- ```vim 6735 --- set statusline=%!MyStatusLine() 6736 --- ``` 6737 --- The *g:statusline_winid* variable will be set to the `window-ID` of the 6738 --- window that the status line belongs to. 6739 --- The result can contain %{} items that will be evaluated too. 6740 --- Note that the "%!" expression is evaluated in the context of the 6741 --- current window and buffer, while %{} items are evaluated in the 6742 --- context of the window that the statusline belongs to. 6743 --- 6744 --- When there is an error while evaluating the option it will be reset to 6745 --- its default value to avoid further errors. Otherwise screen updating 6746 --- would loop. When the result contains unprintable characters the 6747 --- result is unpredictable. 6748 --- 6749 --- Note that the only effect of 'ruler' when this option is set (and 6750 --- 'laststatus' is 2 or 3) is controlling the output of `CTRL-G`. 6751 --- 6752 --- field meaning ~ 6753 --- - Left justify the item. The default is right justified 6754 --- when minwid is larger than the length of the item. 6755 --- 0 Leading zeroes in numeric items. Overridden by "-". 6756 --- minwid Minimum width of the item, padding as set by "-" & "0". 6757 --- Value must be 50 or less. 6758 --- maxwid Maximum width of the item. Truncation occurs with a "<" 6759 --- on the left for text items. Numeric items will be 6760 --- shifted down to maxwid-2 digits followed by ">"number 6761 --- where number is the amount of missing digits, much like 6762 --- an exponential notation. 6763 --- item A one letter code as described below. 6764 --- 6765 --- Following is a description of the possible statusline items. The 6766 --- second character in "item" is the type: 6767 --- N for number 6768 --- S for string 6769 --- F for flags as described below 6770 --- - not applicable 6771 --- 6772 --- item meaning ~ 6773 --- f S Path to the file in the buffer, as typed or relative to current 6774 --- directory. 6775 --- F S Full path to the file in the buffer. 6776 --- t S File name (tail) of file in the buffer. 6777 --- m F Modified flag, text is "[+]"; "[-]" if 'modifiable' is off. 6778 --- M F Modified flag, text is ",+" or ",-". 6779 --- r F Readonly flag, text is "[RO]". 6780 --- R F Readonly flag, text is ",RO". 6781 --- h F Help buffer flag, text is "[help]". 6782 --- H F Help buffer flag, text is ",HLP". 6783 --- w F Preview window flag, text is "[Preview]". 6784 --- W F Preview window flag, text is ",PRV". 6785 --- y F Type of file in the buffer, e.g., "[vim]". See 'filetype'. 6786 --- Y F Type of file in the buffer, e.g., ",VIM". See 'filetype'. 6787 --- q S "[Quickfix List]", "[Location List]" or empty. 6788 --- k S Value of "b:keymap_name" or 'keymap' when `:lmap` mappings are 6789 --- being used: "<keymap>" 6790 --- n N Buffer number. 6791 --- b N Value of character under cursor. 6792 --- B N As above, in hexadecimal. 6793 --- o N Byte number in file of byte under cursor, first byte is 1. 6794 --- Mnemonic: Offset from start of file (with one added) 6795 --- O N As above, in hexadecimal. 6796 --- l N Line number. 6797 --- L N Number of lines in buffer. 6798 --- c N Column number (byte index). 6799 --- v N Virtual column number (screen column). 6800 --- V N Virtual column number as -{num}. Not displayed if equal to 'c'. 6801 --- p N Percentage through file in lines as in `CTRL-G`. 6802 --- P S Percentage through file of displayed window. This is like the 6803 --- percentage described for 'ruler'. Always 3 in length, unless 6804 --- translated. 6805 --- S S 'showcmd' content, see 'showcmdloc'. 6806 --- a S Argument list status as in default title. ({current} of {max}) 6807 --- Empty if the argument file count is zero or one. 6808 --- { NF Evaluate expression between "%{" and "}" and substitute result. 6809 --- Note that there is no "%" before the closing "}". The 6810 --- expression cannot contain a "}" character, call a function to 6811 --- work around that. See `stl-%{` below. 6812 --- `{%` - This is almost same as "{" except the result of the expression is 6813 --- re-evaluated as a statusline format string. Thus if the 6814 --- return value of expr contains "%" items they will get expanded. 6815 --- The expression can contain the "}" character, the end of 6816 --- expression is denoted by "%}". 6817 --- For example: 6818 --- 6819 --- ```vim 6820 --- func! Stl_filename() abort 6821 --- return "%t" 6822 --- endfunc 6823 --- ``` 6824 --- `stl=%{Stl_filename()}` results in `"%t"` 6825 --- `stl=%{%Stl_filename()%}` results in `"Name of current file"` 6826 --- %} - End of "{%" expression 6827 --- ( - Start of item group. Can be used for setting the width and 6828 --- alignment of a section. Must be followed by %) somewhere. 6829 --- ) - End of item group. No width fields allowed. 6830 --- T N For 'tabline': start of tab page N label. Use %T or %X to end 6831 --- the label. Clicking this label with left mouse button switches 6832 --- to the specified tab page, while clicking it with middle mouse 6833 --- button closes the specified tab page. 6834 --- X N For 'tabline': start of close tab N label. Use %X or %T to end 6835 --- the label, e.g.: %3Xclose%X. Use %999X for a "close current 6836 --- tab" label. Clicking this label with left mouse button closes 6837 --- the specified tab page. 6838 --- @ N Start of execute function label. Use %X or %T to end the label, 6839 --- e.g.: %10@SwitchBuffer@foo.c%X. Clicking this label runs the 6840 --- specified function: in the example when clicking once using left 6841 --- mouse button on "foo.c", a `SwitchBuffer(10, 1, 'l', ' ')` 6842 --- expression will be run. The specified function receives the 6843 --- following arguments in order: 6844 --- 1. minwid field value or zero if no N was specified 6845 --- 2. number of mouse clicks to detect multiple clicks 6846 --- 3. mouse button used: "l", "r" or "m" for left, right or middle 6847 --- button respectively; one should not rely on third argument 6848 --- being only "l", "r" or "m": any other non-empty string value 6849 --- that contains only ASCII lower case letters may be expected 6850 --- for other mouse buttons 6851 --- 4. modifiers pressed: string which contains "s" if shift 6852 --- modifier was pressed, "c" for control, "a" for alt and "m" 6853 --- for meta; currently if modifier is not pressed string 6854 --- contains space instead, but one should not rely on presence 6855 --- of spaces or specific order of modifiers: use `stridx()` to 6856 --- test whether some modifier is present; string is guaranteed 6857 --- to contain only ASCII letters and spaces, one letter per 6858 --- modifier; "?" modifier may also be present, but its presence 6859 --- is a bug that denotes that new mouse button recognition was 6860 --- added without modifying code that reacts on mouse clicks on 6861 --- this label. 6862 --- Use `getmousepos()`.winid in the specified function to get the 6863 --- corresponding window id of the clicked item. 6864 --- \< - Where to truncate line if too long. Default is at the start. 6865 --- No width fields allowed. 6866 --- = - Separation point between alignment sections. Each section will 6867 --- be separated by an equal number of spaces. With one %= what 6868 --- comes after it will be right-aligned. With two %= there is a 6869 --- middle part, with white space left and right of it. 6870 --- No width fields allowed. 6871 --- # - Set highlight group. The name must follow and then a # again. 6872 --- Thus use %#HLname# for highlight group HLname. The same 6873 --- highlighting is used, also for the statusline of non-current 6874 --- windows. 6875 --- $ - Same as `#`, except the `%$HLname$` group will inherit from 6876 --- preceding highlight attributes. 6877 --- * - Set highlight group to User{N}, where {N} is taken from the 6878 --- minwid field, e.g. %1*. Restore normal highlight with %* or 6879 --- %0*. The difference between User{N} and StatusLine will be 6880 --- applied to StatusLineNC for the statusline of non-current 6881 --- windows. 6882 --- The number N must be between 1 and 9. See `hl-User1..9` 6883 --- 6884 --- When displaying a flag, Vim removes the leading comma, if any, when 6885 --- that flag comes right after plaintext. This will make a nice display 6886 --- when flags are used like in the examples below. 6887 --- 6888 --- When all items in a group becomes an empty string (i.e. flags that are 6889 --- not set) and a minwid is not set for the group, the whole group will 6890 --- become empty. This will make a group like the following disappear 6891 --- completely from the statusline when none of the flags are set. 6892 --- 6893 --- ```vim 6894 --- set statusline=...%(\ [%M%R%H]%)... 6895 --- ``` 6896 --- Beware that an expression is evaluated each and every time the status 6897 --- line is displayed. 6898 --- *stl-%{* *g:actual_curbuf* *g:actual_curwin* 6899 --- While evaluating %{} the current buffer and current window will be set 6900 --- temporarily to that of the window (and buffer) whose statusline is 6901 --- currently being drawn. The expression will evaluate in this context. 6902 --- The variable "g:actual_curbuf" is set to the `bufnr()` number of the 6903 --- real current buffer and "g:actual_curwin" to the `window-ID` of the 6904 --- real current window. These values are strings. 6905 --- 6906 --- The 'statusline' option will be evaluated in the `sandbox` if set from 6907 --- a modeline, see `sandbox-option`. 6908 --- This option cannot be set in a modeline when 'modelineexpr' is off. 6909 --- 6910 --- It is not allowed to change text or jump to another window while 6911 --- evaluating 'statusline' `textlock`. 6912 --- 6913 --- If the statusline is not updated when you want it (e.g., after setting 6914 --- a variable that's used in an expression), you can force an update by 6915 --- using `:redrawstatus`. 6916 --- 6917 --- A result of all digits is regarded a number for display purposes. 6918 --- Otherwise the result is taken as flag text and applied to the rules 6919 --- described above. 6920 --- 6921 --- Watch out for errors in expressions. They may render Vim unusable! 6922 --- If you are stuck, hold down ':' or 'Q' to get a prompt, then quit and 6923 --- edit your vimrc or whatever with "vim --clean" to get it right. 6924 --- 6925 --- Examples: 6926 --- Emulate standard status line with 'ruler' set 6927 --- 6928 --- ```vim 6929 --- set statusline=%<%f\ %h%w%m%r%=%-14.(%l,%c%V%)\ %P 6930 --- ``` 6931 --- Similar, but add ASCII value of char under the cursor (like "ga") 6932 --- 6933 --- ```vim 6934 --- set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P 6935 --- ``` 6936 --- Display byte count and byte value, modified flag in red. 6937 --- 6938 --- ```vim 6939 --- set statusline=%<%f%=\ [%1*%M%*%n%R%H]\ %-19(%3l,%02c%03V%)%O'%02b' 6940 --- hi User1 term=inverse,bold cterm=inverse,bold ctermfg=red 6941 --- ``` 6942 --- Display a ,GZ flag if a compressed file is loaded 6943 --- 6944 --- ```vim 6945 --- set statusline=...%r%{VarExists('b:gzflag','\ [GZ]')}%h... 6946 --- ``` 6947 --- In the `:autocmd`'s: 6948 --- 6949 --- ```vim 6950 --- let b:gzflag = 1 6951 --- ``` 6952 --- And: 6953 --- 6954 --- ```vim 6955 --- unlet b:gzflag 6956 --- ``` 6957 --- And define this function: 6958 --- 6959 --- ```vim 6960 --- function VarExists(var, val) 6961 --- if exists(a:var) | return a:val | else | return '' | endif 6962 --- endfunction 6963 --- ``` 6964 --- 6965 --- 6966 --- @type string 6967 vim.o.statusline = "%<%f %h%w%m%r %=%{% &showcmdloc == 'statusline' ? '%-10.S ' : '' %}%{% exists('b:keymap_name') ? '<'..b:keymap_name..'> ' : '' %}%{% &busy > 0 ? '◐ ' : '' %}%{% luaeval('(package.loaded[''vim.diagnostic''] and #vim.diagnostic.count() ~= 0 and vim.diagnostic.status() .. '' '') or '''' ') %}%{% &ruler ? ( &rulerformat == '' ? '%-14.(%l,%c%V%) %P' : &rulerformat ) : '' %}" 6968 vim.o.stl = vim.o.statusline 6969 vim.wo.statusline = vim.o.statusline 6970 vim.wo.stl = vim.wo.statusline 6971 vim.go.statusline = vim.o.statusline 6972 vim.go.stl = vim.go.statusline 6973 6974 --- Files with these suffixes get a lower priority when multiple files 6975 --- match a wildcard. See `suffixes`. Commas can be used to separate the 6976 --- suffixes. Spaces after the comma are ignored. A dot is also seen as 6977 --- the start of a suffix. To avoid a dot or comma being recognized as a 6978 --- separator, precede it with a backslash (see `option-backslash` about 6979 --- including spaces and backslashes). 6980 --- See 'wildignore' for completely ignoring files. 6981 --- The use of `:set+=` and `:set-=` is preferred when adding or removing 6982 --- suffixes from the list. This avoids problems when a future version 6983 --- uses another default. 6984 --- 6985 --- @type string 6986 vim.o.suffixes = ".bak,~,.o,.h,.info,.swp,.obj" 6987 vim.o.su = vim.o.suffixes 6988 vim.go.suffixes = vim.o.suffixes 6989 vim.go.su = vim.go.suffixes 6990 6991 --- Comma-separated list of suffixes, which are used when searching for a 6992 --- file for the "gf", "[I", etc. commands. Example: 6993 --- 6994 --- ```vim 6995 --- set suffixesadd=.java 6996 --- ``` 6997 --- 6998 --- 6999 --- @type string 7000 vim.o.suffixesadd = "" 7001 vim.o.sua = vim.o.suffixesadd 7002 vim.bo.suffixesadd = vim.o.suffixesadd 7003 vim.bo.sua = vim.bo.suffixesadd 7004 7005 --- Use a swapfile for the buffer. This option can be reset when a 7006 --- swapfile is not wanted for a specific buffer. For example, with 7007 --- confidential information that even root must not be able to access. 7008 --- Careful: All text will be in memory: 7009 --- - Don't use this for big files. 7010 --- - Recovery will be impossible! 7011 --- A swapfile will only be present when 'updatecount' is non-zero and 7012 --- 'swapfile' is set. 7013 --- When 'swapfile' is reset, the swap file for the current buffer is 7014 --- immediately deleted. When 'swapfile' is set, and 'updatecount' is 7015 --- non-zero, a swap file is immediately created. 7016 --- Also see `swap-file`. 7017 --- If you want to open a new buffer without creating a swap file for it, 7018 --- use the `:noswapfile` modifier. 7019 --- See 'directory' for where the swap file is created. 7020 --- 7021 --- This option is used together with 'bufhidden' and 'buftype' to 7022 --- specify special kinds of buffers. See `special-buffers`. 7023 --- 7024 --- @type boolean 7025 vim.o.swapfile = true 7026 vim.o.swf = vim.o.swapfile 7027 vim.bo.swapfile = vim.o.swapfile 7028 vim.bo.swf = vim.bo.swapfile 7029 7030 --- This option controls the behavior when switching between buffers. 7031 --- This option is checked, when 7032 --- - jumping to errors with the `quickfix` commands (`:cc`, `:cn`, `:cp`, 7033 --- etc.). 7034 --- - jumping to a tag using the `:stag` command. 7035 --- - opening a file using the `CTRL-W_f` or `CTRL-W_F` command. 7036 --- - jumping to a buffer using a buffer split command (e.g. `:sbuffer`, 7037 --- `:sbnext`, or `:sbrewind`). 7038 --- Possible values (comma-separated list): 7039 --- useopen If included, jump to the first open window in the 7040 --- current tab page that contains the specified buffer 7041 --- (if there is one). Otherwise: Do not examine other 7042 --- windows. 7043 --- usetab Like "useopen", but also consider windows in other tab 7044 --- pages. 7045 --- split If included, split the current window before loading 7046 --- a buffer for a `quickfix` command that display errors. 7047 --- Otherwise: do not split, use current window (when used 7048 --- in the quickfix window: the previously used window or 7049 --- split if there is no other window). 7050 --- vsplit Just like "split" but split vertically. 7051 --- newtab Like "split", but open a new tab page. Overrules 7052 --- "split" when both are present. 7053 --- uselast If included, jump to the previously used window when 7054 --- jumping to errors with `quickfix` commands. 7055 --- If a window has 'winfixbuf' enabled, 'switchbuf' is currently not 7056 --- applied to the split window. 7057 --- 7058 --- @type string 7059 vim.o.switchbuf = "uselast" 7060 vim.o.swb = vim.o.switchbuf 7061 vim.go.switchbuf = vim.o.switchbuf 7062 vim.go.swb = vim.go.switchbuf 7063 7064 --- Maximum column in which to search for syntax items. In long lines the 7065 --- text after this column is not highlighted and following lines may not 7066 --- be highlighted correctly, because the syntax state is cleared. 7067 --- This helps to avoid very slow redrawing for an XML file that is one 7068 --- long line. 7069 --- Set to zero to remove the limit. 7070 --- 7071 --- @type integer 7072 vim.o.synmaxcol = 3000 7073 vim.o.smc = vim.o.synmaxcol 7074 vim.bo.synmaxcol = vim.o.synmaxcol 7075 vim.bo.smc = vim.bo.synmaxcol 7076 7077 --- When this option is set, the syntax with this name is loaded, unless 7078 --- syntax highlighting has been switched off with ":syntax off". 7079 --- Otherwise this option does not always reflect the current syntax (the 7080 --- b:current_syntax variable does). 7081 --- This option is most useful in a modeline, for a file which syntax is 7082 --- not automatically recognized. Example, in an IDL file: >c 7083 --- /* vim: set syntax=idl : */ 7084 --- ``` 7085 --- When a dot appears in the value then this separates two filetype 7086 --- names. Example: >c 7087 --- /* vim: set syntax=c.doxygen : */ 7088 --- ``` 7089 --- This will use the "c" syntax first, then the "doxygen" syntax. 7090 --- Note that the second one must be prepared to be loaded as an addition, 7091 --- otherwise it will be skipped. More than one dot may appear. 7092 --- To switch off syntax highlighting for the current file, use: 7093 --- 7094 --- ```vim 7095 --- set syntax=OFF 7096 --- ``` 7097 --- To switch syntax highlighting on according to the current value of the 7098 --- 'filetype' option: 7099 --- 7100 --- ```vim 7101 --- set syntax=ON 7102 --- ``` 7103 --- What actually happens when setting the 'syntax' option is that the 7104 --- Syntax autocommand event is triggered with the value as argument. 7105 --- This option is not copied to another buffer, independent of the 's' or 7106 --- 'S' flag in 'cpoptions'. 7107 --- Only alphanumeric characters, '.', '-' and '_' can be used. 7108 --- 7109 --- @type string 7110 vim.o.syntax = "" 7111 vim.o.syn = vim.o.syntax 7112 vim.bo.syntax = vim.o.syntax 7113 vim.bo.syn = vim.bo.syntax 7114 7115 --- This option controls the behavior when closing tab pages (e.g., using 7116 --- `:tabclose`). When empty Vim goes to the next (right) tab page. 7117 --- 7118 --- Possible values (comma-separated list): 7119 --- left If included, go to the previous tab page instead of 7120 --- the next one. 7121 --- uselast If included, go to the previously used tab page if 7122 --- possible. This option takes precedence over the 7123 --- others. 7124 --- 7125 --- @type string 7126 vim.o.tabclose = "" 7127 vim.o.tcl = vim.o.tabclose 7128 vim.go.tabclose = vim.o.tabclose 7129 vim.go.tcl = vim.go.tabclose 7130 7131 --- When non-empty, this option determines the content of the tab pages 7132 --- line at the top of the Vim window. When empty Vim will use a default 7133 --- tab pages line. See `setting-tabline` for more info. 7134 --- 7135 --- The tab pages line only appears as specified with the 'showtabline' 7136 --- option and only when there is no GUI tab line. When 'e' is in 7137 --- 'guioptions' and the GUI supports a tab line 'guitablabel' is used 7138 --- instead. Note that the two tab pages lines are very different. 7139 --- 7140 --- The value is evaluated like with 'statusline'. You can use 7141 --- `tabpagenr()`, `tabpagewinnr()` and `tabpagebuflist()` to figure out 7142 --- the text to be displayed. Use "%1T" for the first label, "%2T" for 7143 --- the second one, etc. Use "%X" items for closing labels. 7144 --- 7145 --- When changing something that is used in 'tabline' that does not 7146 --- trigger it to be updated, use `:redrawtabline`. 7147 --- This option cannot be set in a modeline when 'modelineexpr' is off. 7148 --- 7149 --- Keep in mind that only one of the tab pages is the current one, others 7150 --- are invisible and you can't jump to their windows. 7151 --- 7152 --- @type string 7153 vim.o.tabline = "" 7154 vim.o.tal = vim.o.tabline 7155 vim.go.tabline = vim.o.tabline 7156 vim.go.tal = vim.go.tabline 7157 7158 --- Maximum number of tab pages to be opened by the `-p` command line 7159 --- argument or the ":tab all" command. `tabpage` 7160 --- 7161 --- @type integer 7162 vim.o.tabpagemax = 50 7163 vim.o.tpm = vim.o.tabpagemax 7164 vim.go.tabpagemax = vim.o.tabpagemax 7165 vim.go.tpm = vim.go.tabpagemax 7166 7167 --- Defines the column multiple used to display the Horizontal Tab 7168 --- character (ASCII 9); a Horizontal Tab always advances to the next tab 7169 --- stop. 7170 --- The value must be at least 1 and at most 9999. 7171 --- If 'vartabstop' is set, this option is ignored. 7172 --- Leave it at 8 unless you have a strong reason (see usr `30.5`). 7173 --- 7174 --- @type integer 7175 vim.o.tabstop = 8 7176 vim.o.ts = vim.o.tabstop 7177 vim.bo.tabstop = vim.o.tabstop 7178 vim.bo.ts = vim.bo.tabstop 7179 7180 --- When searching for a tag (e.g., for the `:ta` command), Vim can either 7181 --- use a binary search or a linear search in a tags file. Binary 7182 --- searching makes searching for a tag a LOT faster, but a linear search 7183 --- will find more tags if the tags file wasn't properly sorted. 7184 --- Vim normally assumes that your tags files are sorted, or indicate that 7185 --- they are not sorted. Only when this is not the case does the 7186 --- 'tagbsearch' option need to be switched off. 7187 --- 7188 --- When 'tagbsearch' is on, binary searching is first used in the tags 7189 --- files. In certain situations, Vim will do a linear search instead for 7190 --- certain files, or retry all files with a linear search. When 7191 --- 'tagbsearch' is off, only a linear search is done. 7192 --- 7193 --- Linear searching is done anyway, for one file, when Vim finds a line 7194 --- at the start of the file indicating that it's not sorted: 7195 --- ``` 7196 --- !_TAG_FILE_SORTED 0 /some comment/ 7197 --- ``` 7198 --- [The whitespace before and after the '0' must be a single <Tab>] 7199 --- 7200 --- When a binary search was done and no match was found in any of the 7201 --- files listed in 'tags', and case is ignored or a pattern is used 7202 --- instead of a normal tag name, a retry is done with a linear search. 7203 --- Tags in unsorted tags files, and matches with different case will only 7204 --- be found in the retry. 7205 --- 7206 --- If a tag file indicates that it is case-fold sorted, the second, 7207 --- linear search can be avoided when case is ignored. Use a value of '2' 7208 --- in the "!_TAG_FILE_SORTED" line for this. A tag file can be case-fold 7209 --- sorted with the -f switch to "sort" in most unices, as in the command: 7210 --- "sort -f -o tags tags". For Universal ctags and Exuberant ctags 7211 --- version 5.x or higher (at least 5.5) the --sort=foldcase switch can be 7212 --- used for this as well. Note that case must be folded to uppercase for 7213 --- this to work. 7214 --- 7215 --- By default, tag searches are case-sensitive. Case is ignored when 7216 --- 'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is 7217 --- "ignore". 7218 --- Also when 'tagcase' is "followscs" and 'smartcase' is set, or 7219 --- 'tagcase' is "smart", and the pattern contains only lowercase 7220 --- characters. 7221 --- 7222 --- When 'tagbsearch' is off, tags searching is slower when a full match 7223 --- exists, but faster when no full match exists. Tags in unsorted tags 7224 --- files may only be found with 'tagbsearch' off. 7225 --- When the tags file is not sorted, or sorted in a wrong way (not on 7226 --- ASCII byte value), 'tagbsearch' should be off, or the line given above 7227 --- must be included in the tags file. 7228 --- This option doesn't affect commands that find all matching tags (e.g., 7229 --- command-line completion and ":help"). 7230 --- 7231 --- @type boolean 7232 vim.o.tagbsearch = true 7233 vim.o.tbs = vim.o.tagbsearch 7234 vim.go.tagbsearch = vim.o.tagbsearch 7235 vim.go.tbs = vim.go.tagbsearch 7236 7237 --- This option specifies how case is handled when searching the tags 7238 --- file: 7239 --- followic Follow the 'ignorecase' option 7240 --- followscs Follow the 'smartcase' and 'ignorecase' options 7241 --- ignore Ignore case 7242 --- match Match case 7243 --- smart Ignore case unless an upper case letter is used 7244 --- 7245 --- @type 'followic'|'ignore'|'match'|'followscs'|'smart' 7246 vim.o.tagcase = "followic" 7247 vim.o.tc = vim.o.tagcase 7248 vim.bo.tagcase = vim.o.tagcase 7249 vim.bo.tc = vim.bo.tagcase 7250 vim.go.tagcase = vim.o.tagcase 7251 vim.go.tc = vim.go.tagcase 7252 7253 --- This option specifies a function to be used to perform tag searches 7254 --- (including `taglist()`). 7255 --- The function gets the tag pattern and should return a List of matching 7256 --- tags. See `tag-function` for an explanation of how to write the 7257 --- function and an example. The value can be the name of a function, a 7258 --- `lambda` or a `Funcref`. See `option-value-function` for more 7259 --- information. 7260 --- This option cannot be set from a `modeline` or in the `sandbox`, for 7261 --- security reasons. 7262 --- 7263 --- @type string 7264 vim.o.tagfunc = "" 7265 vim.o.tfu = vim.o.tagfunc 7266 vim.bo.tagfunc = vim.o.tagfunc 7267 vim.bo.tfu = vim.bo.tagfunc 7268 7269 --- If non-zero, tags are significant up to this number of characters. 7270 --- 7271 --- @type integer 7272 vim.o.taglength = 0 7273 vim.o.tl = vim.o.taglength 7274 vim.go.taglength = vim.o.taglength 7275 vim.go.tl = vim.go.taglength 7276 7277 --- If on and using a tags file in another directory, file names in that 7278 --- tags file are relative to the directory where the tags file is. 7279 --- 7280 --- @type boolean 7281 vim.o.tagrelative = true 7282 vim.o.tr = vim.o.tagrelative 7283 vim.go.tagrelative = vim.o.tagrelative 7284 vim.go.tr = vim.go.tagrelative 7285 7286 --- Filenames for the tag command, separated by spaces or commas. To 7287 --- include a space or comma in a file name, precede it with backslashes 7288 --- (see `option-backslash` about including spaces/commas and backslashes). 7289 --- When a file name starts with "./", the '.' is replaced with the path 7290 --- of the current file. But only when the 'd' flag is not included in 7291 --- 'cpoptions'. Environment variables are expanded `:set_env`. Also see 7292 --- `tags-option`. 7293 --- "*", "**" and other wildcards can be used to search for tags files in 7294 --- a directory tree. See `file-searching`. E.g., "/lib/**/tags" will 7295 --- find all files named "tags" below "/lib". The filename itself cannot 7296 --- contain wildcards, it is used as-is. E.g., "/lib/**/tags?" will find 7297 --- files called "tags?". 7298 --- The `tagfiles()` function can be used to get a list of the file names 7299 --- actually used. 7300 --- The use of `:set+=` and `:set-=` is preferred when adding or removing 7301 --- file names from the list. This avoids problems when a future version 7302 --- uses another default. 7303 --- 7304 --- @type string 7305 vim.o.tags = "./tags;,tags" 7306 vim.o.tag = vim.o.tags 7307 vim.bo.tags = vim.o.tags 7308 vim.bo.tag = vim.bo.tags 7309 vim.go.tags = vim.o.tags 7310 vim.go.tag = vim.go.tags 7311 7312 --- When on, the `tagstack` is used normally. When off, a ":tag" or 7313 --- ":tselect" command with an argument will not push the tag onto the 7314 --- tagstack. A following ":tag" without an argument, a ":pop" command or 7315 --- any other command that uses the tagstack will use the unmodified 7316 --- tagstack, but does change the pointer to the active entry. 7317 --- Resetting this option is useful when using a ":tag" command in a 7318 --- mapping which should not change the tagstack. 7319 --- 7320 --- @type boolean 7321 vim.o.tagstack = true 7322 vim.o.tgst = vim.o.tagstack 7323 vim.go.tagstack = vim.o.tagstack 7324 vim.go.tgst = vim.go.tagstack 7325 7326 --- The terminal is in charge of Bi-directionality of text (as specified 7327 --- by Unicode). The terminal is also expected to do the required shaping 7328 --- that some languages (such as Arabic) require. 7329 --- Setting this option implies that 'rightleft' will not be set when 7330 --- 'arabic' is set and the value of 'arabicshape' will be ignored. 7331 --- Note that setting 'termbidi' has the immediate effect that 7332 --- 'arabicshape' is ignored, but 'rightleft' isn't changed automatically. 7333 --- For further details see `l10n-arabic.txt`. 7334 --- 7335 --- @type boolean 7336 vim.o.termbidi = false 7337 vim.o.tbidi = vim.o.termbidi 7338 vim.go.termbidi = vim.o.termbidi 7339 vim.go.tbidi = vim.go.termbidi 7340 7341 --- Enables 24-bit RGB color in the `TUI`. Uses "gui" `:highlight` 7342 --- attributes instead of "cterm" attributes. `guifg` 7343 --- Requires an ISO-8613-3 compatible terminal. 7344 --- 7345 --- Nvim will automatically attempt to determine if the host terminal 7346 --- supports 24-bit color and will enable this option if it does 7347 --- (unless explicitly disabled by the user). 7348 --- 7349 --- @type boolean 7350 vim.o.termguicolors = false 7351 vim.o.tgc = vim.o.termguicolors 7352 vim.go.termguicolors = vim.o.termguicolors 7353 vim.go.tgc = vim.go.termguicolors 7354 7355 --- A comma-separated list of options for specifying control characters 7356 --- to be removed from the text pasted into the terminal window. The 7357 --- supported values are: 7358 --- 7359 --- BS Backspace 7360 --- 7361 --- HT TAB 7362 --- 7363 --- FF Form feed 7364 --- 7365 --- ESC Escape 7366 --- 7367 --- DEL DEL 7368 --- 7369 --- C0 Other control characters, excluding Line feed and 7370 --- Carriage return < ' ' 7371 --- 7372 --- C1 Control characters 0x80...0x9F 7373 --- 7374 --- @type string 7375 vim.o.termpastefilter = "BS,HT,ESC,DEL" 7376 vim.o.tpf = vim.o.termpastefilter 7377 vim.go.termpastefilter = vim.o.termpastefilter 7378 vim.go.tpf = vim.go.termpastefilter 7379 7380 --- If the host terminal supports it, buffer all screen updates 7381 --- made during a redraw cycle so that each screen is displayed in 7382 --- the terminal all at once. This can prevent tearing or flickering 7383 --- when the terminal updates faster than Nvim can redraw. 7384 --- 7385 --- @type boolean 7386 vim.o.termsync = true 7387 vim.go.termsync = vim.o.termsync 7388 7389 --- Maximum width of text that is being inserted. A longer line will be 7390 --- broken after white space to get this width. A zero value disables 7391 --- this. 7392 --- When 'textwidth' is zero, 'wrapmargin' may be used. See also 7393 --- 'formatoptions' and `ins-textwidth`. 7394 --- When 'formatexpr' is set it will be used to break the line. 7395 --- 7396 --- @type integer 7397 vim.o.textwidth = 0 7398 vim.o.tw = vim.o.textwidth 7399 vim.bo.textwidth = vim.o.textwidth 7400 vim.bo.tw = vim.bo.textwidth 7401 7402 --- List of file names, separated by commas, that are used to lookup words 7403 --- for thesaurus completion commands `i_CTRL-X_CTRL-T`. See 7404 --- `compl-thesaurus`. 7405 --- 7406 --- This option is not used if 'thesaurusfunc' is set, either for the 7407 --- buffer or globally. 7408 --- 7409 --- To include a comma in a file name precede it with a backslash. Spaces 7410 --- after a comma are ignored, otherwise spaces are included in the file 7411 --- name. See `option-backslash` about using backslashes. The use of 7412 --- `:set+=` and `:set-=` is preferred when adding or removing directories 7413 --- from the list. This avoids problems when a future version uses 7414 --- another default. 7415 --- Environment variables are expanded `:set_env`. 7416 --- Backticks cannot be used in this option for security reasons. 7417 --- 7418 --- @type string 7419 vim.o.thesaurus = "" 7420 vim.o.tsr = vim.o.thesaurus 7421 vim.bo.thesaurus = vim.o.thesaurus 7422 vim.bo.tsr = vim.bo.thesaurus 7423 vim.go.thesaurus = vim.o.thesaurus 7424 vim.go.tsr = vim.go.thesaurus 7425 7426 --- This option specifies a function to be used for thesaurus completion 7427 --- with CTRL-X CTRL-T. `i_CTRL-X_CTRL-T` See `compl-thesaurusfunc`. 7428 --- The value can be the name of a function, a `lambda` or a `Funcref`. 7429 --- See `option-value-function` for more information. 7430 --- 7431 --- This option cannot be set from a `modeline` or in the `sandbox`, for 7432 --- security reasons. 7433 --- 7434 --- @type string 7435 vim.o.thesaurusfunc = "" 7436 vim.o.tsrfu = vim.o.thesaurusfunc 7437 vim.bo.thesaurusfunc = vim.o.thesaurusfunc 7438 vim.bo.tsrfu = vim.bo.thesaurusfunc 7439 vim.go.thesaurusfunc = vim.o.thesaurusfunc 7440 vim.go.tsrfu = vim.go.thesaurusfunc 7441 7442 --- When on: The tilde command "~" behaves like an operator. 7443 --- 7444 --- @type boolean 7445 vim.o.tildeop = false 7446 vim.o.top = vim.o.tildeop 7447 vim.go.tildeop = vim.o.tildeop 7448 vim.go.top = vim.go.tildeop 7449 7450 --- This option and 'timeoutlen' determine the behavior when part of a 7451 --- mapped key sequence has been received. For example, if <c-f> is 7452 --- pressed and 'timeout' is set, Nvim will wait 'timeoutlen' milliseconds 7453 --- for any key that can follow <c-f> in a mapping. 7454 --- 7455 --- @type boolean 7456 vim.o.timeout = true 7457 vim.o.to = vim.o.timeout 7458 vim.go.timeout = vim.o.timeout 7459 vim.go.to = vim.go.timeout 7460 7461 --- Time in milliseconds to wait for a mapped sequence to complete. 7462 --- 7463 --- @type integer 7464 vim.o.timeoutlen = 1000 7465 vim.o.tm = vim.o.timeoutlen 7466 vim.go.timeoutlen = vim.o.timeoutlen 7467 vim.go.tm = vim.go.timeoutlen 7468 7469 --- When on, the title of the window will be set to the value of 7470 --- 'titlestring' (if it is not empty), or to: 7471 --- filename [+=-] (path) - Nvim 7472 --- Where: 7473 --- filename the name of the file being edited 7474 --- - indicates the file cannot be modified, 'ma' off 7475 --- + indicates the file was modified 7476 --- = indicates the file is read-only 7477 --- =+ indicates the file is read-only and modified 7478 --- (path) is the path of the file being edited 7479 --- - Nvim the server name `v:servername` or "Nvim" 7480 --- 7481 --- @type boolean 7482 vim.o.title = false 7483 vim.go.title = vim.o.title 7484 7485 --- Gives the percentage of 'columns' to use for the length of the window 7486 --- title. When the title is longer, only the end of the path name is 7487 --- shown. A '<' character before the path name is used to indicate this. 7488 --- Using a percentage makes this adapt to the width of the window. But 7489 --- it won't work perfectly, because the actual number of characters 7490 --- available also depends on the font used and other things in the title 7491 --- bar. When 'titlelen' is zero the full path is used. Otherwise, 7492 --- values from 1 to 30000 percent can be used. 7493 --- 'titlelen' is also used for the 'titlestring' option. 7494 --- 7495 --- @type integer 7496 vim.o.titlelen = 85 7497 vim.go.titlelen = vim.o.titlelen 7498 7499 --- If not empty, this option will be used to set the window title when 7500 --- exiting. Only if 'title' is enabled. 7501 --- This option cannot be set from a `modeline` or in the `sandbox`, for 7502 --- security reasons. 7503 --- 7504 --- @type string 7505 vim.o.titleold = "" 7506 vim.go.titleold = vim.o.titleold 7507 7508 --- When this option is not empty, it will be used for the title of the 7509 --- window. This happens only when the 'title' option is on. 7510 --- 7511 --- When this option contains printf-style '%' items, they will be 7512 --- expanded according to the rules used for 'statusline'. If it contains 7513 --- an invalid '%' format, the value is used as-is and no error or warning 7514 --- will be given when the value is set. 7515 --- 7516 --- The default behaviour is equivalent to: 7517 --- 7518 --- ```vim 7519 --- set titlestring=%t%(\ %M%)%(\ \(%{expand(\"%:~:h\")}\)%)%a\ -\ Nvim 7520 --- ``` 7521 --- 7522 --- This option cannot be set in a modeline when 'modelineexpr' is off. 7523 --- 7524 --- Example: 7525 --- 7526 --- ```vim 7527 --- auto BufEnter * let &titlestring = hostname() .. "/" .. expand("%:p") 7528 --- set title titlestring=%<%F%=%l/%L-%P titlelen=70 7529 --- ``` 7530 --- The value of 'titlelen' is used to align items in the middle or right 7531 --- of the available space. 7532 --- Some people prefer to have the file name first: 7533 --- 7534 --- ```vim 7535 --- set titlestring=%t%(\ %M%)%(\ (%{expand(\"%:~:.:h\")})%)%(\ %a%) 7536 --- ``` 7537 --- Note the use of "%{ }" and an expression to get the path of the file, 7538 --- without the file name. The "%( %)" constructs are used to add a 7539 --- separating space only when needed. 7540 --- NOTE: Use of special characters in 'titlestring' may cause the display 7541 --- to be garbled (e.g., when it contains a CR or NL character). 7542 --- 7543 --- @type string 7544 vim.o.titlestring = "" 7545 vim.go.titlestring = vim.o.titlestring 7546 7547 --- This option and 'ttimeoutlen' determine the behavior when part of a 7548 --- key code sequence has been received by the `TUI`. 7549 --- 7550 --- For example if <Esc> (the \x1b byte) is received and 'ttimeout' is 7551 --- set, Nvim waits 'ttimeoutlen' milliseconds for the terminal to 7552 --- complete a key code sequence. If no input arrives before the timeout, 7553 --- a single <Esc> is assumed. Many TUI cursor key codes start with <Esc>. 7554 --- 7555 --- On very slow systems this may fail, causing cursor keys not to work 7556 --- sometimes. If you discover this problem you can ":set ttimeoutlen=9999". 7557 --- Nvim will wait for the next character to arrive after an <Esc>. 7558 --- 7559 --- @type boolean 7560 vim.o.ttimeout = true 7561 vim.go.ttimeout = vim.o.ttimeout 7562 7563 --- Time in milliseconds to wait for a key code sequence to complete. Also 7564 --- used for CTRL-\ CTRL-N and CTRL-\ CTRL-G when part of a command has 7565 --- been typed. 7566 --- 7567 --- @type integer 7568 vim.o.ttimeoutlen = 50 7569 vim.o.ttm = vim.o.ttimeoutlen 7570 vim.go.ttimeoutlen = vim.o.ttimeoutlen 7571 vim.go.ttm = vim.go.ttimeoutlen 7572 7573 --- List of directory names for undo files, separated with commas. 7574 --- See 'backupdir' for details of the format. 7575 --- "." means using the directory of the file. The undo file name for 7576 --- "file.txt" is ".file.txt.un~". 7577 --- For other directories the file name is the full path of the edited 7578 --- file, with path separators replaced with "%". 7579 --- When writing: The first directory that exists is used. "." always 7580 --- works, no directories after "." will be used for writing. If none of 7581 --- the directories exist Nvim will attempt to create the last directory in 7582 --- the list. 7583 --- When reading all entries are tried to find an undo file. The first 7584 --- undo file that exists is used. When it cannot be read an error is 7585 --- given, no further entry is used. 7586 --- See `undo-persistence`. 7587 --- Environment variables are expanded `:set_env`. 7588 --- This option cannot be set from a `modeline` or in the `sandbox`, for 7589 --- security reasons. 7590 --- 7591 --- Note that unlike 'directory' and 'backupdir', 'undodir' always acts as 7592 --- though the trailing slashes are present (see 'backupdir' for what this 7593 --- means). 7594 --- 7595 --- @type string 7596 vim.o.undodir = "$XDG_STATE_HOME/nvim/undo//" 7597 vim.o.udir = vim.o.undodir 7598 vim.go.undodir = vim.o.undodir 7599 vim.go.udir = vim.go.undodir 7600 7601 --- When on, Vim automatically saves undo history to an undo file when 7602 --- writing a buffer to a file, and restores undo history from the same 7603 --- file on buffer read. 7604 --- The directory where the undo file is stored is specified by 'undodir'. 7605 --- For more information about this feature see `undo-persistence`. 7606 --- The undo file is not read when 'undoreload' causes the buffer from 7607 --- before a reload to be saved for undo. 7608 --- When 'undofile' is turned off the undo file is NOT deleted. 7609 --- 7610 --- @type boolean 7611 vim.o.undofile = false 7612 vim.o.udf = vim.o.undofile 7613 vim.bo.undofile = vim.o.undofile 7614 vim.bo.udf = vim.bo.undofile 7615 7616 --- Maximum number of changes that can be undone. Since undo information 7617 --- is kept in memory, higher numbers will cause more memory to be used. 7618 --- Nevertheless, a single change can already use a large amount of 7619 --- memory. Set to 0 for Vi compatibility: One level of undo and "u" 7620 --- undoes itself: 7621 --- 7622 --- ```vim 7623 --- set ul=0 7624 --- ``` 7625 --- But you can also get Vi compatibility by including the 'u' flag in 7626 --- 'cpoptions', and still be able to use CTRL-R to repeat undo. 7627 --- Also see `undo-two-ways`. 7628 --- Set to -1 for no undo at all. You might want to do this only for the 7629 --- current buffer: 7630 --- 7631 --- ```vim 7632 --- setlocal ul=-1 7633 --- ``` 7634 --- This helps when you run out of memory for a single change. 7635 --- 7636 --- The local value is set to -123456 when the global value is to be used. 7637 --- 7638 --- Also see `clear-undo`. 7639 --- 7640 --- @type integer 7641 vim.o.undolevels = 1000 7642 vim.o.ul = vim.o.undolevels 7643 vim.bo.undolevels = vim.o.undolevels 7644 vim.bo.ul = vim.bo.undolevels 7645 vim.go.undolevels = vim.o.undolevels 7646 vim.go.ul = vim.go.undolevels 7647 7648 --- Save the whole buffer for undo when reloading it. This applies to the 7649 --- ":e!" command and reloading for when the buffer changed outside of 7650 --- Vim. `FileChangedShell` 7651 --- The save only happens when this option is negative or when the number 7652 --- of lines is smaller than the value of this option. 7653 --- Set this option to zero to disable undo for a reload. 7654 --- 7655 --- When saving undo for a reload, any undo file is not read. 7656 --- 7657 --- Note that this causes the whole buffer to be stored in memory. Set 7658 --- this option to a lower value if you run out of memory. 7659 --- 7660 --- @type integer 7661 vim.o.undoreload = 10000 7662 vim.o.ur = vim.o.undoreload 7663 vim.go.undoreload = vim.o.undoreload 7664 vim.go.ur = vim.go.undoreload 7665 7666 --- After typing this many characters the swap file will be written to 7667 --- disk. When zero, no swap file will be created at all (see chapter on 7668 --- recovery `crash-recovery`). 'updatecount' is set to zero by starting 7669 --- Vim with the "-n" option, see `startup`. When editing in readonly 7670 --- mode this option will be initialized to 10000. 7671 --- The swapfile can be disabled per buffer with 'swapfile'. 7672 --- When 'updatecount' is set from zero to non-zero, swap files are 7673 --- created for all buffers that have 'swapfile' set. When 'updatecount' 7674 --- is set to zero, existing swap files are not deleted. 7675 --- This option has no meaning in buffers where 'buftype' is "nofile" or 7676 --- "nowrite". 7677 --- 7678 --- @type integer 7679 vim.o.updatecount = 200 7680 vim.o.uc = vim.o.updatecount 7681 vim.go.updatecount = vim.o.updatecount 7682 vim.go.uc = vim.go.updatecount 7683 7684 --- If this many milliseconds nothing is typed the swap file will be 7685 --- written to disk (see `crash-recovery`). Also used for the 7686 --- `CursorHold` autocommand event. 7687 --- 7688 --- @type integer 7689 vim.o.updatetime = 4000 7690 vim.o.ut = vim.o.updatetime 7691 vim.go.updatetime = vim.o.updatetime 7692 vim.go.ut = vim.go.updatetime 7693 7694 --- Defines variable-width soft tab stops. The value is a comma-separated 7695 --- list of widths in columns. Each width defines the number of columns 7696 --- before the next soft tab stop. The last value repeats indefinitely. 7697 --- 7698 --- For example, when editing assembly language files where statements 7699 --- start in the 9th column and comments in the 41st, it may be useful 7700 --- to use the following: 7701 --- 7702 --- ```vim 7703 --- set varsofttabstop=8,32,8 7704 --- ``` 7705 --- This sets soft tab stops at column 8, then at column 40 (8 + 32), and 7706 --- every 8 columns thereafter. 7707 --- 7708 --- Note: this setting overrides 'softtabstop'. 7709 --- See section `30.5` of the user manual for detailed explanations on how 7710 --- Vim works with tabs and spaces. 7711 --- 7712 --- @type string 7713 vim.o.varsofttabstop = "" 7714 vim.o.vsts = vim.o.varsofttabstop 7715 vim.bo.varsofttabstop = vim.o.varsofttabstop 7716 vim.bo.vsts = vim.bo.varsofttabstop 7717 7718 --- Defines variable-width tab stops. The value is a comma-separated list 7719 --- of widths in columns. Each width defines the number of columns before 7720 --- the next tab stop; the last value repeats indefinitely. 7721 --- 7722 --- For example: 7723 --- ``` 7724 --- :set vartabstop=4,8 7725 --- ``` 7726 --- This places the first tab stop 4 columns from the start of the line 7727 --- and each subsequent tab stop 8 columns apart. 7728 --- 7729 --- Note: this setting overrides 'tabstop'. 7730 --- On UNIX, it is recommended to keep the default tabstop value of 8. 7731 --- Consider setting 'varsofttabstop' instead. 7732 --- See section `30.5` of the user manual for detailed explanations on how 7733 --- Vim works with tabs and spaces. 7734 --- 7735 --- @type string 7736 vim.o.vartabstop = "" 7737 vim.o.vts = vim.o.vartabstop 7738 vim.bo.vartabstop = vim.o.vartabstop 7739 vim.bo.vts = vim.bo.vartabstop 7740 7741 --- Sets the verbosity level. Also set by `-V` and `:verbose`. 7742 --- 7743 --- Tracing of assignments to options, mappings, etc. in Lua scripts is 7744 --- enabled at level 1; Lua scripts are not traced when 'verbose' is 0, 7745 --- for performance. 7746 --- 7747 --- If greater than or equal to a given level, Nvim produces the following 7748 --- messages: 7749 --- 7750 --- Level Messages ~ 7751 --- ---------------------------------------------------------------------- 7752 --- 1 Enables Lua tracing (see above). Does not produce messages. 7753 --- 2 When a file is ":source"'ed, or `shada` file is read or written. 7754 --- 3 UI info, terminal capabilities. 7755 --- 4 Shell commands. 7756 --- 5 Every searched tags file and include file. 7757 --- 8 Files for which a group of autocommands is executed. 7758 --- 9 Executed autocommands. 7759 --- 11 Finding items in a path. 7760 --- 12 Vimscript function calls. 7761 --- 13 When an exception is thrown, caught, finished, or discarded. 7762 --- 14 Anything pending in a ":finally" clause. 7763 --- 15 Ex commands from a script (truncated at 200 characters). 7764 --- 16 Ex commands. 7765 --- 7766 --- If 'verbosefile' is set then the verbose messages are not displayed. 7767 --- 7768 --- @type integer 7769 vim.o.verbose = 0 7770 vim.o.vbs = vim.o.verbose 7771 vim.go.verbose = vim.o.verbose 7772 vim.go.vbs = vim.go.verbose 7773 7774 --- When not empty all messages are written in a file with this name. 7775 --- When the file exists messages are appended. 7776 --- Writing to the file ends when Vim exits or when 'verbosefile' is made 7777 --- empty. Writes are buffered, thus may not show up for some time. 7778 --- Setting 'verbosefile' to a new value is like making it empty first. 7779 --- The difference with `:redir` is that verbose messages are not 7780 --- displayed when 'verbosefile' is set. 7781 --- Environment variables are expanded `:set_env`. 7782 --- This option cannot be set from a `modeline` or in the `sandbox`, for 7783 --- security reasons. 7784 --- 7785 --- @type string 7786 vim.o.verbosefile = "" 7787 vim.o.vfile = vim.o.verbosefile 7788 vim.go.verbosefile = vim.o.verbosefile 7789 vim.go.vfile = vim.go.verbosefile 7790 7791 --- Name of the directory where to store files for `:mkview`. 7792 --- Environment variables are expanded `:set_env`. 7793 --- This option cannot be set from a `modeline` or in the `sandbox`, for 7794 --- security reasons. 7795 --- 7796 --- @type string 7797 vim.o.viewdir = "$XDG_STATE_HOME/nvim/view//" 7798 vim.o.vdir = vim.o.viewdir 7799 vim.go.viewdir = vim.o.viewdir 7800 vim.go.vdir = vim.go.viewdir 7801 7802 --- Changes the effect of the `:mkview` command. It is a comma-separated 7803 --- list of words. Each word enables saving and restoring something: 7804 --- word save and restore ~ 7805 --- cursor cursor position in file and in window 7806 --- curdir local current directory, if set with `:lcd` 7807 --- folds manually created folds, opened/closed folds and local 7808 --- fold options 7809 --- options options and mappings local to a window or buffer (not 7810 --- global values for local options) 7811 --- localoptions same as "options" 7812 --- slash `deprecated` Always enabled. Uses "/" in filenames. 7813 --- unix `deprecated` Always enabled. Uses "\n" line endings. 7814 --- 7815 --- @type string 7816 vim.o.viewoptions = "folds,cursor,curdir" 7817 vim.o.vop = vim.o.viewoptions 7818 vim.go.viewoptions = vim.o.viewoptions 7819 vim.go.vop = vim.go.viewoptions 7820 7821 --- A comma-separated list of these words: 7822 --- block Allow virtual editing in Visual block mode. 7823 --- insert Allow virtual editing in Insert mode. 7824 --- all Allow virtual editing in all modes. 7825 --- onemore Allow the cursor to move just past the end of the line 7826 --- none When used as the local value, do not allow virtual 7827 --- editing even when the global value is set. When used 7828 --- as the global value, "none" is the same as "". 7829 --- NONE Alternative spelling of "none". 7830 --- 7831 --- Virtual editing means that the cursor can be positioned where there is 7832 --- no actual character. This can be halfway into a tab or beyond the end 7833 --- of the line. Useful for selecting a rectangle in Visual mode and 7834 --- editing a table. 7835 --- "onemore" is not the same, it will only allow moving the cursor just 7836 --- after the last character of the line. This makes some commands more 7837 --- consistent. Previously the cursor was always past the end of the line 7838 --- if the line was empty. But it is far from Vi compatible. It may also 7839 --- break some plugins or Vim scripts. For example because `l` can move 7840 --- the cursor after the last character. Use with care! 7841 --- Using the `$` command will move to the last character in the line, not 7842 --- past it. This may actually move the cursor to the left! 7843 --- The `g$` command will move to the end of the screen line. 7844 --- It doesn't make sense to combine "all" with "onemore", but you will 7845 --- not get a warning for it. 7846 --- When combined with other words, "none" is ignored. 7847 --- 7848 --- @type string 7849 vim.o.virtualedit = "" 7850 vim.o.ve = vim.o.virtualedit 7851 vim.wo.virtualedit = vim.o.virtualedit 7852 vim.wo.ve = vim.wo.virtualedit 7853 vim.go.virtualedit = vim.o.virtualedit 7854 vim.go.ve = vim.go.virtualedit 7855 7856 --- Use visual bell instead of beeping. Also see 'errorbells'. 7857 --- 7858 --- @type boolean 7859 vim.o.visualbell = false 7860 vim.o.vb = vim.o.visualbell 7861 vim.go.visualbell = vim.o.visualbell 7862 vim.go.vb = vim.go.visualbell 7863 7864 --- Give a warning message when a shell command is used while the buffer 7865 --- has been changed. 7866 --- 7867 --- @type boolean 7868 vim.o.warn = true 7869 vim.go.warn = vim.o.warn 7870 7871 --- Allow specified keys that move the cursor left/right to move to the 7872 --- previous/next line when the cursor is on the first/last character in 7873 --- the line. Concatenate characters to allow this for these keys: 7874 --- char key mode ~ 7875 --- b <BS> Normal and Visual 7876 --- s <Space> Normal and Visual 7877 --- h "h" Normal and Visual (not recommended) 7878 --- l "l" Normal and Visual (not recommended) 7879 --- < <Left> Normal and Visual 7880 --- > <Right> Normal and Visual 7881 --- ~ "~" Normal 7882 --- [ <Left> Insert and Replace 7883 --- ] <Right> Insert and Replace 7884 --- For example: 7885 --- 7886 --- ```vim 7887 --- set ww=<,>,[,] 7888 --- ``` 7889 --- allows wrap only when cursor keys are used. 7890 --- When the movement keys are used in combination with a delete or change 7891 --- operator, the <EOL> also counts for a character. This makes "3h" 7892 --- different from "3dh" when the cursor crosses the end of a line. This 7893 --- is also true for "x" and "X", because they do the same as "dl" and 7894 --- "dh". If you use this, you may also want to use the mapping 7895 --- ":map <BS> X" to make backspace delete the character in front of the 7896 --- cursor. 7897 --- When 'l' is included and it is used after an operator at the end of a 7898 --- line (not an empty line) then it will not move to the next line. This 7899 --- makes "dl", "cl", "yl" etc. work normally. 7900 --- 7901 --- @type string 7902 vim.o.whichwrap = "b,s" 7903 vim.o.ww = vim.o.whichwrap 7904 vim.go.whichwrap = vim.o.whichwrap 7905 vim.go.ww = vim.go.whichwrap 7906 7907 --- Character you have to type to start wildcard expansion in the 7908 --- command-line, as specified with 'wildmode'. 7909 --- More info here: `cmdline-completion`. 7910 --- The character is not recognized when used inside a macro. See 7911 --- 'wildcharm' for that. 7912 --- Some keys will not work, such as CTRL-C, <CR> and Enter. 7913 --- <Esc> can be used, but hitting it twice in a row will still exit 7914 --- command-line as a failsafe measure. 7915 --- Although 'wc' is a number option, it can be specified as a number, a 7916 --- single character, a `key-notation` (e.g. <Up>, <C-F>) or a letter 7917 --- preceded with a caret (e.g. `^F` is CTRL-F): 7918 --- 7919 --- ```vim 7920 --- :set wc=27 7921 --- :set wc=X 7922 --- :set wc=^I 7923 --- set wc=<Tab> 7924 --- ``` 7925 --- 'wildchar' also enables completion in search pattern contexts such as 7926 --- `/`, `?`, `:s`, `:g`, `:v`, and `:vim`. To insert a literal <Tab> 7927 --- instead of triggering completion, type <C-V><Tab> or "\t". 7928 --- See also 'wildoptions' and `wildtrigger()`. 7929 --- 7930 --- @type integer 7931 vim.o.wildchar = 9 7932 vim.o.wc = vim.o.wildchar 7933 vim.go.wildchar = vim.o.wildchar 7934 vim.go.wc = vim.go.wildchar 7935 7936 --- 'wildcharm' works exactly like 'wildchar', except that it is 7937 --- recognized when used inside a macro. You can find "spare" 7938 --- command-line keys suitable for this option by looking at 7939 --- `ex-edit-index`. Normally you'll never actually type 'wildcharm', 7940 --- just use it in mappings that automatically invoke completion mode, 7941 --- e.g.: 7942 --- 7943 --- ```vim 7944 --- set wcm=<C-Z> 7945 --- cnoremap ss so $vim/sessions/*.vim<C-Z> 7946 --- ``` 7947 --- Then after typing :ss you can use CTRL-P & CTRL-N. 7948 --- 7949 --- @type integer 7950 vim.o.wildcharm = 0 7951 vim.o.wcm = vim.o.wildcharm 7952 vim.go.wildcharm = vim.o.wildcharm 7953 vim.go.wcm = vim.go.wildcharm 7954 7955 --- A list of file patterns. A file that matches with one of these 7956 --- patterns is ignored when expanding `wildcards`, completing file or 7957 --- directory names, and influences the result of `expand()`, `glob()` and 7958 --- `globpath()` unless a flag is passed to disable this. 7959 --- The pattern is used like with `:autocmd`, see `autocmd-pattern`. 7960 --- Also see 'suffixes'. 7961 --- Example: 7962 --- 7963 --- ```vim 7964 --- set wildignore=*.o,*.obj 7965 --- ``` 7966 --- The use of `:set+=` and `:set-=` is preferred when adding or removing 7967 --- a pattern from the list. This avoids problems when a future version 7968 --- uses another default. 7969 --- 7970 --- @type string 7971 vim.o.wildignore = "" 7972 vim.o.wig = vim.o.wildignore 7973 vim.go.wildignore = vim.o.wildignore 7974 vim.go.wig = vim.go.wildignore 7975 7976 --- When set case is ignored when completing file names and directories. 7977 --- Has no effect when 'fileignorecase' is set. 7978 --- Does not apply when the shell is used to expand wildcards, which 7979 --- happens when there are special characters. 7980 --- 7981 --- @type boolean 7982 vim.o.wildignorecase = false 7983 vim.o.wic = vim.o.wildignorecase 7984 vim.go.wildignorecase = vim.o.wildignorecase 7985 vim.go.wic = vim.go.wildignorecase 7986 7987 --- When 'wildmenu' is on, command-line completion operates in an enhanced 7988 --- mode. On pressing 'wildchar' (usually <Tab>) to invoke completion, 7989 --- the possible matches are shown. 7990 --- When 'wildoptions' contains "pum", then the completion matches are 7991 --- shown in a popup menu. Otherwise they are displayed just above the 7992 --- command line, with the first match highlighted (overwriting the status 7993 --- line, if there is one). 7994 --- Keys that show the previous/next match, such as <Tab> or 7995 --- CTRL-P/CTRL-N, cause the highlight to move to the appropriate match. 7996 --- 'wildmode' must specify "full": "longest" and "list" do not start 7997 --- 'wildmenu' mode. You can check the current mode with `wildmenumode()`. 7998 --- The menu is cancelled when a key is hit that is not used for selecting 7999 --- a completion. 8000 --- 8001 --- While the menu is active these keys have special meanings: 8002 --- CTRL-P - go to the previous entry 8003 --- CTRL-N - go to the next entry 8004 --- <Left> <Right> - select previous/next match (like CTRL-P/CTRL-N) 8005 --- <PageUp> - select a match several entries back 8006 --- <PageDown> - select a match several entries further 8007 --- <Up> - in filename/menu name completion: move up into 8008 --- parent directory or parent menu. 8009 --- <Down> - in filename/menu name completion: move into a 8010 --- subdirectory or submenu. 8011 --- <CR> - in menu completion, when the cursor is just after a 8012 --- dot: move into a submenu. 8013 --- CTRL-E - end completion, go back to what was there before 8014 --- selecting a match. 8015 --- CTRL-Y - accept the currently selected match and stop 8016 --- completion. 8017 --- 8018 --- If you want <Left> and <Right> to move the cursor instead of selecting 8019 --- a different match, use this: 8020 --- 8021 --- ```vim 8022 --- cnoremap <Left> <Space><BS><Left> 8023 --- cnoremap <Right> <Space><BS><Right> 8024 --- ``` 8025 --- 8026 --- `hl-WildMenu` highlights the current match. 8027 --- 8028 --- @type boolean 8029 vim.o.wildmenu = true 8030 vim.o.wmnu = vim.o.wildmenu 8031 vim.go.wildmenu = vim.o.wildmenu 8032 vim.go.wmnu = vim.go.wildmenu 8033 8034 --- Completion mode used for the character specified with 'wildchar'. 8035 --- This option is a comma-separated list of up to four parts, 8036 --- corresponding to the first, second, third, and fourth presses of 8037 --- 'wildchar'. Each part is a colon-separated list of completion 8038 --- behaviors, which are applied simultaneously during that phase. 8039 --- 8040 --- The possible behavior values are: 8041 --- "" Only complete (insert) the first match. No further 8042 --- matches are cycled or listed. 8043 --- "full" Complete the next full match. Cycles through all 8044 --- matches, returning to the original input after the 8045 --- last match. If 'wildmenu' is enabled, it will be 8046 --- shown. 8047 --- "longest" Complete to the longest common substring. If this 8048 --- doesn't extend the input, the next 'wildmode' part is 8049 --- used. 8050 --- "list" If multiple matches are found, list all of them. 8051 --- "lastused" When completing buffer names, sort them by most 8052 --- recently used (excluding the current buffer). Only 8053 --- applies to buffer name completion. 8054 --- "noselect" If 'wildmenu' is enabled, show the menu but do not 8055 --- preselect the first item. 8056 --- If only one match exists, it is completed fully, unless "noselect" is 8057 --- specified. 8058 --- 8059 --- Some useful combinations of colon-separated values: 8060 --- "longest:full" Start with the longest common string and show 8061 --- 'wildmenu' (if enabled). Does not cycle 8062 --- through full matches. 8063 --- "list:full" List all matches and complete first match. 8064 --- "list:longest" List all matches and complete till the longest 8065 --- common prefix. 8066 --- "list:lastused" List all matches. When completing buffers, 8067 --- sort them by most recently used (excluding the 8068 --- current buffer). 8069 --- "noselect:lastused" Do not preselect the first item in 'wildmenu' 8070 --- if it is active. When completing buffers, 8071 --- sort them by most recently used (excluding the 8072 --- current buffer). 8073 --- 8074 --- Examples: 8075 --- 8076 --- ```vim 8077 --- set wildmode=full 8078 --- ``` 8079 --- Complete full match on every press (default behavior) 8080 --- 8081 --- ```vim 8082 --- set wildmode=longest,full 8083 --- ``` 8084 --- First press: longest common substring 8085 --- Second press: cycle through full matches 8086 --- 8087 --- ```vim 8088 --- set wildmode=list:full 8089 --- ``` 8090 --- First press: list all matches and complete the first one 8091 --- 8092 --- ```vim 8093 --- set wildmode=list,full 8094 --- ``` 8095 --- First press: list matches only 8096 --- Second press: complete full matches 8097 --- 8098 --- ```vim 8099 --- set wildmode=longest,list 8100 --- ``` 8101 --- First press: longest common substring 8102 --- Second press: list all matches 8103 --- 8104 --- ```vim 8105 --- set wildmode=noselect:full 8106 --- ``` 8107 --- First press: show 'wildmenu' without completing or selecting 8108 --- Second press: cycle full matches 8109 --- 8110 --- ```vim 8111 --- set wildmode=noselect:lastused,full 8112 --- ``` 8113 --- Same as above, but buffer matches are sorted by time last used 8114 --- More info here: `cmdline-completion`. 8115 --- 8116 --- @type string 8117 vim.o.wildmode = "full" 8118 vim.o.wim = vim.o.wildmode 8119 vim.go.wildmode = vim.o.wildmode 8120 vim.go.wim = vim.go.wildmode 8121 8122 --- A list of words that change how `cmdline-completion` is done. 8123 --- The following values are supported: 8124 --- exacttext When this flag is present, search pattern completion 8125 --- (e.g., in `/`, `?`, `:s`, `:g`, `:v`, and `:vim`) 8126 --- shows exact buffer text as menu items, without 8127 --- preserving regex artifacts like position 8128 --- anchors (e.g., `/\\<`). This provides more intuitive 8129 --- menu items that match the actual buffer text. 8130 --- However, searches may be less accurate since the 8131 --- pattern is not preserved exactly. 8132 --- By default, Vim preserves the typed pattern (with 8133 --- anchors) and appends the matched word. This preserves 8134 --- search correctness, especially when using regular 8135 --- expressions or with 'smartcase' enabled. However, the 8136 --- case of the appended matched word may not exactly 8137 --- match the case of the word in the buffer. 8138 --- fuzzy Use `fuzzy-matching` to find completion matches. When 8139 --- this value is specified, wildcard expansion will not 8140 --- be used for completion. The matches will be sorted by 8141 --- the "best match" rather than alphabetically sorted. 8142 --- This will find more matches than the wildcard 8143 --- expansion. Currently fuzzy matching based completion 8144 --- is not supported for file and directory names and 8145 --- instead wildcard expansion is used. 8146 --- pum Display the completion matches using the popup menu in 8147 --- the same style as the `ins-completion-menu`. 8148 --- tagfile When using CTRL-D to list matching tags, the kind of 8149 --- tag and the file of the tag is listed. Only one match 8150 --- is displayed per line. Often used tag kinds are: 8151 --- d #define 8152 --- f function 8153 --- 8154 --- This option does not apply to `ins-completion`. See 'completeopt' for 8155 --- that. 8156 --- 8157 --- @type string 8158 vim.o.wildoptions = "pum,tagfile" 8159 vim.o.wop = vim.o.wildoptions 8160 vim.go.wildoptions = vim.o.wildoptions 8161 vim.go.wop = vim.go.wildoptions 8162 8163 --- only used in Win32 8164 --- Some GUI versions allow the access to menu entries by using the ALT 8165 --- key in combination with a character that appears underlined in the 8166 --- menu. This conflicts with the use of the ALT key for mappings and 8167 --- entering special characters. This option tells what to do: 8168 --- no Don't use ALT keys for menus. ALT key combinations can be 8169 --- mapped, but there is no automatic handling. 8170 --- yes ALT key handling is done by the windowing system. ALT key 8171 --- combinations cannot be mapped. 8172 --- menu Using ALT in combination with a character that is a menu 8173 --- shortcut key, will be handled by the windowing system. Other 8174 --- keys can be mapped. 8175 --- If the menu is disabled by excluding 'm' from 'guioptions', the ALT 8176 --- key is never used for the menu. 8177 --- This option is not used for <F10>; on Win32. 8178 --- 8179 --- @type 'yes'|'menu'|'no' 8180 vim.o.winaltkeys = "menu" 8181 vim.o.wak = vim.o.winaltkeys 8182 vim.go.winaltkeys = vim.o.winaltkeys 8183 vim.go.wak = vim.go.winaltkeys 8184 8185 --- When non-empty, this option enables the window bar and determines its 8186 --- contents. The window bar is a bar that's shown at the top of every 8187 --- window with it enabled. The value of 'winbar' is evaluated like with 8188 --- 'statusline'. 8189 --- 8190 --- When changing something that is used in 'winbar' that does not trigger 8191 --- it to be updated, use `:redrawstatus`. 8192 --- 8193 --- Floating windows do not use the global value of 'winbar'. The 8194 --- window-local value of 'winbar' must be set for a floating window to 8195 --- have a window bar. 8196 --- 8197 --- This option cannot be set in a modeline when 'modelineexpr' is off. 8198 --- 8199 --- @type string 8200 vim.o.winbar = "" 8201 vim.o.wbr = vim.o.winbar 8202 vim.wo.winbar = vim.o.winbar 8203 vim.wo.wbr = vim.wo.winbar 8204 vim.go.winbar = vim.o.winbar 8205 vim.go.wbr = vim.go.winbar 8206 8207 --- Enables pseudo-transparency for a floating window. Valid values are in 8208 --- the range of 0 for fully opaque window (disabled) to 100 for fully 8209 --- transparent background. Values between 0-30 are typically most useful. 8210 --- 8211 --- UI-dependent. Works best with RGB colors. 'termguicolors' 8212 --- 8213 --- @type integer 8214 vim.o.winblend = 0 8215 vim.o.winbl = vim.o.winblend 8216 vim.wo.winblend = vim.o.winblend 8217 vim.wo.winbl = vim.wo.winblend 8218 8219 --- Defines the default border style of floating windows. The default value 8220 --- is empty, which is equivalent to "none". Valid values include: 8221 --- - "bold": Bold line box. 8222 --- - "double": Double-line box. 8223 --- - "none": No border. 8224 --- - "rounded": Like "single", but with rounded corners ("╭" etc.). 8225 --- - "shadow": Drop shadow effect, by blending with the background. 8226 --- - "single": Single-line box. 8227 --- - "solid": Adds padding by a single whitespace cell. 8228 --- - custom: comma-separated list of exactly 8 characters in clockwise 8229 --- order starting from topleft. Example: 8230 --- 8231 --- ```lua 8232 --- vim.o.winborder='+,-,+,`,+,-,+,`' 8233 --- ``` 8234 --- 8235 --- 8236 --- @type string 8237 vim.o.winborder = "" 8238 vim.go.winborder = vim.o.winborder 8239 8240 --- Window height used for `CTRL-F` and `CTRL-B` when there is only one 8241 --- window and the value is smaller than 'lines' minus one. The screen 8242 --- will scroll 'window' minus two lines, with a minimum of one. 8243 --- When 'window' is equal to 'lines' minus one CTRL-F and CTRL-B scroll 8244 --- in a much smarter way, taking care of wrapping lines. 8245 --- When resizing the Vim window, and the value is smaller than 1 or more 8246 --- than or equal to 'lines' it will be set to 'lines' minus 1. 8247 --- Note: Do not confuse this with the height of the Vim window, use 8248 --- 'lines' for that. 8249 --- 8250 --- @type integer 8251 vim.o.window = 0 8252 vim.o.wi = vim.o.window 8253 vim.go.window = vim.o.window 8254 vim.go.wi = vim.go.window 8255 8256 --- If enabled, the window and the buffer it is displaying are paired. 8257 --- For example, attempting to change the buffer with `:edit` will fail. 8258 --- Other commands which change a window's buffer such as `:cnext` will 8259 --- also skip any window with 'winfixbuf' enabled. However if an Ex 8260 --- command has a "!" modifier, it can force switching buffers. 8261 --- 8262 --- @type boolean 8263 vim.o.winfixbuf = false 8264 vim.o.wfb = vim.o.winfixbuf 8265 vim.wo.winfixbuf = vim.o.winfixbuf 8266 vim.wo.wfb = vim.wo.winfixbuf 8267 8268 --- Keep the window height when windows are opened or closed and 8269 --- 'equalalways' is set. Also for `CTRL-W_=`. Set by default for the 8270 --- `preview-window` and `quickfix-window`. 8271 --- The height may be changed anyway when running out of room. 8272 --- 8273 --- @type boolean 8274 vim.o.winfixheight = false 8275 vim.o.wfh = vim.o.winfixheight 8276 vim.wo.winfixheight = vim.o.winfixheight 8277 vim.wo.wfh = vim.wo.winfixheight 8278 8279 --- Keep the window width when windows are opened or closed and 8280 --- 'equalalways' is set. Also for `CTRL-W_=`. 8281 --- The width may be changed anyway when running out of room. 8282 --- 8283 --- @type boolean 8284 vim.o.winfixwidth = false 8285 vim.o.wfw = vim.o.winfixwidth 8286 vim.wo.winfixwidth = vim.o.winfixwidth 8287 vim.wo.wfw = vim.wo.winfixwidth 8288 8289 --- Minimal number of lines for the current window. This is not a hard 8290 --- minimum, Vim will use fewer lines if there is not enough room. If the 8291 --- focus goes to a window that is smaller, its size is increased, at the 8292 --- cost of the height of other windows. 8293 --- Set 'winheight' to a small number for normal editing. 8294 --- Set it to 999 to make the current window fill most of the screen. 8295 --- Other windows will be only 'winminheight' high. This has the drawback 8296 --- that ":all" will create only two windows. To avoid "vim -o 1 2 3 4" 8297 --- to create only two windows, set the option after startup is done, 8298 --- using the `VimEnter` event: 8299 --- 8300 --- ```vim 8301 --- au VimEnter * set winheight=999 8302 --- ``` 8303 --- Minimum value is 1. 8304 --- The height is not adjusted after one of the commands that change the 8305 --- height of the current window. 8306 --- 'winheight' applies to the current window. Use 'winminheight' to set 8307 --- the minimal height for other windows. 8308 --- 8309 --- @type integer 8310 vim.o.winheight = 1 8311 vim.o.wh = vim.o.winheight 8312 vim.go.winheight = vim.o.winheight 8313 vim.go.wh = vim.go.winheight 8314 8315 --- Window-local highlights. Comma-delimited list of highlight 8316 --- `group-name` pairs "{hl-from}:{hl-to},..." where each {hl-from} is 8317 --- a `highlight-groups` item to be overridden by {hl-to} group in 8318 --- the window. 8319 --- 8320 --- Note: highlight namespaces take precedence over 'winhighlight'. 8321 --- See `nvim_win_set_hl_ns()` and `nvim_set_hl()`. 8322 --- 8323 --- Highlights of vertical separators are determined by the window to the 8324 --- left of the separator. The 'tabline' highlight of a tabpage is 8325 --- decided by the last-focused window of the tabpage. Highlights of 8326 --- the popupmenu are determined by the current window. Highlights in the 8327 --- message area cannot be overridden. 8328 --- 8329 --- Example: show a different color for non-current windows: 8330 --- 8331 --- ```vim 8332 --- set winhighlight=Normal:MyNormal,NormalNC:MyNormalNC 8333 --- ``` 8334 --- 8335 --- 8336 --- @type string 8337 vim.o.winhighlight = "" 8338 vim.o.winhl = vim.o.winhighlight 8339 vim.wo.winhighlight = vim.o.winhighlight 8340 vim.wo.winhl = vim.wo.winhighlight 8341 8342 --- The minimal height of a window, when it's not the current window. 8343 --- This is a hard minimum, windows will never become smaller. 8344 --- When set to zero, windows may be "squashed" to zero lines (i.e. just a 8345 --- status bar) if necessary. They will return to at least one line when 8346 --- they become active (since the cursor has to have somewhere to go.) 8347 --- Use 'winheight' to set the minimal height of the current window. 8348 --- This option is only checked when making a window smaller. Don't use a 8349 --- large number, it will cause errors when opening more than a few 8350 --- windows. A value of 0 to 3 is reasonable. 8351 --- 8352 --- @type integer 8353 vim.o.winminheight = 1 8354 vim.o.wmh = vim.o.winminheight 8355 vim.go.winminheight = vim.o.winminheight 8356 vim.go.wmh = vim.go.winminheight 8357 8358 --- The minimal width of a window, when it's not the current window. 8359 --- This is a hard minimum, windows will never become smaller. 8360 --- When set to zero, windows may be "squashed" to zero columns (i.e. just 8361 --- a vertical separator) if necessary. They will return to at least one 8362 --- line when they become active (since the cursor has to have somewhere 8363 --- to go.) 8364 --- Use 'winwidth' to set the minimal width of the current window. 8365 --- This option is only checked when making a window smaller. Don't use a 8366 --- large number, it will cause errors when opening more than a few 8367 --- windows. A value of 0 to 12 is reasonable. 8368 --- 8369 --- @type integer 8370 vim.o.winminwidth = 1 8371 vim.o.wmw = vim.o.winminwidth 8372 vim.go.winminwidth = vim.o.winminwidth 8373 vim.go.wmw = vim.go.winminwidth 8374 8375 --- Minimal number of columns for the current window. This is not a hard 8376 --- minimum, Vim will use fewer columns if there is not enough room. If 8377 --- the current window is smaller, its size is increased, at the cost of 8378 --- the width of other windows. Set it to 999 to make the current window 8379 --- always fill the screen. Set it to a small number for normal editing. 8380 --- The width is not adjusted after one of the commands to change the 8381 --- width of the current window. 8382 --- 'winwidth' applies to the current window. Use 'winminwidth' to set 8383 --- the minimal width for other windows. 8384 --- 8385 --- @type integer 8386 vim.o.winwidth = 20 8387 vim.o.wiw = vim.o.winwidth 8388 vim.go.winwidth = vim.o.winwidth 8389 vim.go.wiw = vim.go.winwidth 8390 8391 --- This option changes how text is displayed. It doesn't change the text 8392 --- in the buffer, see 'textwidth' for that. 8393 --- When on, lines longer than the width of the window will wrap and 8394 --- displaying continues on the next line. When off lines will not wrap 8395 --- and only part of long lines will be displayed. When the cursor is 8396 --- moved to a part that is not shown, the screen will scroll 8397 --- horizontally. 8398 --- The line will be broken in the middle of a word if necessary. See 8399 --- 'linebreak' to get the break at a word boundary. 8400 --- To make scrolling horizontally a bit more useful, try this: 8401 --- 8402 --- ```vim 8403 --- set sidescroll=5 8404 --- set listchars+=precedes:<,extends:> 8405 --- ``` 8406 --- See 'sidescroll', 'listchars' and `wrap-off`. 8407 --- This option can't be set from a `modeline` when the 'diff' option is 8408 --- on. 8409 --- If 'nowrap' was set from a `modeline` or in the `sandbox`, '>' is used 8410 --- as the `lcs-extends` character regardless of the value of the 'list' 8411 --- and 'listchars' options. This is to prevent malicious code outside 8412 --- the viewport from going unnoticed. Use `:setlocal nowrap` manually 8413 --- afterwards to disable this behavior. 8414 --- 8415 --- @type boolean 8416 vim.o.wrap = true 8417 vim.wo.wrap = vim.o.wrap 8418 8419 --- Number of characters from the right window border where wrapping 8420 --- starts. When typing text beyond this limit, an <EOL> will be inserted 8421 --- and inserting continues on the next line. 8422 --- Options that add a margin, such as 'number' and 'foldcolumn', cause 8423 --- the text width to be further reduced. 8424 --- When 'textwidth' is non-zero, this option is not used. 8425 --- See also 'formatoptions' and `ins-textwidth`. 8426 --- 8427 --- @type integer 8428 vim.o.wrapmargin = 0 8429 vim.o.wm = vim.o.wrapmargin 8430 vim.bo.wrapmargin = vim.o.wrapmargin 8431 vim.bo.wm = vim.bo.wrapmargin 8432 8433 --- Searches wrap around the end of the file. Also applies to `]s` and 8434 --- `[s`, searching for spelling mistakes. 8435 --- 8436 --- @type boolean 8437 vim.o.wrapscan = true 8438 vim.o.ws = vim.o.wrapscan 8439 vim.go.wrapscan = vim.o.wrapscan 8440 vim.go.ws = vim.go.wrapscan 8441 8442 --- Allows writing files. When not set, writing a file is not allowed. 8443 --- Can be used for a view-only mode, where modifications to the text are 8444 --- still allowed. Can be reset with the `-m` or `-M` command line 8445 --- argument. Filtering text is still possible, even though this requires 8446 --- writing a temporary file. 8447 --- 8448 --- @type boolean 8449 vim.o.write = true 8450 vim.go.write = vim.o.write 8451 8452 --- Allows writing to any file with no need for "!" override. 8453 --- 8454 --- @type boolean 8455 vim.o.writeany = false 8456 vim.o.wa = vim.o.writeany 8457 vim.go.writeany = vim.o.writeany 8458 vim.go.wa = vim.go.writeany 8459 8460 --- Make a backup before overwriting a file. The backup is removed after 8461 --- the file was successfully written, unless the 'backup' option is 8462 --- also on. 8463 --- WARNING: Switching this option off means that when Vim fails to write 8464 --- your buffer correctly and then, for whatever reason, Vim exits, you 8465 --- lose both the original file and what you were writing. Only reset 8466 --- this option if your file system is almost full and it makes the write 8467 --- fail (and make sure not to exit Vim until the write was successful). 8468 --- See `backup-table` for another explanation. 8469 --- When the 'backupskip' pattern matches, a backup is not made anyway. 8470 --- Depending on 'backupcopy' the backup is a new file or the original 8471 --- file renamed (and a new file is written). 8472 --- 8473 --- @type boolean 8474 vim.o.writebackup = true 8475 vim.o.wb = vim.o.writebackup 8476 vim.go.writebackup = vim.o.writebackup 8477 vim.go.wb = vim.go.writebackup 8478 8479 --- Only takes effect together with 'redrawdebug'. 8480 --- The number of milliseconds to wait after each line or each flush 8481 --- 8482 --- @type integer 8483 vim.o.writedelay = 0 8484 vim.o.wd = vim.o.writedelay 8485 vim.go.writedelay = vim.o.writedelay 8486 vim.go.wd = vim.go.writedelay