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