1" These commands create the option window. 2" 3" Maintainer: Bram Moolenaar <[email protected]> 4" Last Change: 2019 Nov 07 5 6" If there already is an option window, jump to that one. 7let buf = bufnr('option-window') 8if buf >= 0 9 let winids = win_findbuf(buf) 10 if len(winids) > 0 11 if win_gotoid(winids[0]) == 1 12 finish 13 endif 14 endif 15endif 16 17" Make sure the '<' flag is not included in 'cpoptions', otherwise <CR> would 18" not be recognized. See ":help 'cpoptions'". 19let s:cpo_save = &cpo 20set cpo&vim 21 22" function to be called when <CR> is hit in the option-window 23fun! <SID>CR() 24 25 " If on a continued comment line, go back to the first comment line 26 let lnum = search("^[^\t]", 'bWcn') 27 let line = getline(lnum) 28 29 " <CR> on a "set" line executes the option line 30 if match(line, "^ \tset ") >= 0 31 32 " For a local option: go to the previous window 33 " If this is a help window, go to the window below it 34 let thiswin = winnr() 35 let local = <SID>Find(lnum) 36 if local >= 0 37 exe line 38 call <SID>Update(lnum, line, local, thiswin) 39 endif 40 41 " <CR> on a "option" line shows help for that option 42 elseif match(line, "^[a-z]") >= 0 43 let name = substitute(line, '\([^\t]*\).*', '\1', "") 44 exe "help '" . name . "'" 45 46 " <CR> on an index line jumps to the group 47 elseif match(line, '^ \=[0-9]') >= 0 48 exe "norm! /" . line . "\<CR>zt" 49 endif 50endfun 51 52" function to be called when <Space> is hit in the option-window 53fun! <SID>Space() 54 55 let lnum = line(".") 56 let line = getline(lnum) 57 58 " <Space> on a "set" line refreshes the option line 59 if match(line, "^ \tset ") >= 0 60 61 " For a local option: go to the previous window 62 " If this is a help window, go to the window below it 63 let thiswin = winnr() 64 let local = <SID>Find(lnum) 65 if local >= 0 66 call <SID>Update(lnum, line, local, thiswin) 67 endif 68 69 endif 70endfun 71 72" find the window in which the option applies 73" returns 0 for global option, 1 for local option, -1 for error 74fun! <SID>Find(lnum) 75 if getline(a:lnum - 1) =~ "(local to" 76 let local = 1 77 let thiswin = winnr() 78 wincmd p 79 if exists("b:current_syntax") && b:current_syntax == "help" 80 wincmd j 81 if winnr() == thiswin 82 wincmd j 83 endif 84 endif 85 else 86 let local = 0 87 endif 88 if local && (winnr() == thiswin || (exists("b:current_syntax") 89 \ && b:current_syntax == "help")) 90 echo "Don't know in which window" 91 let local = -1 92 endif 93 return local 94endfun 95 96" Update a "set" line in the option window 97fun! <SID>Update(lnum, line, local, thiswin) 98 " get the new value of the option and update the option window line 99 if match(a:line, "=") >= 0 100 let name = substitute(a:line, '^ \tset \([^=]*\)=.*', '\1', "") 101 else 102 let name = substitute(a:line, '^ \tset \(no\)\=\([a-z]*\).*', '\2', "") 103 endif 104 if name == "pt" && &pt =~ "\x80" 105 let val = <SID>PTvalue() 106 else 107 let val = escape(eval('&' . name), " \t\\\"|") 108 endif 109 if a:local 110 exe a:thiswin . "wincmd w" 111 endif 112 if match(a:line, "=") >= 0 || (val != "0" && val != "1") 113 call setline(a:lnum, " \tset " . name . "=" . val) 114 else 115 if val 116 call setline(a:lnum, " \tset " . name . "\tno" . name) 117 else 118 call setline(a:lnum, " \tset no" . name . "\t" . name) 119 endif 120 endif 121 set nomodified 122endfun 123 124" Reset 'title' and 'icon' to make it work faster. 125" Reset 'undolevels' to avoid undo'ing until the buffer is empty. 126let s:old_title = &title 127let s:old_icon = &icon 128let s:old_sc = &sc 129let s:old_ru = &ru 130let s:old_ul = &ul 131set notitle noicon nosc noru ul=-1 132 133" If the current window is a help window, try finding a non-help window. 134" Relies on syntax highlighting to be switched on. 135let s:thiswin = winnr() 136while exists("b:current_syntax") && b:current_syntax == "help" 137 wincmd w 138 if s:thiswin == winnr() 139 break 140 endif 141endwhile 142 143" Open the window. $OPTWIN_CMD is set to "tab" for ":tab options". 144exe $OPTWIN_CMD . ' new option-window' 145setlocal ts=15 tw=0 noro buftype=nofile 146 147" Insert help and a "set" command for each option. 148call append(0, '" Each "set" line shows the current value of an option (on the left).') 149call append(1, '" Hit <CR> on a "set" line to execute it.') 150call append(2, '" A boolean option will be toggled.') 151call append(3, '" For other options you can edit the value before hitting <CR>.') 152call append(4, '" Hit <CR> on a help line to open a help window on this option.') 153call append(5, '" Hit <CR> on an index line to jump there.') 154call append(6, '" Hit <Space> on a "set" line to refresh it.') 155 156" These functions are called often below. Keep them fast! 157 158" Init a local binary option 159fun! <SID>BinOptionL(name) 160 let val = getwinvar(winnr('#'), '&' . a:name) 161 call append("$", substitute(substitute(" \tset " . val . a:name . "\t" . 162 \!val . a:name, "0", "no", ""), "1", "", "")) 163endfun 164 165" Init a global binary option 166fun! <SID>BinOptionG(name, val) 167 call append("$", substitute(substitute(" \tset " . a:val . a:name . "\t" . 168 \!a:val . a:name, "0", "no", ""), "1", "", "")) 169endfun 170 171" Init a local string option 172fun! <SID>OptionL(name) 173 let val = escape(getwinvar(winnr('#'), '&' . a:name), " \t\\\"|") 174 call append("$", " \tset " . a:name . "=" . val) 175endfun 176 177" Init a global string option 178fun! <SID>OptionG(name, val) 179 call append("$", " \tset " . a:name . "=" . escape(a:val, " \t\\\"|")) 180endfun 181 182let s:idx = 1 183let s:lnum = line("$") 184call append("$", "") 185 186fun! <SID>Header(text) 187 let line = s:idx . " " . a:text 188 if s:idx < 10 189 let line = " " . line 190 endif 191 call append("$", "") 192 call append("$", line) 193 call append("$", "") 194 call append(s:lnum, line) 195 let s:idx = s:idx + 1 196 let s:lnum = s:lnum + 1 197endfun 198 199" Get the value of 'pastetoggle'. It could be a special key. 200fun! <SID>PTvalue() 201 redir @a 202 silent set pt 203 redir END 204 return substitute(@a, '[^=]*=\(.*\)', '\1', "") 205endfun 206 207" Restore the previous value of 'cpoptions' here, it's used below. 208let &cpo = s:cpo_save 209 210" List of all options, organized by function. 211" The text should be sufficient to know what the option is used for. 212 213call <SID>Header("important") 214call append("$", "compatible\tbehave very Vi compatible (not advisable)") 215call <SID>BinOptionG("cp", &cp) 216call append("$", "cpoptions\tlist of flags to specify Vi compatibility") 217call <SID>OptionG("cpo", &cpo) 218call append("$", "insertmode\tuse Insert mode as the default mode") 219call <SID>BinOptionG("im", &im) 220call append("$", "paste\tpaste mode, insert typed text literally") 221call <SID>BinOptionG("paste", &paste) 222call append("$", "pastetoggle\tkey sequence to toggle paste mode") 223if &pt =~ "\x80" 224 call append("$", " \tset pt=" . <SID>PTvalue()) 225else 226 call <SID>OptionG("pt", &pt) 227endif 228call append("$", "runtimepath\tlist of directories used for runtime files and plugins") 229call <SID>OptionG("rtp", &rtp) 230call append("$", "packpath\tlist of directories used for plugin packages") 231call <SID>OptionG("pp", &pp) 232call append("$", "helpfile\tname of the main help file") 233call <SID>OptionG("hf", &hf) 234 235 236call <SID>Header("moving around, searching and patterns") 237call append("$", "whichwrap\tlist of flags specifying which commands wrap to another line") 238call append("$", "\t(local to window)") 239call <SID>OptionL("ww") 240call append("$", "startofline\tmany jump commands move the cursor to the first non-blank") 241call append("$", "\tcharacter of a line") 242call <SID>BinOptionG("sol", &sol) 243call append("$", "paragraphs\tnroff macro names that separate paragraphs") 244call <SID>OptionG("para", ¶) 245call append("$", "sections\tnroff macro names that separate sections") 246call <SID>OptionG("sect", §) 247call append("$", "path\tlist of directory names used for file searching") 248call append("$", "\t(global or local to buffer)") 249call <SID>OptionG("pa", &pa) 250call append("$", "cdpath\tlist of directory names used for :cd") 251call <SID>OptionG("cd", &cd) 252if exists("+autochdir") 253 call append("$", "autochdir\tchange to directory of file in buffer") 254 call <SID>BinOptionG("acd", &acd) 255endif 256call append("$", "wrapscan\tsearch commands wrap around the end of the buffer") 257call <SID>BinOptionG("ws", &ws) 258call append("$", "incsearch\tshow match for partly typed search command") 259call <SID>BinOptionG("is", &is) 260call append("$", "magic\tchange the way backslashes are used in search patterns") 261call <SID>BinOptionG("magic", &magic) 262call append("$", "regexpengine\tselect the default regexp engine used") 263call <SID>OptionG("re", &re) 264call append("$", "ignorecase\tignore case when using a search pattern") 265call <SID>BinOptionG("ic", &ic) 266call append("$", "smartcase\toverride 'ignorecase' when pattern has upper case characters") 267call <SID>BinOptionG("scs", &scs) 268call append("$", "casemap\twhat method to use for changing case of letters") 269call <SID>OptionG("cmp", &cmp) 270call append("$", "maxmempattern\tmaximum amount of memory in Kbyte used for pattern matching") 271call append("$", " \tset mmp=" . &mmp) 272call append("$", "define\tpattern for a macro definition line") 273call append("$", "\t(global or local to buffer)") 274call <SID>OptionG("def", &def) 275if has("find_in_path") 276 call append("$", "include\tpattern for an include-file line") 277 call append("$", "\t(local to buffer)") 278 call <SID>OptionL("inc") 279 call append("$", "includeexpr\texpression used to transform an include line to a file name") 280 call append("$", "\t(local to buffer)") 281 call <SID>OptionL("inex") 282endif 283 284 285call <SID>Header("tags") 286call append("$", "tagbsearch\tuse binary searching in tags files") 287call <SID>BinOptionG("tbs", &tbs) 288call append("$", "taglength\tnumber of significant characters in a tag name or zero") 289call append("$", " \tset tl=" . &tl) 290call append("$", "tags\tlist of file names to search for tags") 291call append("$", "\t(global or local to buffer)") 292call <SID>OptionG("tag", &tag) 293call append("$", "tagcase\thow to handle case when searching in tags files:") 294call append("$", "\t\"followic\" to follow 'ignorecase', \"ignore\" or \"match\"") 295call append("$", "\t(global or local to buffer)") 296call <SID>OptionG("tc", &tc) 297call append("$", "tagrelative\tfile names in a tags file are relative to the tags file") 298call <SID>BinOptionG("tr", &tr) 299call append("$", "tagstack\ta :tag command will use the tagstack") 300call <SID>BinOptionG("tgst", &tgst) 301call append("$", "showfulltag\twhen completing tags in Insert mode show more info") 302call <SID>BinOptionG("sft", &sft) 303if has("eval") 304 call append("$", "tagfunc\ta function to be used to perform tag searches") 305 call append("$", "\t(local to buffer)") 306 call <SID>OptionL("tfu") 307endif 308if has("cscope") 309 call append("$", "cscopeprg\tcommand for executing cscope") 310 call <SID>OptionG("csprg", &csprg) 311 call append("$", "cscopetag\tuse cscope for tag commands") 312 call <SID>BinOptionG("cst", &cst) 313 call append("$", "cscopetagorder\t0 or 1; the order in which \":cstag\" performs a search") 314 call append("$", " \tset csto=" . &csto) 315 call append("$", "cscopeverbose\tgive messages when adding a cscope database") 316 call <SID>BinOptionG("csverb", &csverb) 317 call append("$", "cscopepathcomp\thow many components of the path to show") 318 call append("$", " \tset cspc=" . &cspc) 319 call append("$", "cscopequickfix\twhen to open a quickfix window for cscope") 320 call <SID>OptionG("csqf", &csqf) 321 call append("$", "cscoperelative\tfile names in a cscope file are relative to that file") 322 call <SID>BinOptionG("csre", &csre) 323endif 324 325 326call <SID>Header("displaying text") 327call append("$", "scroll\tnumber of lines to scroll for CTRL-U and CTRL-D") 328call append("$", "\t(local to window)") 329call <SID>OptionL("scr") 330call append("$", "scrolloff\tnumber of screen lines to show around the cursor") 331call append("$", " \tset so=" . &so) 332call append("$", "wrap\tlong lines wrap") 333call append("$", "\t(local to window)") 334call <SID>BinOptionL("wrap") 335call append("$", "linebreak\twrap long lines at a character in 'breakat'") 336call append("$", "\t(local to window)") 337call <SID>BinOptionL("lbr") 338call append("$", "breakindent\tpreserve indentation in wrapped text") 339call append("$", "\t(local to window)") 340call <SID>BinOptionL("bri") 341call append("$", "breakindentopt\tadjust breakindent behaviour") 342call append("$", "\t(local to window)") 343call <SID>OptionL("briopt") 344call append("$", "breakat\twhich characters might cause a line break") 345call <SID>OptionG("brk", &brk) 346call append("$", "showbreak\tstring to put before wrapped screen lines") 347call <SID>OptionG("sbr", &sbr) 348call append("$", "sidescroll\tminimal number of columns to scroll horizontally") 349call append("$", " \tset ss=" . &ss) 350call append("$", "sidescrolloff\tminimal number of columns to keep left and right of the cursor") 351call append("$", " \tset siso=" . &siso) 352call append("$", "display\tinclude \"lastline\" to show the last line even if it doesn't fit") 353call append("$", "\tinclude \"uhex\" to show unprintable characters as a hex number") 354call <SID>OptionG("dy", &dy) 355call append("$", "fillchars\tcharacters to use for the status line, folds and filler lines") 356call <SID>OptionG("fcs", &fcs) 357call append("$", "cmdheight\tnumber of lines used for the command-line") 358call append("$", " \tset ch=" . &ch) 359call append("$", "columns\twidth of the display") 360call append("$", " \tset co=" . &co) 361call append("$", "lines\tnumber of lines in the display") 362call append("$", " \tset lines=" . &lines) 363call append("$", "window\tnumber of lines to scroll for CTRL-F and CTRL-B") 364call append("$", " \tset window=" . &window) 365call append("$", "lazyredraw\tdon't redraw while executing macros") 366call <SID>BinOptionG("lz", &lz) 367if has("reltime") 368 call append("$", "redrawtime\ttimeout for 'hlsearch' and :match highlighting in msec") 369 call append("$", " \tset rdt=" . &rdt) 370endif 371call append("$", "writedelay\tdelay in msec for each char written to the display") 372call append("$", "\t(for debugging)") 373call append("$", " \tset wd=" . &wd) 374call append("$", "list\tshow <Tab> as ^I and end-of-line as $") 375call append("$", "\t(local to window)") 376call <SID>BinOptionL("list") 377call append("$", "listchars\tlist of strings used for list mode") 378call <SID>OptionG("lcs", &lcs) 379call append("$", "number\tshow the line number for each line") 380call append("$", "\t(local to window)") 381call <SID>BinOptionL("nu") 382call append("$", "relativenumber\tshow the relative line number for each line") 383call append("$", "\t(local to window)") 384call <SID>BinOptionL("rnu") 385if has("linebreak") 386 call append("$", "numberwidth\tnumber of columns to use for the line number") 387 call append("$", "\t(local to window)") 388 call <SID>OptionL("nuw") 389endif 390if has("conceal") 391 call append("$", "conceallevel\tcontrols whether concealable text is hidden") 392 call append("$", "\t(local to window)") 393 call <SID>OptionL("cole") 394 call append("$", "concealcursor\tmodes in which text in the cursor line can be concealed") 395 call append("$", "\t(local to window)") 396 call <SID>OptionL("cocu") 397endif 398 399 400call <SID>Header("syntax, highlighting and spelling") 401call append("$", "background\t\"dark\" or \"light\"; the background color brightness") 402call <SID>OptionG("bg", &bg) 403call append("$", "filetype\ttype of file; triggers the FileType event when set") 404call append("$", "\t(local to buffer)") 405call <SID>OptionL("ft") 406if has("syntax") 407 call append("$", "syntax\tname of syntax highlighting used") 408 call append("$", "\t(local to buffer)") 409 call <SID>OptionL("syn") 410 call append("$", "synmaxcol\tmaximum column to look for syntax items") 411 call append("$", "\t(local to buffer)") 412 call <SID>OptionL("smc") 413endif 414call append("$", "highlight\twhich highlighting to use for various occasions") 415call <SID>OptionG("hl", &hl) 416call append("$", "hlsearch\thighlight all matches for the last used search pattern") 417call <SID>BinOptionG("hls", &hls) 418call append("$", "wincolor\thighlight group to use for the window") 419call append("$", "\t(local to window)") 420call <SID>OptionL("wcr") 421if has("termguicolors") 422 call append("$", "termguicolors\tuse GUI colors for the terminal") 423 call <SID>BinOptionG("tgc", &tgc) 424endif 425if has("syntax") 426 call append("$", "cursorcolumn\thighlight the screen column of the cursor") 427 call append("$", "\t(local to window)") 428 call <SID>BinOptionL("cuc") 429 call append("$", "cursorline\thighlight the screen line of the cursor") 430 call append("$", "\t(local to window)") 431 call <SID>BinOptionL("cul") 432 call append("$", "cursorlineopt\tspecifies which area 'cursorline' highlights") 433 call append("$", "\t(local to window)") 434 call <SID>OptionL("culopt") 435 call append("$", "colorcolumn\tcolumns to highlight") 436 call append("$", "\t(local to window)") 437 call <SID>OptionL("cc") 438 call append("$", "spell\thighlight spelling mistakes") 439 call append("$", "\t(local to window)") 440 call <SID>BinOptionL("spell") 441 call append("$", "spelllang\tlist of accepted languages") 442 call append("$", "\t(local to buffer)") 443 call <SID>OptionL("spl") 444 call append("$", "spellfile\tfile that \"zg\" adds good words to") 445 call append("$", "\t(local to buffer)") 446 call <SID>OptionL("spf") 447 call append("$", "spellcapcheck\tpattern to locate the end of a sentence") 448 call append("$", "\t(local to buffer)") 449 call <SID>OptionL("spc") 450 call append("$", "spellsuggest\tmethods used to suggest corrections") 451 call <SID>OptionG("sps", &sps) 452 call append("$", "mkspellmem\tamount of memory used by :mkspell before compressing") 453 call <SID>OptionG("msm", &msm) 454endif 455 456 457call <SID>Header("multiple windows") 458call append("$", "laststatus\t0, 1 or 2; when to use a status line for the last window") 459call append("$", " \tset ls=" . &ls) 460if has("statusline") 461 call append("$", "statusline\talternate format to be used for a status line") 462 call <SID>OptionG("stl", &stl) 463endif 464call append("$", "equalalways\tmake all windows the same size when adding/removing windows") 465call <SID>BinOptionG("ea", &ea) 466call append("$", "eadirection\tin which direction 'equalalways' works: \"ver\", \"hor\" or \"both\"") 467call <SID>OptionG("ead", &ead) 468call append("$", "winheight\tminimal number of lines used for the current window") 469call append("$", " \tset wh=" . &wh) 470call append("$", "winminheight\tminimal number of lines used for any window") 471call append("$", " \tset wmh=" . &wmh) 472call append("$", "winfixheight\tkeep the height of the window") 473call append("$", "\t(local to window)") 474call <SID>BinOptionL("wfh") 475call append("$", "winfixwidth\tkeep the width of the window") 476call append("$", "\t(local to window)") 477call <SID>BinOptionL("wfw") 478call append("$", "winwidth\tminimal number of columns used for the current window") 479call append("$", " \tset wiw=" . &wiw) 480call append("$", "winminwidth\tminimal number of columns used for any window") 481call append("$", " \tset wmw=" . &wmw) 482call append("$", "helpheight\tinitial height of the help window") 483call append("$", " \tset hh=" . &hh) 484if has("quickfix") 485 call append("$", "previewpopup\tuse a popup window for preview") 486 call append("$", " \tset pvp=" . &pvp) 487 call append("$", "previewheight\tdefault height for the preview window") 488 call append("$", " \tset pvh=" . &pvh) 489 call append("$", "previewwindow\tidentifies the preview window") 490 call append("$", "\t(local to window)") 491 call <SID>BinOptionL("pvw") 492endif 493call append("$", "hidden\tdon't unload a buffer when no longer shown in a window") 494call <SID>BinOptionG("hid", &hid) 495call append("$", "switchbuf\t\"useopen\" and/or \"split\"; which window to use when jumping") 496call append("$", "\tto a buffer") 497call <SID>OptionG("swb", &swb) 498call append("$", "splitbelow\ta new window is put below the current one") 499call <SID>BinOptionG("sb", &sb) 500call append("$", "splitright\ta new window is put right of the current one") 501call <SID>BinOptionG("spr", &spr) 502call append("$", "scrollbind\tthis window scrolls together with other bound windows") 503call append("$", "\t(local to window)") 504call <SID>BinOptionL("scb") 505call append("$", "scrollopt\t\"ver\", \"hor\" and/or \"jump\"; list of options for 'scrollbind'") 506call <SID>OptionG("sbo", &sbo) 507call append("$", "cursorbind\tthis window's cursor moves together with other bound windows") 508call append("$", "\t(local to window)") 509call <SID>BinOptionL("crb") 510if has("terminal") 511 call append("$", "termwinsize\tsize of a terminal window") 512 call append("$", "\t(local to window)") 513 call <SID>OptionL("tws") 514 call append("$", "termwinkey\tkey that precedes Vim commands in a terminal window") 515 call append("$", "\t(local to window)") 516 call <SID>OptionL("twk") 517 call append("$", "termwinscroll\tmax number of lines to keep for scrollback in a terminal window") 518 call append("$", "\t(local to window)") 519 if has('win32') 520 call append("$", "termwintype\ttype of pty to use for a terminal window") 521 call <SID>OptionG("twt", &twt) 522 endif 523 call <SID>OptionL("twsl") 524 if exists("&winptydll") 525 call append("$", "winptydll\tname of the winpty dynamic library") 526 call <SID>OptionG("winptydll", &winptydll) 527 endif 528endif 529 530 531call <SID>Header("multiple tab pages") 532call append("$", "showtabline\t0, 1 or 2; when to use a tab pages line") 533call append("$", " \tset stal=" . &stal) 534call append("$", "tabpagemax\tmaximum number of tab pages to open for -p and \"tab all\"") 535call append("$", " \tset tpm=" . &tpm) 536call append("$", "tabline\tcustom tab pages line") 537call <SID>OptionG("tal", &tal) 538if has("gui") 539 call append("$", "guitablabel\tcustom tab page label for the GUI") 540 call <SID>OptionG("gtl", >l) 541 call append("$", "guitabtooltip\tcustom tab page tooltip for the GUI") 542 call <SID>OptionG("gtt", >t) 543endif 544 545 546call <SID>Header("terminal") 547call append("$", "term\tname of the used terminal") 548call <SID>OptionG("term", &term) 549call append("$", "ttytype\talias for 'term'") 550call <SID>OptionG("tty", &tty) 551call append("$", "ttybuiltin\tcheck built-in termcaps first") 552call <SID>BinOptionG("tbi", &tbi) 553call append("$", "ttyfast\tterminal connection is fast") 554call <SID>BinOptionG("tf", &tf) 555call append("$", "weirdinvert\tterminal that requires extra redrawing") 556call <SID>BinOptionG("wiv", &wiv) 557call append("$", "esckeys\trecognize keys that start with <Esc> in Insert mode") 558call <SID>BinOptionG("ek", &ek) 559call append("$", "scrolljump\tminimal number of lines to scroll at a time") 560call append("$", " \tset sj=" . &sj) 561call append("$", "ttyscroll\tmaximum number of lines to use scrolling instead of redrawing") 562call append("$", " \tset tsl=" . &tsl) 563if has("gui") || has("win32") 564 call append("$", "guicursor\tspecifies what the cursor looks like in different modes") 565 call <SID>OptionG("gcr", &gcr) 566endif 567if has("title") 568 let &title = s:old_title 569 call append("$", "title\tshow info in the window title") 570 call <SID>BinOptionG("title", &title) 571 set notitle 572 call append("$", "titlelen\tpercentage of 'columns' used for the window title") 573 call append("$", " \tset titlelen=" . &titlelen) 574 call append("$", "titlestring\twhen not empty, string to be used for the window title") 575 call <SID>OptionG("titlestring", &titlestring) 576 call append("$", "titleold\tstring to restore the title to when exiting Vim") 577 call <SID>OptionG("titleold", &titleold) 578 let &icon = s:old_icon 579 call append("$", "icon\tset the text of the icon for this window") 580 call <SID>BinOptionG("icon", &icon) 581 set noicon 582 call append("$", "iconstring\twhen not empty, text for the icon of this window") 583 call <SID>OptionG("iconstring", &iconstring) 584endif 585if has("win32") 586 call append("$", "restorescreen\trestore the screen contents when exiting Vim") 587 call <SID>BinOptionG("rs", &rs) 588endif 589 590 591call <SID>Header("using the mouse") 592call append("$", "mouse\tlist of flags for using the mouse") 593call <SID>OptionG("mouse", &mouse) 594if has("gui") 595 call append("$", "mousefocus\tthe window with the mouse pointer becomes the current one") 596 call <SID>BinOptionG("mousef", &mousef) 597endif 598call append("$", "scrollfocus\tthe window with the mouse pointer scrolls with the mouse wheel") 599call <SID>BinOptionG("scf", &scf) 600if has("gui") 601 call append("$", "mousehide\thide the mouse pointer while typing") 602 call <SID>BinOptionG("mh", &mh) 603endif 604call append("$", "mousemodel\t\"extend\", \"popup\" or \"popup_setpos\"; what the right") 605call append("$", "\tmouse button is used for") 606call <SID>OptionG("mousem", &mousem) 607call append("$", "mousetime\tmaximum time in msec to recognize a double-click") 608call append("$", " \tset mouset=" . &mouset) 609call append("$", "ttymouse\t\"xterm\", \"xterm2\", \"dec\" or \"netterm\"; type of mouse") 610call <SID>OptionG("ttym", &ttym) 611if has("mouseshape") 612 call append("$", "mouseshape\twhat the mouse pointer looks like in different modes") 613 call <SID>OptionG("mouses", &mouses) 614endif 615 616 617if has("gui") 618 call <SID>Header("GUI") 619 call append("$", "guifont\tlist of font names to be used in the GUI") 620 call <SID>OptionG("gfn", &gfn) 621 if has("xfontset") 622 call append("$", "guifontset\tpair of fonts to be used, for multibyte editing") 623 call <SID>OptionG("gfs", &gfs) 624 endif 625 call append("$", "guifontwide\tlist of font names to be used for double-wide characters") 626 call <SID>OptionG("gfw", &gfw) 627 if has("mac") 628 call append("$", "antialias\tuse smooth, antialiased fonts") 629 call <SID>BinOptionG("anti", &anti) 630 endif 631 call append("$", "guioptions\tlist of flags that specify how the GUI works") 632 call <SID>OptionG("go", &go) 633 if has("gui_gtk") 634 call append("$", "toolbar\t\"icons\", \"text\" and/or \"tooltips\"; how to show the toolbar") 635 call <SID>OptionG("tb", &tb) 636 if has("gui_gtk2") 637 call append("$", "toolbariconsize\tsize of toolbar icons") 638 call <SID>OptionG("tbis", &tbis) 639 endif 640 call append("$", "guiheadroom\troom (in pixels) left above/below the window") 641 call append("$", " \tset ghr=" . &ghr) 642 endif 643 if has("directx") 644 call append("$", "renderoptions\toptions for text rendering") 645 call <SID>OptionG("rop", &rop) 646 endif 647 call append("$", "guipty\tuse a pseudo-tty for I/O to external commands") 648 call <SID>BinOptionG("guipty", &guipty) 649 if has("browse") 650 call append("$", "browsedir\t\"last\", \"buffer\" or \"current\": which directory used for the file browser") 651 call <SID>OptionG("bsdir", &bsdir) 652 endif 653 if has("multi_lang") 654 call append("$", "langmenu\tlanguage to be used for the menus") 655 call <SID>OptionG("langmenu", &lm) 656 endif 657 call append("$", "menuitems\tmaximum number of items in one menu") 658 call append("$", " \tset mis=" . &mis) 659 if has("winaltkeys") 660 call append("$", "winaltkeys\t\"no\", \"yes\" or \"menu\"; how to use the ALT key") 661 call <SID>OptionG("wak", &wak) 662 endif 663 call append("$", "linespace\tnumber of pixel lines to use between characters") 664 call append("$", " \tset lsp=" . &lsp) 665 if has("balloon_eval") || has("balloon_eval_term") 666 call append("$", "balloondelay\tdelay in milliseconds before a balloon may pop up") 667 call append("$", " \tset bdlay=" . &bdlay) 668 if has("balloon_eval") 669 call append("$", "ballooneval\tuse balloon evaluation in the GUI") 670 call <SID>BinOptionG("beval", &beval) 671 endif 672 if has("balloon_eval_term") 673 call append("$", "balloonevalterm\tuse balloon evaluation in the terminal") 674 call <SID>BinOptionG("bevalterm", &beval) 675 endif 676 if has("eval") 677 call append("$", "balloonexpr\texpression to show in balloon eval") 678 call append("$", " \tset bexpr=" . &bexpr) 679 endif 680 endif 681 if exists("+macatsui") 682 call append("$", "macatsui\tuse ATSUI text drawing; disable to avoid display problems") 683 call <SID>OptionG("macatsui", &macatsui) 684 endif 685endif 686 687if has("printer") 688 call <SID>Header("printing") 689 call append("$", "printoptions\tlist of items that control the format of :hardcopy output") 690 call <SID>OptionG("popt", &popt) 691 call append("$", "printdevice\tname of the printer to be used for :hardcopy") 692 call <SID>OptionG("pdev", &pdev) 693 if has("postscript") 694 call append("$", "printexpr\texpression used to print the PostScript file for :hardcopy") 695 call <SID>OptionG("pexpr", &pexpr) 696 endif 697 call append("$", "printfont\tname of the font to be used for :hardcopy") 698 call <SID>OptionG("pfn", &pfn) 699 call append("$", "printheader\tformat of the header used for :hardcopy") 700 call <SID>OptionG("pheader", &pheader) 701 if has("postscript") 702 call append("$", "printencoding\tencoding used to print the PostScript file for :hardcopy") 703 call <SID>OptionG("penc", &penc) 704 endif 705 call append("$", "printmbcharset\tthe CJK character set to be used for CJK output from :hardcopy") 706 call <SID>OptionG("pmbcs", &pmbcs) 707 call append("$", "printmbfont\tlist of font names to be used for CJK output from :hardcopy") 708 call <SID>OptionG("pmbfn", &pmbfn) 709endif 710 711call <SID>Header("messages and info") 712call append("$", "terse\tadd 's' flag in 'shortmess' (don't show search message)") 713call <SID>BinOptionG("terse", &terse) 714call append("$", "shortmess\tlist of flags to make messages shorter") 715call <SID>OptionG("shm", &shm) 716call append("$", "showcmd\tshow (partial) command keys in the status line") 717let &sc = s:old_sc 718call <SID>BinOptionG("sc", &sc) 719set nosc 720call append("$", "showmode\tdisplay the current mode in the status line") 721call <SID>BinOptionG("smd", &smd) 722call append("$", "ruler\tshow cursor position below each window") 723let &ru = s:old_ru 724call <SID>BinOptionG("ru", &ru) 725set noru 726if has("statusline") 727 call append("$", "rulerformat\talternate format to be used for the ruler") 728 call <SID>OptionG("ruf", &ruf) 729endif 730call append("$", "report\tthreshold for reporting number of changed lines") 731call append("$", " \tset report=" . &report) 732call append("$", "verbose\tthe higher the more messages are given") 733call append("$", " \tset vbs=" . &vbs) 734call append("$", "verbosefile\tfile to write messages in") 735call <SID>OptionG("vfile", &vfile) 736call append("$", "more\tpause listings when the screen is full") 737call <SID>BinOptionG("more", &more) 738if has("dialog_con") || has("dialog_gui") 739 call append("$", "confirm\tstart a dialog when a command fails") 740 call <SID>BinOptionG("cf", &cf) 741endif 742call append("$", "errorbells\tring the bell for error messages") 743call <SID>BinOptionG("eb", &eb) 744call append("$", "visualbell\tuse a visual bell instead of beeping") 745call <SID>BinOptionG("vb", &vb) 746call append("$", "belloff\tdo not ring the bell for these reasons") 747call <SID>OptionG("belloff", &belloff) 748if has("multi_lang") 749 call append("$", "helplang\tlist of preferred languages for finding help") 750 call <SID>OptionG("hlg", &hlg) 751endif 752 753 754call <SID>Header("selecting text") 755call append("$", "selection\t\"old\", \"inclusive\" or \"exclusive\"; how selecting text behaves") 756call <SID>OptionG("sel", &sel) 757call append("$", "selectmode\t\"mouse\", \"key\" and/or \"cmd\"; when to start Select mode") 758call append("$", "\tinstead of Visual mode") 759call <SID>OptionG("slm", &slm) 760if has("clipboard") 761 call append("$", "clipboard\t\"unnamed\" to use the * register like unnamed register") 762 call append("$", "\t\"autoselect\" to always put selected text on the clipboard") 763 call <SID>OptionG("cb", &cb) 764endif 765call append("$", "keymodel\t\"startsel\" and/or \"stopsel\"; what special keys can do") 766call <SID>OptionG("km", &km) 767 768 769call <SID>Header("editing text") 770call append("$", "undolevels\tmaximum number of changes that can be undone") 771call append("$", "\t(global or local to buffer)") 772call append("$", " \tset ul=" . s:old_ul) 773call append("$", "undofile\tautomatically save and restore undo history") 774call <SID>BinOptionG("udf", &udf) 775call append("$", "undodir\tlist of directories for undo files") 776call <SID>OptionG("udir", &udir) 777call append("$", "undoreload\tmaximum number lines to save for undo on a buffer reload") 778call append("$", " \tset ur=" . &ur) 779call append("$", "modified\tchanges have been made and not written to a file") 780call append("$", "\t(local to buffer)") 781call <SID>BinOptionL("mod") 782call append("$", "readonly\tbuffer is not to be written") 783call append("$", "\t(local to buffer)") 784call <SID>BinOptionL("ro") 785call append("$", "modifiable\tchanges to the text are not possible") 786call append("$", "\t(local to buffer)") 787call <SID>BinOptionL("ma") 788call append("$", "textwidth\tline length above which to break a line") 789call append("$", "\t(local to buffer)") 790call <SID>OptionL("tw") 791call append("$", "wrapmargin\tmargin from the right in which to break a line") 792call append("$", "\t(local to buffer)") 793call <SID>OptionL("wm") 794call append("$", "backspace\tspecifies what <BS>, CTRL-W, etc. can do in Insert mode") 795call append("$", " \tset bs=" . &bs) 796call append("$", "comments\tdefinition of what comment lines look like") 797call append("$", "\t(local to buffer)") 798call <SID>OptionL("com") 799call append("$", "formatoptions\tlist of flags that tell how automatic formatting works") 800call append("$", "\t(local to buffer)") 801call <SID>OptionL("fo") 802call append("$", "formatlistpat\tpattern to recognize a numbered list") 803call append("$", "\t(local to buffer)") 804call <SID>OptionL("flp") 805if has("eval") 806 call append("$", "formatexpr\texpression used for \"gq\" to format lines") 807 call append("$", "\t(local to buffer)") 808 call <SID>OptionL("fex") 809endif 810if has("insert_expand") 811 call append("$", "complete\tspecifies how Insert mode completion works for CTRL-N and CTRL-P") 812 call append("$", "\t(local to buffer)") 813 call <SID>OptionL("cpt") 814 call append("$", "completeopt\twhether to use a popup menu for Insert mode completion") 815 call <SID>OptionG("cot", &cot) 816 if exists("+completepopup") 817 call append("$", "completepopup\toptions for the Insert mode completion info popup") 818 call <SID>OptionG("cpp", &cpp) 819 endif 820 call append("$", "pumheight\tmaximum height of the popup menu") 821 call <SID>OptionG("ph", &ph) 822 call append("$", "pumwidth\tminimum width of the popup menu") 823 call <SID>OptionG("pw", &pw) 824 call append("$", "completefunc\tuser defined function for Insert mode completion") 825 call append("$", "\t(local to buffer)") 826 call <SID>OptionL("cfu") 827 call append("$", "omnifunc\tfunction for filetype-specific Insert mode completion") 828 call append("$", "\t(local to buffer)") 829 call <SID>OptionL("ofu") 830 call append("$", "dictionary\tlist of dictionary files for keyword completion") 831 call append("$", "\t(global or local to buffer)") 832 call <SID>OptionG("dict", &dict) 833 call append("$", "thesaurus\tlist of thesaurus files for keyword completion") 834 call append("$", "\t(global or local to buffer)") 835 call <SID>OptionG("tsr", &tsr) 836endif 837call append("$", "infercase\tadjust case of a keyword completion match") 838call append("$", "\t(local to buffer)") 839call <SID>BinOptionL("inf") 840if has("digraphs") 841 call append("$", "digraph\tenable entering digraphs with c1 <BS> c2") 842 call <SID>BinOptionG("dg", &dg) 843endif 844call append("$", "tildeop\tthe \"~\" command behaves like an operator") 845call <SID>BinOptionG("top", &top) 846call append("$", "operatorfunc\tfunction called for the\"g@\" operator") 847call <SID>OptionG("opfunc", &opfunc) 848call append("$", "showmatch\twhen inserting a bracket, briefly jump to its match") 849call <SID>BinOptionG("sm", &sm) 850call append("$", "matchtime\ttenth of a second to show a match for 'showmatch'") 851call append("$", " \tset mat=" . &mat) 852call append("$", "matchpairs\tlist of pairs that match for the \"%\" command") 853call append("$", "\t(local to buffer)") 854call <SID>OptionL("mps") 855call append("$", "joinspaces\tuse two spaces after '.' when joining a line") 856call <SID>BinOptionG("js", &js) 857call append("$", "nrformats\t\"alpha\", \"octal\" and/or \"hex\"; number formats recognized for") 858call append("$", "\tCTRL-A and CTRL-X commands") 859call append("$", "\t(local to buffer)") 860call <SID>OptionL("nf") 861 862 863call <SID>Header("tabs and indenting") 864call append("$", "tabstop\tnumber of spaces a <Tab> in the text stands for") 865call append("$", "\t(local to buffer)") 866call <SID>OptionL("ts") 867call append("$", "shiftwidth\tnumber of spaces used for each step of (auto)indent") 868call append("$", "\t(local to buffer)") 869call <SID>OptionL("sw") 870if has("vartabs") 871 call append("$", "vartabstop\tlist of number of spaces a tab counts for") 872 call append("$", "\t(local to buffer)") 873 call <SID>OptionL("vts") 874 call append("$", "varsofttabstop\tlist of number of spaces a soft tabsstop counts for") 875 call append("$", "\t(local to buffer)") 876 call <SID>OptionL("vsts") 877endif 878call append("$", "smarttab\ta <Tab> in an indent inserts 'shiftwidth' spaces") 879call <SID>BinOptionG("sta", &sta) 880call append("$", "softtabstop\tif non-zero, number of spaces to insert for a <Tab>") 881call append("$", "\t(local to buffer)") 882call <SID>OptionL("sts") 883call append("$", "shiftround\tround to 'shiftwidth' for \"<<\" and \">>\"") 884call <SID>BinOptionG("sr", &sr) 885call append("$", "expandtab\texpand <Tab> to spaces in Insert mode") 886call append("$", "\t(local to buffer)") 887call <SID>BinOptionL("et") 888call append("$", "autoindent\tautomatically set the indent of a new line") 889call append("$", "\t(local to buffer)") 890call <SID>BinOptionL("ai") 891if has("smartindent") 892 call append("$", "smartindent\tdo clever autoindenting") 893 call append("$", "\t(local to buffer)") 894 call <SID>BinOptionL("si") 895endif 896if has("cindent") 897 call append("$", "cindent\tenable specific indenting for C code") 898 call append("$", "\t(local to buffer)") 899 call <SID>BinOptionL("cin") 900 call append("$", "cinoptions\toptions for C-indenting") 901 call append("$", "\t(local to buffer)") 902 call <SID>OptionL("cino") 903 call append("$", "cinkeys\tkeys that trigger C-indenting in Insert mode") 904 call append("$", "\t(local to buffer)") 905 call <SID>OptionL("cink") 906 call append("$", "cinwords\tlist of words that cause more C-indent") 907 call append("$", "\t(local to buffer)") 908 call <SID>OptionL("cinw") 909 call append("$", "indentexpr\texpression used to obtain the indent of a line") 910 call append("$", "\t(local to buffer)") 911 call <SID>OptionL("inde") 912 call append("$", "indentkeys\tkeys that trigger indenting with 'indentexpr' in Insert mode") 913 call append("$", "\t(local to buffer)") 914 call <SID>OptionL("indk") 915endif 916call append("$", "copyindent\tcopy whitespace for indenting from previous line") 917call append("$", "\t(local to buffer)") 918call <SID>BinOptionL("ci") 919call append("$", "preserveindent\tpreserve kind of whitespace when changing indent") 920call append("$", "\t(local to buffer)") 921call <SID>BinOptionL("pi") 922if has("lispindent") 923 call append("$", "lisp\tenable lisp mode") 924 call append("$", "\t(local to buffer)") 925 call <SID>BinOptionL("lisp") 926 call append("$", "lispwords\twords that change how lisp indenting works") 927 call <SID>OptionL("lw") 928endif 929 930 931if has("folding") 932 call <SID>Header("folding") 933 call append("$", "foldenable\tset to display all folds open") 934 call append("$", "\t(local to window)") 935 call <SID>BinOptionL("fen") 936 call append("$", "foldlevel\tfolds with a level higher than this number will be closed") 937 call append("$", "\t(local to window)") 938 call <SID>OptionL("fdl") 939 call append("$", "foldlevelstart\tvalue for 'foldlevel' when starting to edit a file") 940 call append("$", " \tset fdls=" . &fdls) 941 call append("$", "foldcolumn\twidth of the column used to indicate folds") 942 call append("$", "\t(local to window)") 943 call <SID>OptionL("fdc") 944 call append("$", "foldtext\texpression used to display the text of a closed fold") 945 call append("$", "\t(local to window)") 946 call <SID>OptionL("fdt") 947 call append("$", "foldclose\tset to \"all\" to close a fold when the cursor leaves it") 948 call <SID>OptionG("fcl", &fcl) 949 call append("$", "foldopen\tspecifies for which commands a fold will be opened") 950 call <SID>OptionG("fdo", &fdo) 951 call append("$", "foldminlines\tminimum number of screen lines for a fold to be closed") 952 call append("$", "\t(local to window)") 953 call <SID>OptionL("fml") 954 call append("$", "commentstring\ttemplate for comments; used to put the marker in") 955 call <SID>OptionL("cms") 956 call append("$", "foldmethod\tfolding type: \"manual\", \"indent\", \"expr\", \"marker\" or \"syntax\"") 957 call append("$", "\t(local to window)") 958 call <SID>OptionL("fdm") 959 call append("$", "foldexpr\texpression used when 'foldmethod' is \"expr\"") 960 call append("$", "\t(local to window)") 961 call <SID>OptionL("fde") 962 call append("$", "foldignore\tused to ignore lines when 'foldmethod' is \"indent\"") 963 call append("$", "\t(local to window)") 964 call <SID>OptionL("fdi") 965 call append("$", "foldmarker\tmarkers used when 'foldmethod' is \"marker\"") 966 call append("$", "\t(local to window)") 967 call <SID>OptionL("fmr") 968 call append("$", "foldnestmax\tmaximum fold depth for when 'foldmethod' is \"indent\" or \"syntax\"") 969 call append("$", "\t(local to window)") 970 call <SID>OptionL("fdn") 971endif 972 973 974if has("diff") 975 call <SID>Header("diff mode") 976 call append("$", "diff\tuse diff mode for the current window") 977 call append("$", "\t(local to window)") 978 call <SID>BinOptionL("diff") 979 call append("$", "diffopt\toptions for using diff mode") 980 call <SID>OptionG("dip", &dip) 981 call append("$", "diffexpr\texpression used to obtain a diff file") 982 call <SID>OptionG("dex", &dex) 983 call append("$", "patchexpr\texpression used to patch a file") 984 call <SID>OptionG("pex", &pex) 985endif 986 987 988call <SID>Header("mapping") 989call append("$", "maxmapdepth\tmaximum depth of mapping") 990call append("$", " \tset mmd=" . &mmd) 991call append("$", "remap\trecognize mappings in mapped keys") 992call <SID>BinOptionG("remap", &remap) 993call append("$", "timeout\tallow timing out halfway into a mapping") 994call <SID>BinOptionG("to", &to) 995call append("$", "ttimeout\tallow timing out halfway into a key code") 996call <SID>BinOptionG("ttimeout", &ttimeout) 997call append("$", "timeoutlen\ttime in msec for 'timeout'") 998call append("$", " \tset tm=" . &tm) 999call append("$", "ttimeoutlen\ttime in msec for 'ttimeout'") 1000call append("$", " \tset ttm=" . &ttm) 1001 1002 1003call <SID>Header("reading and writing files") 1004call append("$", "modeline\tenable using settings from modelines when reading a file") 1005call append("$", "\t(local to buffer)") 1006call <SID>BinOptionL("ml") 1007call append("$", "modelineexpr\tallow setting expression options from a modeline") 1008call <SID>BinOptionG("mle", &mle) 1009call append("$", "modelines\tnumber of lines to check for modelines") 1010call append("$", " \tset mls=" . &mls) 1011call append("$", "binary\tbinary file editing") 1012call append("$", "\t(local to buffer)") 1013call <SID>BinOptionL("bin") 1014call append("$", "endofline\tlast line in the file has an end-of-line") 1015call append("$", "\t(local to buffer)") 1016call <SID>BinOptionL("eol") 1017call append("$", "fixendofline\tfixes missing end-of-line at end of text file") 1018call append("$", "\t(local to buffer)") 1019call <SID>BinOptionL("fixeol") 1020call append("$", "bomb\tprepend a Byte Order Mark to the file") 1021call append("$", "\t(local to buffer)") 1022call <SID>BinOptionL("bomb") 1023call append("$", "fileformat\tend-of-line format: \"dos\", \"unix\" or \"mac\"") 1024call append("$", "\t(local to buffer)") 1025call <SID>OptionL("ff") 1026call append("$", "fileformats\tlist of file formats to look for when editing a file") 1027call <SID>OptionG("ffs", &ffs) 1028call append("$", "textmode\tobsolete, use 'fileformat'") 1029call append("$", "\t(local to buffer)") 1030call <SID>BinOptionL("tx") 1031call append("$", "textauto\tobsolete, use 'fileformats'") 1032call <SID>BinOptionG("ta", &ta) 1033call append("$", "write\twriting files is allowed") 1034call <SID>BinOptionG("write", &write) 1035call append("$", "writebackup\twrite a backup file before overwriting a file") 1036call <SID>BinOptionG("wb", &wb) 1037call append("$", "backup\tkeep a backup after overwriting a file") 1038call <SID>BinOptionG("bk", &bk) 1039call append("$", "backupskip\tpatterns that specify for which files a backup is not made") 1040call append("$", " \tset bsk=" . &bsk) 1041call append("$", "backupcopy\twhether to make the backup as a copy or rename the existing file") 1042call append("$", "\t(global or local to buffer)") 1043call append("$", " \tset bkc=" . &bkc) 1044call append("$", "backupdir\tlist of directories to put backup files in") 1045call <SID>OptionG("bdir", &bdir) 1046call append("$", "backupext\tfile name extension for the backup file") 1047call <SID>OptionG("bex", &bex) 1048call append("$", "autowrite\tautomatically write a file when leaving a modified buffer") 1049call <SID>BinOptionG("aw", &aw) 1050call append("$", "autowriteall\tas 'autowrite', but works with more commands") 1051call <SID>BinOptionG("awa", &awa) 1052call append("$", "writeany\talways write without asking for confirmation") 1053call <SID>BinOptionG("wa", &wa) 1054call append("$", "autoread\tautomatically read a file when it was modified outside of Vim") 1055call append("$", "\t(global or local to buffer)") 1056call <SID>BinOptionG("ar", &ar) 1057call append("$", "patchmode\tkeep oldest version of a file; specifies file name extension") 1058call <SID>OptionG("pm", &pm) 1059call append("$", "fsync\tforcibly sync the file to disk after writing it") 1060call <SID>BinOptionG("fs", &fs) 1061call append("$", "shortname\tuse 8.3 file names") 1062call append("$", "\t(local to buffer)") 1063call <SID>BinOptionL("sn") 1064call append("$", "cryptmethod\tencryption method for file writing: zip or blowfish") 1065call append("$", "\t(local to buffer)") 1066call <SID>OptionL("cm") 1067 1068 1069call <SID>Header("the swap file") 1070call append("$", "directory\tlist of directories for the swap file") 1071call <SID>OptionG("dir", &dir) 1072call append("$", "swapfile\tuse a swap file for this buffer") 1073call append("$", "\t(local to buffer)") 1074call <SID>BinOptionL("swf") 1075call append("$", "swapsync\t\"sync\", \"fsync\" or empty; how to flush a swap file to disk") 1076call <SID>OptionG("sws", &sws) 1077call append("$", "updatecount\tnumber of characters typed to cause a swap file update") 1078call append("$", " \tset uc=" . &uc) 1079call append("$", "updatetime\ttime in msec after which the swap file will be updated") 1080call append("$", " \tset ut=" . &ut) 1081call append("$", "maxmem\tmaximum amount of memory in Kbyte used for one buffer") 1082call append("$", " \tset mm=" . &mm) 1083call append("$", "maxmemtot\tmaximum amount of memory in Kbyte used for all buffers") 1084call append("$", " \tset mmt=" . &mmt) 1085 1086 1087call <SID>Header("command line editing") 1088call append("$", "history\thow many command lines are remembered ") 1089call append("$", " \tset hi=" . &hi) 1090call append("$", "wildchar\tkey that triggers command-line expansion") 1091call append("$", " \tset wc=" . &wc) 1092call append("$", "wildcharm\tlike 'wildchar' but can also be used in a mapping") 1093call append("$", " \tset wcm=" . &wcm) 1094call append("$", "wildmode\tspecifies how command line completion works") 1095call <SID>OptionG("wim", &wim) 1096if has("wildoptions") 1097 call append("$", "wildoptions\tempty or \"tagfile\" to list file name of matching tags") 1098 call <SID>OptionG("wop", &wop) 1099endif 1100call append("$", "suffixes\tlist of file name extensions that have a lower priority") 1101call <SID>OptionG("su", &su) 1102if has("file_in_path") 1103 call append("$", "suffixesadd\tlist of file name extensions added when searching for a file") 1104 call append("$", "\t(local to buffer)") 1105 call <SID>OptionL("sua") 1106endif 1107if has("wildignore") 1108 call append("$", "wildignore\tlist of patterns to ignore files for file name completion") 1109 call <SID>OptionG("wig", &wig) 1110endif 1111call append("$", "fileignorecase\tignore case when using file names") 1112call <SID>BinOptionG("fic", &fic) 1113call append("$", "wildignorecase\tignore case when completing file names") 1114call <SID>BinOptionG("wic", &wic) 1115if has("wildmenu") 1116 call append("$", "wildmenu\tcommand-line completion shows a list of matches") 1117 call <SID>BinOptionG("wmnu", &wmnu) 1118endif 1119call append("$", "cedit\tkey used to open the command-line window") 1120call <SID>OptionG("cedit", &cedit) 1121call append("$", "cmdwinheight\theight of the command-line window") 1122call <SID>OptionG("cwh", &cwh) 1123 1124 1125call <SID>Header("executing external commands") 1126call append("$", "shell\tname of the shell program used for external commands") 1127call <SID>OptionG("sh", &sh) 1128if has("amiga") 1129 call append("$", "shelltype\twhen to use the shell or directly execute a command") 1130 call append("$", " \tset st=" . &st) 1131endif 1132call append("$", "shellquote\tcharacter(s) to enclose a shell command in") 1133call <SID>OptionG("shq", &shq) 1134call append("$", "shellxquote\tlike 'shellquote' but include the redirection") 1135call <SID>OptionG("sxq", &sxq) 1136call append("$", "shellxescape\tcharacters to escape when 'shellxquote' is (") 1137call <SID>OptionG("sxe", &sxe) 1138call append("$", "shellcmdflag\targument for 'shell' to execute a command") 1139call <SID>OptionG("shcf", &shcf) 1140call append("$", "shellredir\tused to redirect command output to a file") 1141call <SID>OptionG("srr", &srr) 1142call append("$", "shelltemp\tuse a temp file for shell commands instead of using a pipe") 1143call <SID>BinOptionG("stmp", &stmp) 1144call append("$", "equalprg\tprogram used for \"=\" command") 1145call append("$", "\t(global or local to buffer)") 1146call <SID>OptionG("ep", &ep) 1147call append("$", "formatprg\tprogram used to format lines with \"gq\" command") 1148call <SID>OptionG("fp", &fp) 1149call append("$", "keywordprg\tprogram used for the \"K\" command") 1150call <SID>OptionG("kp", &kp) 1151call append("$", "warn\twarn when using a shell command and a buffer has changes") 1152call <SID>BinOptionG("warn", &warn) 1153 1154 1155if has("quickfix") 1156 call <SID>Header("running make and jumping to errors") 1157 call append("$", "errorfile\tname of the file that contains error messages") 1158 call <SID>OptionG("ef", &ef) 1159 call append("$", "errorformat\tlist of formats for error messages") 1160 call append("$", "\t(global or local to buffer)") 1161 call <SID>OptionG("efm", &efm) 1162 call append("$", "makeprg\tprogram used for the \":make\" command") 1163 call append("$", "\t(global or local to buffer)") 1164 call <SID>OptionG("mp", &mp) 1165 call append("$", "shellpipe\tstring used to put the output of \":make\" in the error file") 1166 call <SID>OptionG("sp", &sp) 1167 call append("$", "makeef\tname of the errorfile for the 'makeprg' command") 1168 call <SID>OptionG("mef", &mef) 1169 call append("$", "grepprg\tprogram used for the \":grep\" command") 1170 call append("$", "\t(global or local to buffer)") 1171 call <SID>OptionG("gp", &gp) 1172 call append("$", "grepformat\tlist of formats for output of 'grepprg'") 1173 call <SID>OptionG("gfm", &gfm) 1174 call append("$", "makeencoding\tencoding of the \":make\" and \":grep\" output") 1175 call append("$", "\t(global or local to buffer)") 1176 call <SID>OptionG("menc", &menc) 1177endif 1178 1179 1180if has("win32") || has("osfiletype") 1181 call <SID>Header("system specific") 1182 if has("osfiletype") 1183 call append("$", "osfiletype\tOS-specific information about the type of file") 1184 call append("$", "\t(local to buffer)") 1185 call <SID>OptionL("oft") 1186 endif 1187 if has("win32") 1188 call append("$", "shellslash\tuse forward slashes in file names; for Unix-like shells") 1189 call <SID>BinOptionG("ssl", &ssl) 1190 call append("$", "completeslash\tspecifies slash/backslash used for completion") 1191 call <SID>OptionG("csl", &csl) 1192 endif 1193endif 1194 1195 1196call <SID>Header("language specific") 1197call append("$", "isfname\tspecifies the characters in a file name") 1198call <SID>OptionG("isf", &isf) 1199call append("$", "isident\tspecifies the characters in an identifier") 1200call <SID>OptionG("isi", &isi) 1201call append("$", "iskeyword\tspecifies the characters in a keyword") 1202call append("$", "\t(local to buffer)") 1203call <SID>OptionL("isk") 1204call append("$", "isprint\tspecifies printable characters") 1205call <SID>OptionG("isp", &isp) 1206if has("textobjects") 1207 call append("$", "quoteescape\tspecifies escape characters in a string") 1208 call append("$", "\t(local to buffer)") 1209 call <SID>OptionL("qe") 1210endif 1211if has("rightleft") 1212 call append("$", "rightleft\tdisplay the buffer right-to-left") 1213 call append("$", "\t(local to window)") 1214 call <SID>BinOptionL("rl") 1215 call append("$", "rightleftcmd\twhen to edit the command-line right-to-left") 1216 call append("$", "\t(local to window)") 1217 call <SID>OptionL("rlc") 1218 call append("$", "revins\tinsert characters backwards") 1219 call <SID>BinOptionG("ri", &ri) 1220 call append("$", "allowrevins\tallow CTRL-_ in Insert and Command-line mode to toggle 'revins'") 1221 call <SID>BinOptionG("ari", &ari) 1222 call append("$", "aleph\tthe ASCII code for the first letter of the Hebrew alphabet") 1223 call append("$", " \tset al=" . &al) 1224 call append("$", "hkmap\tuse Hebrew keyboard mapping") 1225 call <SID>BinOptionG("hk", &hk) 1226 call append("$", "hkmapp\tuse phonetic Hebrew keyboard mapping") 1227 call <SID>BinOptionG("hkp", &hkp) 1228endif 1229if has("farsi") 1230 call append("$", "altkeymap\tuse Farsi as the second language when 'revins' is set") 1231 call <SID>BinOptionG("akm", &akm) 1232 call append("$", "fkmap\tuse Farsi keyboard mapping") 1233 call <SID>BinOptionG("fk", &fk) 1234endif 1235if has("arabic") 1236 call append("$", "arabic\tprepare for editing Arabic text") 1237 call append("$", "\t(local to window)") 1238 call <SID>BinOptionL("arab") 1239 call append("$", "arabicshape\tperform shaping of Arabic characters") 1240 call <SID>BinOptionG("arshape", &arshape) 1241 call append("$", "termbidi\tterminal will perform bidi handling") 1242 call <SID>BinOptionG("tbidi", &tbidi) 1243endif 1244if has("keymap") 1245 call append("$", "keymap\tname of a keyboard mapping") 1246 call <SID>OptionL("kmp") 1247endif 1248if has("langmap") 1249 call append("$", "langmap\tlist of characters that are translated in Normal mode") 1250 call <SID>OptionG("lmap", &lmap) 1251 call append("$", "langremap\tapply 'langmap' to mapped characters") 1252 call <SID>BinOptionG("lrm", &lrm) 1253endif 1254if has("xim") 1255 call append("$", "imdisable\twhen set never use IM; overrules following IM options") 1256 call <SID>BinOptionG("imd", &imd) 1257endif 1258call append("$", "iminsert\tin Insert mode: 1: use :lmap; 2: use IM; 0: neither") 1259call append("$", "\t(local to window)") 1260call <SID>OptionL("imi") 1261call append("$", "imstyle\tinput method style, 0: on-the-spot, 1: over-the-spot") 1262call <SID>OptionG("imst", &imst) 1263call append("$", "imsearch\tentering a search pattern: 1: use :lmap; 2: use IM; 0: neither") 1264call append("$", "\t(local to window)") 1265call <SID>OptionL("ims") 1266if has("xim") 1267 call append("$", "imcmdline\twhen set always use IM when starting to edit a command line") 1268 call <SID>BinOptionG("imc", &imc) 1269 call append("$", "imstatusfunc\tfunction to obtain IME status") 1270 call <SID>OptionG("imsf", &imsf) 1271 call append("$", "imactivatefunc\tfunction to enable/disable IME") 1272 call <SID>OptionG("imaf", &imaf) 1273endif 1274 1275 1276call <SID>Header("multi-byte characters") 1277call append("$", "encoding\tcharacter encoding used in Vim: \"latin1\", \"utf-8\"") 1278call append("$", "\t\"euc-jp\", \"big5\", etc.") 1279call <SID>OptionG("enc", &enc) 1280call append("$", "fileencoding\tcharacter encoding for the current file") 1281call append("$", "\t(local to buffer)") 1282call <SID>OptionL("fenc") 1283call append("$", "fileencodings\tautomatically detected character encodings") 1284call <SID>OptionG("fencs", &fencs) 1285call append("$", "termencoding\tcharacter encoding used by the terminal") 1286call <SID>OptionG("tenc", &tenc) 1287call append("$", "charconvert\texpression used for character encoding conversion") 1288call <SID>OptionG("ccv", &ccv) 1289call append("$", "delcombine\tdelete combining (composing) characters on their own") 1290call <SID>BinOptionG("deco", &deco) 1291call append("$", "maxcombine\tmaximum number of combining (composing) characters displayed") 1292call <SID>OptionG("mco", &mco) 1293if has("xim") && has("gui_gtk") 1294 call append("$", "imactivatekey\tkey that activates the X input method") 1295 call <SID>OptionG("imak", &imak) 1296endif 1297call append("$", "ambiwidth\twidth of ambiguous width characters") 1298call <SID>OptionG("ambw", &ambw) 1299call append("$", "emoji\temoji characters are full width") 1300call <SID>BinOptionG("emo", &emo) 1301 1302 1303call <SID>Header("various") 1304call append("$", "virtualedit\twhen to use virtual editing: \"block\", \"insert\" and/or \"all\"") 1305call <SID>OptionG("ve", &ve) 1306call append("$", "eventignore\tlist of autocommand events which are to be ignored") 1307call <SID>OptionG("ei", &ei) 1308call append("$", "loadplugins\tload plugin scripts when starting up") 1309call <SID>BinOptionG("lpl", &lpl) 1310call append("$", "exrc\tenable reading .vimrc/.exrc/.gvimrc in the current directory") 1311call <SID>BinOptionG("ex", &ex) 1312call append("$", "secure\tsafer working with script files in the current directory") 1313call <SID>BinOptionG("secure", &secure) 1314call append("$", "gdefault\tuse the 'g' flag for \":substitute\"") 1315call <SID>BinOptionG("gd", &gd) 1316call append("$", "edcompatible\t'g' and 'c' flags of \":substitute\" toggle") 1317call <SID>BinOptionG("ed", &ed) 1318if exists("+opendevice") 1319 call append("$", "opendevice\tallow reading/writing devices") 1320 call <SID>BinOptionG("odev", &odev) 1321endif 1322if exists("+maxfuncdepth") 1323 call append("$", "maxfuncdepth\tmaximum depth of function calls") 1324 call append("$", " \tset mfd=" . &mfd) 1325endif 1326if has("mksession") 1327 call append("$", "sessionoptions\tlist of words that specifies what to put in a session file") 1328 call <SID>OptionG("ssop", &ssop) 1329 call append("$", "viewoptions\tlist of words that specifies what to save for :mkview") 1330 call <SID>OptionG("vop", &vop) 1331 call append("$", "viewdir\tdirectory where to store files with :mkview") 1332 call <SID>OptionG("vdir", &vdir) 1333endif 1334if has("viminfo") 1335 call append("$", "viminfo\tlist that specifies what to write in the viminfo file") 1336 call <SID>OptionG("vi", &vi) 1337 call append("$", "viminfofile\tfile name used for the viminfo file") 1338 call <SID>OptionG("vif", &vif) 1339endif 1340if has("quickfix") 1341 call append("$", "bufhidden\twhat happens with a buffer when it's no longer in a window") 1342 call append("$", "\t(local to buffer)") 1343 call <SID>OptionL("bh") 1344 call append("$", "buftype\t\"\", \"nofile\", \"nowrite\" or \"quickfix\": type of buffer") 1345 call append("$", "\t(local to buffer)") 1346 call <SID>OptionL("bt") 1347endif 1348call append("$", "buflisted\twhether the buffer shows up in the buffer list") 1349call append("$", "\t(local to buffer)") 1350call <SID>BinOptionL("bl") 1351call append("$", "debug\tset to \"msg\" to see all error messages") 1352call append("$", " \tset debug=" . &debug) 1353if has("signs") 1354 call append("$", "signcolumn\twhether to show the signcolumn") 1355 call append("$", "\t(local to window)") 1356 call <SID>OptionL("scl") 1357endif 1358if has("mzscheme") 1359 call append("$", "mzquantum\tinterval in milliseconds between polls for MzScheme threads") 1360 call append("$", " \tset mzq=" . &mzq) 1361endif 1362if exists("&luadll") 1363 call append("$", "luadll\tname of the Lua dynamic library") 1364 call <SID>OptionG("luadll", &luadll) 1365endif 1366if exists("&perldll") 1367 call append("$", "perldll\tname of the Perl dynamic library") 1368 call <SID>OptionG("perldll", &perldll) 1369endif 1370if has('pythonx') 1371 call append("$", "pyxversion\twhether to use Python 2 or 3") 1372 call append("$", " \tset pyx=" . &wd) 1373endif 1374if exists("&pythondll") 1375 call append("$", "pythondll\tname of the Python 2 dynamic library") 1376 call <SID>OptionG("pythondll", &pythondll) 1377endif 1378if exists("&pythonhome") 1379 call append("$", "pythonhome\tname of the Python 2 home directory") 1380 call <SID>OptionG("pythonhome", &pythonhome) 1381endif 1382if exists("&pythonthreedll") 1383 call append("$", "pythonthreedll\tname of the Python 3 dynamic library") 1384 call <SID>OptionG("pythonthreedll", &pythonthreedll) 1385endif 1386if exists("&pythonthreehome") 1387 call append("$", "pythonthreehome\tname of the Python 3 home directory") 1388 call <SID>OptionG("pythonthreehome", &pythonthreehome) 1389endif 1390if exists("&rubydll") 1391 call append("$", "rubydll\tname of the Ruby dynamic library") 1392 call <SID>OptionG("rubydll", &rubydll) 1393endif 1394if exists("&tcldll") 1395 call append("$", "tcldll\tname of the Tcl dynamic library") 1396 call <SID>OptionG("tcldll", &tcldll) 1397endif 1398if exists("&mzschemedll") 1399 call append("$", "mzschemedll\tname of the Tcl dynamic library") 1400 call <SID>OptionG("mzschemedll", &mzschemedll) 1401 call append("$", "mzschemegcdll\tname of the Tcl GC dynamic library") 1402 call <SID>OptionG("mzschemegcdll", &mzschemegcdll) 1403endif 1404 1405set cpo&vim 1406 1407" go to first line 14081 1409 1410" reset 'modified', so that ":q" can be used to close the window 1411setlocal nomodified 1412 1413if has("syntax") 1414 " Use Vim highlighting, with some additional stuff 1415 setlocal ft=vim 1416 syn match optwinHeader "^ \=[0-9].*" 1417 syn match optwinName "^[a-z]*\t" nextgroup=optwinComment 1418 syn match optwinComment ".*" contained 1419 syn match optwinComment "^\t.*" 1420 if !exists("did_optwin_syntax_inits") 1421 let did_optwin_syntax_inits = 1 1422 hi link optwinHeader Title 1423 hi link optwinName Identifier 1424 hi link optwinComment Comment 1425 endif 1426endif 1427 1428" Install autocommands to enable mappings in option-window 1429noremap <silent> <buffer> <CR> <C-\><C-N>:call <SID>CR()<CR> 1430inoremap <silent> <buffer> <CR> <Esc>:call <SID>CR()<CR> 1431noremap <silent> <buffer> <Space> :call <SID>Space()<CR> 1432 1433" Make the buffer be deleted when the window is closed. 1434setlocal buftype=nofile bufhidden=delete noswapfile 1435 1436augroup optwin 1437 au! BufUnload,BufHidden option-window nested 1438 \ call <SID>unload() | delfun <SID>unload 1439augroup END 1440 1441fun! <SID>unload() 1442 delfun <SID>CR 1443 delfun <SID>Space 1444 delfun <SID>Find 1445 delfun <SID>Update 1446 delfun <SID>OptionL 1447 delfun <SID>OptionG 1448 delfun <SID>BinOptionL 1449 delfun <SID>BinOptionG 1450 delfun <SID>Header 1451 au! optwin 1452endfun 1453 1454" Restore the previous value of 'title' and 'icon'. 1455let &title = s:old_title 1456let &icon = s:old_icon 1457let &ru = s:old_ru 1458let &sc = s:old_sc 1459let &cpo = s:cpo_save 1460let &ul = s:old_ul 1461unlet s:old_title s:old_icon s:old_ru s:old_sc s:cpo_save s:idx s:lnum s:old_ul 1462 1463" vim: ts=8 sw=2 sts=2 1464