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