To: vim_dev@googlegroups.com Subject: Patch 8.2.3784 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.3784 Problem: The help for options is outdated. Solution: Include all the recent changes. Files: runtime/doc/options.txt *** ../vim-8.2.3783/runtime/doc/options.txt 2021-12-06 11:03:50.946900217 +0000 --- runtime/doc/options.txt 2021-12-11 12:18:17.821514944 +0000 *************** *** 1,4 **** ! *options.txt* For Vim version 8.2. Last change: 2021 Jan 08 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *options.txt* For Vim version 8.2. Last change: 2021 Dec 11 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 35,40 **** --- 35,42 ---- internally and can't be changed. Changing the terminal codes in the GUI is not useful either... + :se[t]! termcap Idem, but don't use multiple columns. + *E518* *E519* :se[t] {option}? Show value of {option}. *************** *** 195,205 **** This sets the 'titlestring' option to "hi" and 'iconstring' to "there": > :set titlestring=hi|set iconstring=there ! Similarly, the double quote character starts a comment. To include the '"' in ! the option value, use '\"' instead. This example sets the 'titlestring' ! option to 'hi "there"': > :set titlestring=hi\ \"there\" For Win32 backslashes in file names are mostly not removed. More precise: For options that expect a file name (those where environment variables are expanded) a backslash before a normal file name character is not removed. But --- 197,214 ---- This sets the 'titlestring' option to "hi" and 'iconstring' to "there": > :set titlestring=hi|set iconstring=there ! Similarly, in legacy script the double quote character starts a comment. To ! include the '"' in the option value, use '\"' instead. This example sets the ! 'titlestring' option to 'hi "there"': > :set titlestring=hi\ \"there\" + In |Vim9| script it's simpler, comments start with a '#' character, and only + when preceded by white space. A backslash is needed less often: > + vim9script + set titlestring=hi\ "there" + set titlestring=hi#there# + set titlestring=hi\ \#there# + For Win32 backslashes in file names are mostly not removed. More precise: For options that expect a file name (those where environment variables are expanded) a backslash before a normal file name character is not removed. But *************** *** 382,388 **** " set using a variable with lambda expression let L = {a, b, c -> MyTagFunc(a, b , c)} let &tagfunc = L ! < Setting the filetype --- 391,401 ---- " set using a variable with lambda expression let L = {a, b, c -> MyTagFunc(a, b , c)} let &tagfunc = L ! ! In Vim9 script, in a compiled function, you can use a lambda, but a ! closured does not work, because the function will be called without the ! context of where it was defined. ! Setting the filetype *************** *** 730,736 **** "double": Use twice the width of ASCII characters. *E834* *E835* The value "double" cannot be used if 'listchars' or 'fillchars' ! contains a character that would be double width. The values are overruled for characters specified with |setcellwidths()|. --- 743,750 ---- "double": Use twice the width of ASCII characters. *E834* *E835* The value "double" cannot be used if 'listchars' or 'fillchars' ! contains a character that would be double width. These errors may ! also be given when calling setcellwidths(). The values are overruled for characters specified with |setcellwidths()|. *************** *** 862,870 **** 'autowrite' 'aw' boolean (default off) global Write the contents of the file, if it has been modified, on each ! :next, :rewind, :last, :first, :previous, :stop, :suspend, :tag, :!, ! :make, CTRL-] and CTRL-^ command; and when a :buffer, CTRL-O, CTRL-I, ! '{A-Z0-9}, or `{A-Z0-9} command takes one to another file. Note that for some commands the 'autowrite' option is not used, see 'autowriteall' for that. Some buffers will not be written, specifically when 'buftype' is --- 876,887 ---- 'autowrite' 'aw' boolean (default off) global Write the contents of the file, if it has been modified, on each ! `:next`, `:rewind`, `:last`, `:first`, `:previous`, `:stop`, ! `:suspend`, `:tag, `:!`, ``:make`, CTRL-] and CTRL-^ command; and when ! a :buffer, CTRL-O, CTRL-I, '{A-Z0-9}, or `{A-Z0-9} command takes one ! to another file. ! A buffer is not written if it becomes hidden, e.g. when 'bufhidden' is ! set to "hide" and `:next` is used Note that for some commands the 'autowrite' option is not used, see 'autowriteall' for that. Some buffers will not be written, specifically when 'buftype' is *************** *** 1432,1437 **** --- 1449,1456 ---- Also see |win_gettype()|, which returns the type of the window. Be careful with changing this option, it can have many side effects! + One such effect is that Vim will not check the timestamp of the file, + if the file is changed by another program this will not be noticed. A "quickfix" buffer is only used for the error list and the location list. This value is set by the |:cwindow| and |:lwindow| commands and *************** *** 1474,1479 **** --- 1493,1507 ---- case mapping, the current locale is not effective. This probably only matters for Turkish. + *'cdhome'* *'cdh'* + 'cdhome' 'cdh' boolean (default: off) + global + When on, |:cd|, |:tcd| and |:lcd| without an argument changes the + current working directory to the |$HOME| directory like in Unix. + When off, those commands just print the current directory name. + On Unix this option has no effect. + NOTE: This option is reset when 'compatible' is set. + *'cdpath'* *'cd'* *E344* *E346* 'cdpath' 'cd' string (default: equivalent to $CDPATH or ",,") global *************** *** 1611,1617 **** {only in GUI versions or when the |+xterm_clipboard| feature is included} This option is a list of comma separated names. ! These names are recognized: *clipboard-unnamed* unnamed When included, Vim will use the clipboard register '*' --- 1639,1649 ---- {only in GUI versions or when the |+xterm_clipboard| feature is included} This option is a list of comma separated names. ! Note: if one of the items is "exclude:", then you can't add an item ! after that. Therefore do append an item with += but use ^= to ! prepend, e.g.: > ! set clipboard^=unnamed ! < These names are recognized: *clipboard-unnamed* unnamed When included, Vim will use the clipboard register '*' *************** *** 1811,1816 **** --- 1843,1849 ---- 'balloonexpr' + "" text to show in evaluation balloon 'breakindent' + off don't indent when wrapping lines 'cedit' - {unchanged} {set vim default only on resetting 'cp'} + 'cdhome' + off ":cd" don't chdir to home on non-Unix 'cindent' + off no C code indentation 'compatible' - {unchanged} {set vim default only on resetting 'cp'} 'copyindent' + off don't copy indent structure *************** *** 2421,2427 **** xchacha20 XChaCha20 Cipher with Poly1305 Message Authentication Code. Medium strong till strong encryption. Encryption is provided by the libsodium library, it ! requires Vim to be built with |+sodium| It adds a seed and a message authentication code (MAC) to the file. This needs at least a Vim 8.2.3022 to read the encrypted file. --- 2454,2460 ---- xchacha20 XChaCha20 Cipher with Poly1305 Message Authentication Code. Medium strong till strong encryption. Encryption is provided by the libsodium library, it ! requires Vim to be built with |+sodium|. It adds a seed and a message authentication code (MAC) to the file. This needs at least a Vim 8.2.3022 to read the encrypted file. *************** *** 3928,3934 **** *'go-v'* 'v' Use a vertical button layout for dialogs. When not included, a horizontal layout is preferred, but when it doesn't fit a ! vertical layout is used anyway. *'go-p'* 'p' Use Pointer callbacks for X11 GUI. This is required for some window managers. If the cursor is not blinking or hollow at --- 3961,3967 ---- *'go-v'* 'v' Use a vertical button layout for dialogs. When not included, a horizontal layout is preferred, but when it doesn't fit a ! vertical layout is used anyway. Not supported in GTK 3. *'go-p'* 'p' Use Pointer callbacks for X11 GUI. This is required for some window managers. If the cursor is not blinking or hollow at *************** *** 4627,4633 **** Keywords are used in searching and recognizing with many commands: "w", "*", "[i", etc. It is also used for "\k" in a |pattern|. See 'isfname' for a description of the format of this option. For '@' ! characters above 255 check the "word" character class. For C programs you could use "a-z,A-Z,48-57,_,.,-,>". For a help file it is set to all non-blank printable characters except '*', '"' and '|' (so that CTRL-] on a command finds the help for that --- 4660,4667 ---- Keywords are used in searching and recognizing with many commands: "w", "*", "[i", etc. It is also used for "\k" in a |pattern|. See 'isfname' for a description of the format of this option. For '@' ! characters above 255 check the "word" character class (any character ! that is not white space or punctuation). For C programs you could use "a-z,A-Z,48-57,_,.,-,>". For a help file it is set to all non-blank printable characters except '*', '"' and '|' (so that CTRL-] on a command finds the help for that *************** *** 4915,4923 **** *'list'* *'nolist'* 'list' boolean (default off) local to window ! List mode: Show tabs as CTRL-I is displayed, display $ after end of ! line. Useful to see the difference between tabs and spaces and for ! trailing blanks. Further changed by the 'listchars' option. The cursor is displayed at the start of the space a Tab character occupies, not at the end as usual in Normal mode. To get this cursor --- 4949,4958 ---- *'list'* *'nolist'* 'list' boolean (default off) local to window ! List mode: By default show tabs as CTRL-I is displayed, display $ ! after end of line. Useful to see the difference between tabs and ! spaces and for trailing blanks. Further changed by the 'listchars' ! option. The cursor is displayed at the start of the space a Tab character occupies, not at the end as usual in Normal mode. To get this cursor *************** *** 5116,5122 **** jump between two double quotes. The characters must be separated by a colon. The pairs must be separated by a comma. Example for including '<' and ! '>' (HTML): > :set mps+=<:> < A more exotic example, to jump between the '=' and ';' in an --- 5151,5157 ---- jump between two double quotes. The characters must be separated by a colon. The pairs must be separated by a comma. Example for including '<' and ! '>' (for HTML): > :set mps+=<:> < A more exotic example, to jump between the '=' and ';' in an *************** *** 5676,5694 **** - abbreviations are disabled - 'autoindent' is reset - 'expandtab' is reset ! - 'formatoptions' is used like it is empty - 'revins' is reset - 'ruler' is reset - 'showmatch' is reset - - 'smartindent' is reset - 'smarttab' is reset - 'softtabstop' is set to 0 - 'textwidth' is set to 0 - 'wrapmargin' is set to 0 These options keep their value, but their effect is disabled: - 'cindent' - 'indentexpr' - 'lisp' NOTE: When you start editing another file while the 'paste' option is on, settings from the modelines or autocommands may change the settings again, causing trouble when pasting text. You might want to --- 5711,5731 ---- - abbreviations are disabled - 'autoindent' is reset - 'expandtab' is reset ! - 'hkmap' is reset - 'revins' is reset - 'ruler' is reset - 'showmatch' is reset - 'smarttab' is reset - 'softtabstop' is set to 0 - 'textwidth' is set to 0 - 'wrapmargin' is set to 0 + - 'varsofttabstop' is made empty These options keep their value, but their effect is disabled: - 'cindent' + - 'formatoptions' is used like it is empty - 'indentexpr' - 'lisp' + - 'smartindent' NOTE: When you start editing another file while the 'paste' option is on, settings from the modelines or autocommands may change the settings again, causing trouble when pasting text. You might want to *************** *** 6338,6344 **** < *'runtimepath'* *'rtp'* *vimfiles* 'runtimepath' 'rtp' string (default: ! Unix: "$HOME/.vim, $VIM/vimfiles, $VIMRUNTIME, $VIM/vimfiles/after, --- 6375,6381 ---- < *'runtimepath'* *'rtp'* *vimfiles* 'runtimepath' 'rtp' string (default: ! Unix: "$HOME/.vim, $VIM/vimfiles, $VIMRUNTIME, $VIM/vimfiles/after, *************** *** 6348,6354 **** $VIMRUNTIME, $VIM/vimfiles/after, home:vimfiles/after" ! PC: "$HOME/vimfiles, $VIM/vimfiles, $VIMRUNTIME, $VIM/vimfiles/after, --- 6385,6391 ---- $VIMRUNTIME, $VIM/vimfiles/after, home:vimfiles/after" ! MS-Windows: "$HOME/vimfiles, $VIM/vimfiles, $VIMRUNTIME, $VIM/vimfiles/after, *************** *** 6360,6367 **** $VIM/vimfiles, $VIMRUNTIME, $VIM/vimfiles/after, ! $BE_USER_SETTINGS/vim/after") ! VMS: "sys$login:vimfiles, $VIM/vimfiles, $VIMRUNTIME, $VIM/vimfiles/after, --- 6397,6404 ---- $VIM/vimfiles, $VIMRUNTIME, $VIM/vimfiles/after, ! $BE_USER_SETTINGS/vim/after" ! VMS: "sys$login:vimfiles, $VIM/vimfiles, $VIMRUNTIME, $VIM/vimfiles/after, *************** *** 7218,7223 **** --- 7255,7262 ---- If the name "cjk" is included East Asian characters are excluded from spell checking. This is useful when editing text that also has Asian words. + Note that the "medical" dictionary does not exist, it is just an + example of a longer name. *E757* As a special case the name of a .spl file can be given as-is. The first "_xx" in the name is removed and used as the region name *************** *** 7436,7448 **** return value of expr contains % items they will get expanded. The expression can contain the } character, the end of expression is denoted by %}. ! The For example: > func! Stl_filename() abort return "%t" endfunc < `stl=%{Stl_filename()}` results in `"%t"` `stl=%{%Stl_filename()%}` results in `"Name of current file"` ! } - End of `{%` expression ( - Start of item group. Can be used for setting the width and alignment of a section. Must be followed by %) somewhere. ) - End of item group. No width fields allowed. --- 7475,7487 ---- return value of expr contains % items they will get expanded. The expression can contain the } character, the end of expression is denoted by %}. ! For example: > func! Stl_filename() abort return "%t" endfunc < `stl=%{Stl_filename()}` results in `"%t"` `stl=%{%Stl_filename()%}` results in `"Name of current file"` ! %} - End of `{%` expression ( - Start of item group. Can be used for setting the width and alignment of a section. Must be followed by %) somewhere. ) - End of item group. No width fields allowed. *************** *** 8731,8736 **** --- 8770,8776 ---- The `g$` command will move to the end of the screen line. It doesn't make sense to combine "all" with "onemore", but you will not get a warning for it. + When combined with other words, "none" is ignored. NOTE: This option is set to "" when 'compatible' is set. *'visualbell'* *'vb'* *'novisualbell'* *'novb'* *beep* *************** *** 8814,8821 **** More info here: |cmdline-completion|. The character is not recognized when used inside a macro. See 'wildcharm' for that. Although 'wc' is a number option, you can set it to a special key: > ! :set wc= < NOTE: This option is set to the Vi default value when 'compatible' is set and to the Vim default value when 'compatible' is reset. --- 8854,8862 ---- More info here: |cmdline-completion|. The character is not recognized when used inside a macro. See 'wildcharm' for that. + Some keys will not work, such as CTRL-C, and Enter. Although 'wc' is a number option, you can set it to a special key: > ! :set wc= < NOTE: This option is set to the Vi default value when 'compatible' is set and to the Vim default value when 'compatible' is reset. *************** *** 8906,8928 **** part specifies what to do for each consecutive use of 'wildchar'. The first part specifies the behavior for the first use of 'wildchar', The second part for the second use, etc. ! These are the possible values for each part: "" Complete only the first match. "full" Complete the next full match. After the last match, the original string is used and then the first match ! again. "longest" Complete till longest common string. If this doesn't result in a longer string, use the next part. - "longest:full" Like "longest", but also start 'wildmenu' if it is - enabled. "list" When more than one match, list all matches. "list:full" When more than one match, list all matches and complete first match. "list:longest" When more than one match, list all matches and complete till longest common string. ! "list:lastused" When more than one buffer matches, sort buffers ! by time last used (other than the current buffer). ! When there is only a single match, it is fully completed in all cases. Examples: > :set wildmode=full --- 8947,8977 ---- part specifies what to do for each consecutive use of 'wildchar'. The first part specifies the behavior for the first use of 'wildchar', The second part for the second use, etc. ! ! Each part consists of a colon separated list consisting of the ! following possible values: "" Complete only the first match. "full" Complete the next full match. After the last match, the original string is used and then the first match ! again. Will also start 'wildmenu' if it is enabled. "longest" Complete till longest common string. If this doesn't result in a longer string, use the next part. "list" When more than one match, list all matches. + "lastused" When completing buffer names and more than one buffer + matches, sort buffers by time last used (other than + the current buffer). + When there is only a single match, it is fully completed in all cases. + + Examples of useful colon-separated values: + "longest:full" Like "longest", but also start 'wildmenu' if it is + enabled. Will not complete to the next full match. "list:full" When more than one match, list all matches and complete first match. "list:longest" When more than one match, list all matches and complete till longest common string. ! "list:lastused" When more than one buffer matches, list all matches ! and sort buffers by time last used (other than the ! current buffer). Examples: > :set wildmode=full *************** *** 8981,8995 **** *'window'* *'wi'* 'window' 'wi' number (default screen height - 1) global ! Window height. Do not confuse this with the height of the Vim window, ! use 'lines' for that. ! Used for |CTRL-F| and |CTRL-B| when there is only one window and the ! value is smaller than 'lines' minus one. The screen will scroll ! 'window' minus two lines, with a minimum of one. When 'window' is equal to 'lines' minus one CTRL-F and CTRL-B scroll in a much smarter way, taking care of wrapping lines. When resizing the Vim window, the value is smaller than 1 or more than or equal to 'lines' it will be set to 'lines' minus 1. *'winheight'* *'wh'* *E591* 'winheight' 'wh' number (default 1) --- 9030,9044 ---- *'window'* *'wi'* 'window' 'wi' number (default screen height - 1) global ! Window height used for |CTRL-F| and |CTRL-B| when there is only one ! window and the value is smaller than 'lines' minus one. The screen ! will scroll 'window' minus two lines, with a minimum of one. When 'window' is equal to 'lines' minus one CTRL-F and CTRL-B scroll in a much smarter way, taking care of wrapping lines. When resizing the Vim window, the value is smaller than 1 or more than or equal to 'lines' it will be set to 'lines' minus 1. + Note: Do not confuse this with the height of the Vim window, use + 'lines' for that. *'winheight'* *'wh'* *E591* 'winheight' 'wh' number (default 1) *** ../vim-8.2.3783/src/version.c 2021-12-11 16:13:32.231721218 +0000 --- src/version.c 2021-12-11 17:23:28.481004139 +0000 *************** *** 755,756 **** --- 755,758 ---- { /* Add new patch number below this line */ + /**/ + 3784, /**/ -- How To Keep A Healthy Level Of Insanity: 9. As often as possible, skip rather than walk. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///