tea-test-dao
Version:
[C[CHello Tea
1,291 lines (1,024 loc) • 1.61 MB
Plain Text
*version9.txt* For Vim version 9.1. Last change: 2024 Jan 01
VIM REFERENCE MANUAL by Bram Moolenaar
*vim-9.0* *vim-9* *version-9.0* *version9.0*
Welcome to Vim 9! Several years have passed since the previous release.
A large number of bugs have been fixed, many nice features have been added
and the Vim9 script syntax is here! This file mentions all the new things and
changes to existing features since Vim 8.2.0. The patches up to Vim 8.2 can be
found here: |vim-8.2|.
Use this command to see the full version and features information of the Vim
program you are using: >
:version
NEW FEATURES |new-9|
Vim script enhancements |new-vim-script-9|
Command line completion in a popup menu |new-popup-compl|
Updated colorschemes |new-colorschemes-9|
Various new items |new-items-9|
INCOMPATIBLE CHANGES |incompatible-9|
IMPROVEMENTS |improvements-9|
COMPILE TIME CHANGES |compile-changes-9|
PATCHES |patches-9|
VERSION 9.1 |version-9.1|
Changed |changed-9.1|
Added |added-9.1|
Patches |patches-9.1|
See |vi_diff.txt| for an overview of differences between Vi and Vim 9.0.
See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and
|version8.txt| for differences between Vim versions.
You can find an overview of the most important changes (according to Martin
Tournoij) on this site: https://www.arp242.net/vimlog/
*Sven-Guckes*
Vim version 9.0 is dedicated to Sven Guckes, who passed away in February 2022
when the release was being prepared. Sven was a long time supporter of Vim.
He registered the vim.org domain and created the first Vim website. We will
remember him!
*Bram* *Moolenaar* *Bram-Moolenaar*
Vim version 9.1 is dedicated to Bram Moolenaar, who passed away on August 3rd
2023 while still working full-time on Vim. The Vim project would not exist
without his ongoing passion to lead and develop Vim and the community for more
than 30 years. Bram was also passionate about his |ICCF| foundation to help
children in Uganda. If you enjoy using Vim, please consider donating! We will
miss his guidance, passion and leadership.
Obituary Articles: https://github.com/vim/vim/discussions/12742
Say Farewell: https://github.com/vim/vim/discussions/12737
==============================================================================
NEW FEATURES *new-9*
First an overview of the more interesting new features. A comprehensive list
is below.
Vim9 script ~
*new-vim-script-9*
The Vim script language has been changed step by step over many years,
preserving backwards compatibility. Several choices made in the early days
got in the way of making it work better. At the same time, Vim script is
being used much more often, since there are so many plugins being used.
Vim9 script provides a syntax that is much more similar to other languages.
In other words: "less weird". Compiled functions are introduced which allow
for a large speed improvement. You can expect around ten times faster
execution, or even more. The price to pay is that Vim9 script is not
backwards compatible. But don't worry, you can still use your old scripts,
the new script language is added, it does not replace the legacy script.
Information about Vim9 script can be found in the |Vim9| help file.
Command line completion in a popup menu ~
*new-popup-compl*
Before there was the 'wildmenu' option, which uses the space of one line above
the statusline to show matches. Only a few matches fit there.
Now a popup menu can be used by setting 'wildoptions' to "pum". This allows
for showing many more matches. This requires redrawing more of the display,
but since computers are fast enough that is not a problem.
Updated colorschemes ~
*new-colorschemes-9*
Colorschemes from https://github.com/vim/colorschemes have been included.
They were made to work consistently across many types of terminals. Although
generally an improvement, a lot of personal preference is involved. You can
always get the old version if you prefer it, look here:
https://github.com/vim/colorschemes/blob/master/legacy_colors/
Various new items ~
*new-items-9*
Options: ~
'autoshelldir' change directory to the shell's current directory
'cdhome' change directory to the home directory by ":cd"
'cinscopedecls' words that are recognized by 'cino-g'
'guiligatures' GTK GUI: ASCII characters that can form shapes
'mousemoveevent' report mouse moves with <MouseMove>
'quickfixtextfunc' function for the text in the quickfix window
'spelloptions' options for spell checking
'thesaurusfunc' function to be used for thesaurus completion
'xtermcodes' request terminal codes from an xterm
Ex commands: ~
|:abstract| (reserved for future use)
|:argdedupe| remove duplicates from the argument list
|:balt| like ":badd" but also set the alternate file
|:class| (reserved for future use)
|:def| define a Vim9 user function
|:defcompile| compile Vim9 user functions in current script
|:disassemble| disassemble Vim9 user function
|:echoconsole| like :echomsg but write to stdout
|:endinterface| (reserved for future use)
|:endclass| (reserved for future use)
|:enddef| end of a user function started with :def
|:endenum| (reserved for future use)
|:enum| (reserved for future use)
|:eval| evaluate an expression and discard the result
|:export| Vim9: export an item from a script
|:final| declare an immutable variable in Vim9
|:import| Vim9: import an item from another script
|:interface| (reserved for future use)
|:static| (reserved for future use)
|:type| (reserved for future use)
|:var| variable declaration in Vim9
|:vim9script| indicates Vim9 script file
Ex command modifiers: ~
|:legacy| make following command use legacy script syntax
|:vim9cmd| make following command use Vim9 script syntax
New and extended functions: ~
|assert_nobeep()| assert that a command does not cause a beep
|autocmd_add()| add a list of autocmds and groups
|autocmd_delete()| delete a list of autocmds and groups
|autocmd_get()| return a list of autocmds
|blob2list()| get a list of numbers from a blob
|charclass()| class of a character
|charcol()| character number of the cursor or a mark
|charidx()| character index of a byte in a string
|digraph_get()| get digraph
|digraph_getlist()| get all digraphs
|digraph_set()| register digraph
|digraph_setlist()| register multiple digraphs
|echoraw()| output characters as-is
|exists_compiled()| like exists() but check at compile time
|extendnew()| make a new Dictionary and append items
|flatten()| flatten a List
|flattennew()| flatten a copy of a List
|fullcommand()| get full command name
|getcharpos()| get character position of cursor, mark, etc.
|getcharstr()| get a character from the user as a string
|getcmdcompltype()| return current cmdline completion type
|getcmdscreenpos()| return the current cursor position in the cmdline
|getcursorcharpos()| get character position of the cursor
|getmarklist()| list of global/local marks
|getreginfo()| get information about a register
|gettext()| lookup message translation
|hlget()| get highlight group attributes
|hlset()| set highlight group attributes
|isabsolutepath()| check if a path is absolute
|list2blob()| get a blob from a list of numbers
|maplist()| list of all mappings, a dict for each
|mapnew()| make a new List with changed items
|mapset()| restore a mapping
|matchfuzzy()| fuzzy matches a string in a list of strings
|matchfuzzypos()| fuzzy matches a string in a list of strings
|menu_info()| get information about a menu item
|popup_list()| get list of all popup window IDs
|prompt_getprompt()| get the effective prompt text for a buffer
|prop_add_list()| attach a property at multiple positions
|prop_find()| search for a property
|readblob()| read a file into a Blob
|readdirex()| get a List of file information in a directory
|reduce()| reduce a List to a value
|searchcount()| get number of matches before/after the cursor
|setcellwidths()| set character cell width overrides
|setcharpos()| set character position of cursor, mark, etc.
|setcursorcharpos()| set character position of the cursor
|slice()| take a slice of a List
|strcharlen()| length of a string in characters
|terminalprops()| properties of the terminal
|test_gui_event()| generate a GUI event for testing
|test_null_function()| return a null Funcref
|test_srand_seed()| set the seed value for srand()
|test_unknown()| return a value with unknown type
|test_void()| return a value with void type
|typename()| type of a variable as text
|virtcol2col()| byte index of a character on screen
|win_gettype()| get type of window
|win_move_separator()| move window vertical separator
|win_move_statusline()| move window status line
|windowsversion()| get MS-Windows version
New Vim variables: ~
|v:numbermax| maximum value of a number
|v:numbermin| minimum value of a number (negative)
|v:numbersize| number of bits in a Number
|v:collate| current locale setting for collation order
|v:exiting| vim exit code
|v:colornames| dictionary that maps color names to hex color strings
|v:sizeofint| number of bytes in an int
|v:sizeoflong| number of bytes in a long
|v:sizeofpointer| number of bytes in a pointer
|v:maxcol| maximum line length
New autocommand events: ~
|CompleteDonePre| after Insert mode completion done, before clearing info
|DirChangedPre| before the working directory will change
|InsertLeavePre| just before leaving Insert mode
|ModeChanged| after changing the mode
|SigUSR1| after the SIGUSR1 signal has been detected
|WinClosed| after closing a window
|WinScrolled| after scrolling or resizing a window
|VimSuspend| when suspending Vim
|VimResume| when Vim is resumed after being suspended
New operators: ~
|>>| bitwise right shift
|<<| bitwise left shift
|??| falsy operator
New runtime files: ~
Too many to list here.
==============================================================================
INCOMPATIBLE CHANGES *incompatible-9*
There is only one change that is incompatible with previous releases:
- Lua arrays are now one-based, they used to be zero-based.
Note that when using |Vim9| script several things work differently, see
|vim9-differences|.
==============================================================================
IMPROVEMENTS *improvements-9*
Various small and useful improvements have been made since Vim 8.2, here is a
summary.
Many memory leaks, invalid memory accesses and crashes have been fixed.
See the list of patches below: |bug-fixes-9|.
Support for Vim expression evaluation in a string. |interpolated-string|
Support for evaluating Vim expressions in a heredoc. |:let-heredoc|
Support for fuzzy matching:
- a string in a List of strings. |fuzzy-matching|
- completion support for command line completion using 'wildoptions'.
- for |:vimgrep|.
Added support for the |Haiku| OS.
Support for "lsp" channel mode to simplify LSP server RPC communication
|language-server-protocol|. Support for using a Unix domain socket with a
|channel|. IPv6 support in channels |channel-address|.
Support for sourcing lines from the current buffer. |:source-range|
Terminal window improvements:
- Support for opening a terminal in a popup window. |popup-terminal|
- Allow setting underline color in terminal.
- Detect focus events in terminal (|FocusGained| and |FocusLost|).
- Add bell support for the terminal window. ('belloff')
- Support mouse left-right scrolling in a terminal window.
Support for stopping profiling a Vim script: `:profile stop` and dumping the
report to a file: `:profile dump` . |:profile|
Completion improvements:
- Argument completion support for the |:breakadd|, |:breakdel|, |:diffget|,
|:diffput|, |:profile|, |:profdel| and |:scriptnames| commands.
- Support using any Vim type for user_data with the completion functions
(|complete-items|).
- Stop insert mode completion without changing text (|i_CTRL-X_CTRL-Z|).
- Add the "cmdline" option to |getcompletion()| to return the command line
arguments.
Support for setting the 'foldtext', 'completefunc', 'omnifunc',
'operatorfunc', 'thesaurusfunc', 'quickfixtextfunc', 'tagfunc',
'imactivatefunc' and 'imstatusfunc' options to a function reference or a
lambda function or a script-local function.
Support directly setting the 'balloonexpr', 'charconvert' 'foldexpr',
'formatexpr', 'includeexpr', 'printexpr', 'patchexpr', 'indentexpr',
'modelineexpr', 'diffexpr' and 'printexpr' options to a script-local function.
Improvements in 'fillchars':
- Support for configuring the character used to mark the beginning of a fold,
show a closed fold and show a fold separator using "foldopen", "foldclose"
and "foldsep" respectively in 'fillchars'.
- Support for configuring the character displayed in non existing lines using
"eob" in 'fillchars'.
- Support for using multibyte items with the "stl", "stlnc", "foldopen",
"foldclose" and "foldsep" items in the 'fillchars' option.
Support for the XChaCha20 encryption method. 'cryptmethod'
Spell checking:
- Spell check current word with |z=| even when 'spell' is off.
- Add "timeout" to 'spellsuggest' to limit the searching time for spell
suggestions.
- Add support for spell checking CamelCased words by adding "camel" to
'spelloptions'.
Support for executing Ex commands in a map without changing the current mode
|<Cmd>| and |<ScriptCmd>|.
Add optional error code to |:cquit|.
Recognize numbers as unsigned when "unsigned" is set in 'nrformats'.
Expand script ID using expand('<SID>') and script name using
expand('<script>'). |expand()|
Jump to the last accessed tab page using |g<Tab>| and support using the
last accessed tab page in |:tabnext| et al.
Locale aware sorting using |:sort| and |sort()|.
Hide cursor when sleeping using |:sleep!|.
Add "multispace" to 'listchars' to show two or more spaces no matter where
they appear. Add "leadmultispace" to 'listchars' to show two or more leading
spaces. Add "lead" to 'listchars' to set the character used to show leading
spaces. Support specifying a character using the hexadecimal notation in
'listchars' (\x, \u and \U).
Make 'listchars', 'virtualedit' and 'thesaurusfunc' global-local options.
Support for looping over a string using `:for`.
Don't reset 'wrap' for diff windows when "followwrap" is set in 'diffopt'.
Support for re-evaluating the 'statusline' expression as a statusline format
string (%{% expr %})
Add |zp| and |zP| to paste in block mode without adding trailing white space.
Add |zy| to yank without trailing white space in block mode.
Add the 'P' command in visual mode to paste text in Visual mode without
yanking the deleted text to the unnamed register. |put-Visual-mode|
Add \%.l, \%<.l and \%>.l atoms to match the line the cursor is currently on.
See |/\%l| for more information.
Add "list" to 'breakindentopt' to add additional indent for lines that match
a numbered or bulleted list. Add "column" to 'breakindentopt' to indent
soft-wrapped lines at a specific column.
Add the |hl-CursorLineSign| and |hl-CursorLineFold| default highlight groups to
adjust sign highlighting for 'cursorline'.
Add the |hl-CurSearch| default highlight group for the current search match.
Add support for logging on Vim startup (|--log|).
Add support for customizing the quickfix buffer contents using
'quickfixtextfunc'. Support for the "note" error type (%t) in |errorformat|.
Add support for parsing the end line number (%e) and end column number (%k)
using 'errorformat'.
Support truncating the tag stack using |settagstack()|.
Display every option in a separate line when "!" is used with |:set|.
Add "nostop" to 'backspace' to allow backspacing over the start of insert for
|CTRL-W| and |CTRL-U| also.
Sync the undo file if 'fsync' is set.
Support excluding the 'runtimepath' and 'packpath' options from a session file
using "skiprtp" in 'sessionoptions'.
Support for getting the number of lines (line count) in a buffer using
|getbufinfo()|.
Support |filter()| and |map()| for blob and string types.
Support for using a multi-byte character for the tag kind. |tags-file-format|
Add support for checking whether a function name is valid using |exists()|.
Update xdiff to version 2.33. Update libvterm to revision 789.
Support 'trim' for Python/Lua/Perl/Tcl/Ruby/MzScheme interface heredoc.
Add the |t_AU| and |t_8u| termcap codes for underline and undercurl. Add the
t_fd and t_fe termcap codes for detecting focus events.
Support for indenting C pragmas like normal code. (|cino-P|)
Add support for defining the syntax fold level. (|:syn-foldlevel|)
Add support for using \<*xxx> in a string to prepend a modifier to a
character. (|expr-quote|)
Add support trimming characters at the beginning or end of a string using
|trim()|.
Make ":verbose pwd" show the scope of the directory. |:pwd-verbose|
Add the "0o" notation for specifying octal numbers. |scriptversion-4|
Support for changing to the previous tab-local and window-local directories
using the "tcd -" and "lcd -" commands. (|:tcd-| and |:lcd-|)
Add support for skipping an expression using |search()|.
Add support for sorting the directory contents returned by the |readdir()|
and |readdirex()| functions by case.
Add support for executing (|:@|) a register containing line continuation.
Lua support:
- Call Vim functions from Lua (vim.call() and vim.fn()).
- Convert a Lua function and a closure to a Vim funcref so that it can be
accessed in a Vim script (|lua-funcref|).
- Not backwards compatible: Make Lua arrays one based.
- Add support for using table.insert() and table.remove() functions with Vim
lists.
- Support for running multiple Ex-mode commands using vim.command().
- Add vim.lua_version to get the Lua version.
- Add support for accessing Vim namespace dictionaries from Lua
(|lua-vim-variables|).
Support for new UTF-8 characters from Unicode release 13.
Support for using a command block (|:command-repl|) when defining a |:command|
or an |:autocmd|.
Support for using |:z!| to use the Vim display height instead of the current
window height.
Support for deleting a buffer-local command using ":delcommand -buffer {cmd}".
When formatting a // comment after a statement, find the start of the line
comment, insert the comment leader and indent the comment properly (|fo-/|).
Add the "numhl" argument to `:sign define` to use a separate highlight group
for the line number on a line where a sign is placed. |:sign-define|
When $SHELL ends in "nologin" or "false", start Vim in restricted mode.
TermDebug enhancements:
- Support for showing the disassembled code in a separate window.
- Support for the GDB until command.
- Use a separate group for the signs.
xxd: Support for showing offset as a decimal number (-d).
The C omni-complete plugin (|ft-c-omni|), the file type detection script
(ft.vim) and the syntax menu generation script (makemenu.vim) have been
rewritten using the Vim9 script syntax.
A large number of tests have been added to verify the Vim functionality. Most
of the old style tests have been converted to new style tests using the new
style assert_* functions.
Many Coverity static analysis warnings have been fixed.
==============================================================================
COMPILE TIME CHANGES *compile-changes-9*
The following features are now enabled in all the builds:
|+cindent|
|+jumplist|
|+lispindent|
|+num64|
|+smartindent|
|+tag_binary|
|+title|
The following features have been removed. They are either obsolete or didn't
work properly:
- Athena and neXTaw GUI support (use Motif instead)
- EBCDIC support
- Atari MiNT and BeOS
- Mac Carbon GUI (use MacVim instead)
The rgb.txt file is no longer included, use colors/lists/default.vim instead.
Several large source files were split, mainly to make it easier to inspect
code coverage information. Source files have also been refactored for
maintainability.
Support for building Vim with Mingw64 clang compiler on MS-Windows.
Support for building Vim with Python 3.10, Lua 5.4.4, Perl 5.34 and
Ruby 3.1.0.
==============================================================================
PATCHES *patches-9* *bug-fixes-9*
*patches-after-8.2*
The list of patches that got included since 8.2.0. This includes all the new
features, but does not include runtime file changes (syntax, indent, help,
etc.)
Patch 8.2.0001
Problem: #endif comments do not reflect corresponding #ifdef.
Solution: Update the comments. (Rene Nyffenegger, closes #5351)
Files: src/ui.c
Patch 8.2.0002
Problem: "dj" only deletes first line of closed fold.
Solution: Adjust last line of operator for linewise motion. (closes #5354)
Files: src/ops.c, src/testdir/test_fold.vim
Patch 8.2.0003
Problem: Build file dependencies are incomplete.
Solution: Fix the dependencies. (Ken Takata, closes #5356)
Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms,
src/Makefile
Patch 8.2.0004
Problem: Get E685 and E931 if buffer reload is interrupted.
Solution: Do not abort deleting a dummy buffer. (closes #5361)
Files: src/buffer.c, src/proto/buffer.pro, src/testdir/test_trycatch.vim,
src/ex_cmds.c, src/ex_getln.c, src/misc2.c, src/quickfix.c,
src/window.c, src/vim.h
Patch 8.2.0005
Problem: Duplication in version info.
Solution: Use preprocessor string concatenation. (Ken Takata, closes #5357)
Files: src/version.h
Patch 8.2.0006
Problem: Test using long file name may fail. (Vladimir Lomov)
Solution: Limit the name length. (Christian Brabandt, closes #5358)
Files: src/testdir/test_display.vim
Patch 8.2.0007
Problem: Popup menu positioned wrong with folding in two tabs.
Solution: Update the cursor line height. (closes #5353)
Files: src/move.c, src/proto/move.pro, src/popupmenu.c,
src/testdir/test_ins_complete.vim,
src/testdir/dumps/Test_pum_with_folds_two_tabs.dump
Patch 8.2.0008
Problem: Test72 is old style.
Solution: Convert to new style test. (Yegappan Lakshmanan, closes #5362)
Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
src/testdir/test72.in, src/testdir/test72.ok,
src/testdir/test_undo.vim
Patch 8.2.0009
Problem: VMS: terminal version doesn't build.
Solution: Move MIN definition. Adjust #ifdefs. (Zoltan Arpadffy)
Files: src/bufwrite.c, src/fileio.c, src/ui.c, src/xxd/Make_vms.mms
Patch 8.2.0010
Problem: Test64 is old style.
Solution: Convert to new style test. (Yegappan Lakshmanan, closes #5363)
Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
src/testdir/test64.in, src/testdir/test64.ok,
src/testdir/test95.in, src/testdir/test_regexp_latin.vim
Patch 8.2.0011
Problem: Screen updating wrong when opening preview window.
Solution: Redraw the window when the preview window opens.
Files: src/popupmenu.c, src/testdir/test_ins_complete.vim,
src/testdir/dumps/Test_pum_with_preview_win.dump
Patch 8.2.0012
Problem: Some undo functionality is not tested.
Solution: Add a few more test cases. (Dominique Pellé, closes #5364)
Files: src/testdir/test_undo.vim
Patch 8.2.0013
Problem: Not using a typedef for condstack.
Solution: Add a typedef.
Files: src/structs.h, src/ex_docmd.c, src/ex_eval.c, src/userfunc.c,
src/ex_cmds.h, src/proto/ex_eval.pro
Patch 8.2.0014
Problem: Test69 and test95 are old style.
Solution: Convert to new style tests. (Yegappan Lakshmanan, closes #5365)
Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
src/testdir/test69.in, src/testdir/test69.ok,
src/testdir/test95.in, src/testdir/test95.ok,
src/testdir/test_regexp_utf8.vim, src/testdir/test_textformat.vim
Patch 8.2.0015
Problem: Not all modeline variants are tested.
Solution: Add modeline tests. (Dominique Pellé, closes #5369)
Files: src/testdir/test_modeline.vim
Patch 8.2.0016
Problem: Test name used twice, option not restored properly.
Solution: Rename function, restore option with "&".
Files: src/testdir/test_textformat.vim
Patch 8.2.0017
Problem: OS/2 and MS-DOS are still mentioned, even though support was
removed long ago.
Solution: Update documentation. (Yegappan Lakshmanan, closes #5368)
Files: runtime/doc/autocmd.txt, runtime/doc/change.txt,
runtime/doc/cmdline.txt, runtime/doc/editing.txt,
runtime/doc/eval.txt, runtime/doc/gui.txt, runtime/doc/insert.txt,
runtime/doc/options.txt, runtime/doc/print.txt,
runtime/doc/quickfix.txt, runtime/doc/repeat.txt,
runtime/doc/starting.txt, runtime/doc/usr_01.txt,
runtime/doc/usr_05.txt, runtime/doc/usr_41.txt,
runtime/doc/vi_diff.txt, runtime/gvimrc_example.vim,
runtime/tools/README.txt, runtime/vimrc_example.vim, src/feature.h
Patch 8.2.0018
Problem: :join does not add white space where it should. (Zdenek Dohnal)
Solution: Handle joining multiple lines properly.
Files: src/ops.c, src/testdir/test_join.vim
Patch 8.2.0019
Problem: Cannot get number of lines of another buffer.
Solution: Add "linecount" to getbufinfo(). (Yasuhiro Matsumoto,
closes #5370)
Files: src/evalbuffer.c, src/testdir/test_bufwintabinfo.vim,
runtime/doc/eval.txt
Patch 8.2.0020
Problem: Mouse clicks in the command line not tested.
Solution: Add tests. (Dominique Pellé, closes #5366)
Files: src/testdir/test_termcodes.vim
Patch 8.2.0021
Problem: Timer test fails too often on Travis with macOS.
Solution: Be less strict with the time.
Files: src/testdir/test_timers.vim
Patch 8.2.0022
Problem: Click in popup window doesn't close it in the GUI. (Sergey Vlasov)
Solution: When processing the selection also send a button release event.
(closes #5367)
Files: src/gui.c
Patch 8.2.0023
Problem: Command line editing not sufficiently tested.
Solution: Add more tests. (Dominique Pellé, closes #5374)
Files: src/testdir/Make_all.mak, src/testdir/test_alot.vim,
src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim
Patch 8.2.0024
Problem: Filetype Rego not recognized.
Solution: Add *.rego. (Matt Dunford, closes #5376)
Files: runtime/filetype.vim, src/testdir/test_filetype.vim
Patch 8.2.0025
Problem: Repeated word in comment.
Solution: Remove one. (Rene Nyffenegger, closes #5384)
Files: src/structs.h
Patch 8.2.0026
Problem: Still some /* */ comments.
Solution: Convert to // comments.
Files: src/message.c, src/message_test.c, src/misc1.c, src/misc2.c,
src/move.c
Patch 8.2.0027
Problem: Still some /* */ comments.
Solution: Convert to // comments.
Files: src/iid_ole.c, src/indent.c, src/insexpand.c, src/iscygpty.c,
src/version.c
Patch 8.2.0028
Problem: Searchpairpos() is not tested.
Solution: Add tests. Also improve searchpair() testing. (Dominique Pellé,
closes #5388)
Files: src/testdir/test_search.vim
Patch 8.2.0029
Problem: MS-Windows: crash with empty job command.
Solution: Check for NULL result. (Yasuhiro Matsumoto, closes #5390)
Files: src/channel.c, src/testdir/test_channel.vim
Patch 8.2.0030
Problem: "gF" does not work on output of "verbose command".
Solution: Recognize " line " and translations. (closes #5391)
Files: src/globals.h, src/eval.c, src/findfile.c, src/testdir/test_gf.vim
Patch 8.2.0031 (after 8.2.0029)
Problem: MS-Windows: test for empty job fails
Solution: Check for error message, make it also fail on Unix.
Files: src/channel.c, src/testdir/test_channel.vim
Patch 8.2.0032 (after 8.2.0031)
Problem: MS-Windows: test for blank job fails
Solution: Check before escaping.
Files: src/channel.c, src/testdir/test_channel.vim
Patch 8.2.0033
Problem: Crash when make_extmatch() runs out of memory.
Solution: Check for NULL. (Dominique Pellé, closes #5392)
Files: src/regexp_bt.c, src/regexp_nfa.c
Patch 8.2.0034
Problem: Missing check for out of memory.
Solution: Check for NULL after vim_strsave(). (Dominique Pellé,
closes #5393)
Files: src/filepath.c
Patch 8.2.0035
Problem: Saving and restoring called_emsg is clumsy.
Solution: Count the number of error messages.
Files: src/message.c, src/buffer.c, src/channel.c, src/drawscreen.c,
src/ex_cmds2.c, src/gui.c, src/highlight.c, src/main.c,
src/regexp.c, src/search.c, src/testing.c, src/globals.h
Patch 8.2.0036
Problem: Not enough test coverage for match functions.
Solution: Add a few more test cases. (Dominique Pellé, closes #5394)
Add error number.
Files: src/testdir/test_match.vim
Patch 8.2.0037
Problem: Missing renamed message.
Solution: Now really add the error number.
Files: src/highlight.c
Patch 8.2.0038
Problem: Spell suggestions insufficiently tested.
Solution: Add spell suggestion tests. (Dominique Pellé, closes #5398)
Files: src/testdir/test_spell.vim
Patch 8.2.0039
Problem: Memory access error when "z=" has no suggestions.
Solution: Check for negative index.
Files: src/testdir/test_spell.vim, src/spellsuggest.c
Patch 8.2.0040
Problem: Timers test is still flaky on Travis for Mac.
Solution: Run separately instead of as part of test_alot.
Files: src/testdir/Make_all.mak, src/testdir/test_alot.vim
Patch 8.2.0041
Problem: Leaking memory when selecting spell suggestion.
Solution: Free previous value at the right time.
Files: src/spellsuggest.c
Patch 8.2.0042
Problem: Clearing funccal values twice.
Solution: Remove clearing individual fields.
Files: src/userfunc.c
Patch 8.2.0043
Problem: Timers test is still flaky on Travis for Mac.
Solution: Increase maximum expected time.
Files: src/testdir/test_timers.vim
Patch 8.2.0044
Problem: Expression type is used inconsistently.
Solution: Add "ETYPE_IS" and "ETYPE_ISNOT" as separate enum values. Rename
"TYPE_" to "ETYPE_" to avoid confusion.
Files: src/structs.h, src/eval.c, src/proto/eval.pro, src/debugger.c
Patch 8.2.0045 (after 8.2.0044)
Problem: Script test fails.
Solution: For numbers "is" and "isnot" work like "==" and "!=".
Files: src/eval.c
Patch 8.2.0046
Problem: Tests for spell suggestions are slow.
Solution: Use shorter words. Test with latin1 and utf-8 to cover more code.
(Dominique Pellé, closes #5399)
Files: src/testdir/test_spell.vim
Patch 8.2.0047
Problem: Cannot skip tests for specific MS-Windows platform.
Solution: Add windowsversion().
Files: src/os_win32.c, src/globals.h, src/evalfunc.c,
runtime/doc/eval.txt, src/testdir/gen_opt_test.vim,
src/testdir/test_options.vim
Patch 8.2.0048
Problem: Another timers test is flaky on Travis for Mac.
Solution: Increase maximum expected time.
Files: src/testdir/test_timers.vim
Patch 8.2.0049
Problem: Command line completion not fully tested.
Solution: Add more test cases. Make help sorting stable. (Dominique Pellé,
closes #5402)
Files: src/ex_cmds.c, src/testdir/test_cd.vim,
src/testdir/test_cmdline.vim, src/testdir/test_help.vim,
src/testdir/test_menu.vim, src/testdir/test_options.vim,
src/testdir/test_syntax.vim
Patch 8.2.0050
Problem: After deleting a file mark it is still in viminfo.
Solution: When a file mark was deleted more recently than the mark in the
merged viminfo file was updated, do not store the mark. (Pavol
Juhas, closes #5401, closes #1339)
Files: src/mark.c, src/testdir/test_marks.vim,
src/testdir/test_viminfo.vim, src/viminfo.c
Patch 8.2.0051 (after 8.2.0049)
Problem: Command line completion test skipped. (Christian Brabandt)
Solution: Invert condition.
Files: src/testdir/test_cmdline.vim
Patch 8.2.0052
Problem: More-prompt not properly tested.
Solution: Add a test case. (Dominique Pellé, closes #5404)
Files: src/testdir/test_messages.vim
Patch 8.2.0053
Problem: windowsversion() does not always return the right value.
Solution: Add a compatibility section in the manifest. (Ken Takata,
closes #5407)
Files: src/gvim.exe.mnf
Patch 8.2.0054
Problem: :diffget and :diffput don't have good completion.
Solution: Add proper completion. (Dominique Pellé, closes #5409)
Files: runtime/doc/eval.txt, src/buffer.c, src/cmdexpand.c,
src/testdir/test_diffmode.vim, src/usercmd.c, src/vim.h
Patch 8.2.0055
Problem: Cannot use ":gui" in vimrc with VIMDLL enabled.
Solution: Change the logic, check "gui.starting". (Ken Takata, closes #5408)
Files: src/gui.c
Patch 8.2.0056
Problem: Execution stack is incomplete and inefficient.
Solution: Introduce a proper execution stack and use it instead of
sourcing_name/sourcing_lnum. Create a string only when used.
Files: src/structs.h, src/globals.h, src/autocmd.c, src/buffer.c
src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/highlight.c,
src/main.c, src/map.c, src/message.c, src/proto/scriptfile.pro,
src/scriptfile.c, src/option.c, src/profiler.c, src/spellfile.c,
src/term.c, src/testing.c, src/usercmd.c, src/userfunc.c,
src/kword_test.c, src/testdir/test_debugger.vim
Patch 8.2.0057 (after 8.2.0056)
Problem: Cannot build with small features.
Solution: Add #ifdefs.
Files: src/scriptfile.c
Patch 8.2.0058
Problem: Running tests changes ~/.viminfo.
Solution: Make 'viminfo' empty when summarizing tests results. (closes #5414)
Files: src/testdir/summarize.vim
Patch 8.2.0059
Problem: Compiler warnings for unused variables in small build. (Tony
Mechelynck)
Solution: Add #ifdef.
Files: src/scriptfile.c
Patch 8.2.0060
Problem: Message test only runs with one encoding. (Dominique Pellé)
Solution: Run the test with "utf-8" and "latin1". Fix underflow. (related
to #5410)
Files: src/message_test.c, src/message.c
Patch 8.2.0061
Problem: The execute stack can grow big and never shrinks.
Solution: Reduce the size in garbage collect.
Files: src/eval.c
Patch 8.2.0062
Problem: Memory test is flaky on FreeBSD.
Solution: Add a short sleep before getting the first size.
Files: src/testdir/test_memory_usage.vim
Patch 8.2.0063
Problem: Wrong size argument to vim_snprintf(). (Dominique Pellé)
Solution: Reduce the size by the length. (related to #5410)
Files: src/ops.c
Patch 8.2.0064
Problem: Diffmode completion doesn't use per-window setting.
Solution: Check if a window is in diff mode. (Dominique Pellé, closes #5419)
Files: src/buffer.c, src/testdir/test_diffmode.vim
Patch 8.2.0065
Problem: Amiga and alikes: autoopen only used on Amiga OS4.
Solution: Adjust #ifdefs. (Ola Söder, closes #5413)
Files: src/os_amiga.c
Patch 8.2.0066
Problem: Some corners of vim_snprintf() are not tested.
Solution: Add a test in C. (Dominique Pellé, closes #5422)
Files: src/message_test.c
Patch 8.2.0067
Problem: ERROR_UNKNOWN clashes on some systems.
Solution: Rename ERROR_ to FCERR_. (Ola Söder, closes #5415)
Files: src/evalfunc.c, src/userfunc.c, src/vim.h
Patch 8.2.0068
Problem: Crash when using Python 3 with "utf32" encoding. (Dominique Pellé)
Solution: Use "utf-8" whenever enc_utf8 is set. (closes #5423)
Files: src/testdir/test_python3.vim, src/if_py_both.h
Patch 8.2.0069
Problem: ETYPE_ is used for two different enums.
Solution: Rename one to use EXPR_.
Files: src/structs.h, src/eval.c, src/debugger.c
Patch 8.2.0070
Problem: Crash when using Python 3 with "debug" encoding. (Dominique Pellé)
Solution: Use "euc-jp" whenever enc_dbcs is set.
Files: src/testdir/test_python3.vim, src/if_py_both.h
Patch 8.2.0071
Problem: Memory test often fails on Cirrus CI.
Solution: Allow for more tolerance in the upper limit. Remove sleep.
Files: src/testdir/test_memory_usage.vim
Patch 8.2.0072 (after 8.2.0071)
Problem: Memory test still fails on Cirrus CI.
Solution: Allow for a tiny bit more tolerance in the upper limit.
Files: src/testdir/test_memory_usage.vim
Patch 8.2.0073
Problem: Initializing globals with COMMA is clumsy.
Solution: Use INIT2(), INIT3(), etc.
Files: src/vim.h, src/globals.h
Patch 8.2.0074
Problem: Python 3 unicode test sometimes fails.
Solution: Make 'termencoding' empty. Correct number of error message.
Files: src/change.c, runtime/doc/options.txt, runtime/doc/message.txt,
src/testdir/test_python3.vim
Patch 8.2.0075
Problem: Python 3 unicode test still sometimes fails.
Solution: Skip the test when 'termencoding' is not empty.
Files: src/testdir/test_python3.vim
Patch 8.2.0076
Problem: Python 3 unicode test fails on MS-Windows.
Solution: Do not set 'encoding' to "debug" on MS-Windows.
Files: src/testdir/test_python3.vim
Patch 8.2.0077
Problem: settagstack() cannot truncate at current index.
Solution: Add the "t" action. (Yegappan Lakshmanan, closes #5417)
Files: runtime/doc/eval.txt, src/evalfunc.c, src/tag.c,
src/testdir/test_tagjump.vim
Patch 8.2.0078
Problem: Expanding <sfile> works differently the second time.
Solution: Keep the expanded name when redefining a function. (closes #5425)
Files: src/testdir/test_vimscript.vim, src/userfunc.c
Patch 8.2.0079
Problem: Python 3 unicode test still fails on MS-Windows.
Solution: Do not set 'encoding' to "euc-tw" on MS-Windows.
Files: src/testdir/test_python3.vim
Patch 8.2.0080
Problem: Globals using INIT4() are not in the tags file.
Solution: Adjust the tags command.
Files: src/configure.ac, src/auto/configure
Patch 8.2.0081
Problem: MS-Windows also need the change to support INIT4().
Solution: Add the ctags arguments. (Ken Takata)
Files: src/Make_cyg_ming.mak, src/Make_mvc.mak
Patch 8.2.0082
Problem: When reusing a buffer listeners are not cleared. (Axel Forsman)
Solution: Clear listeners when reusing a buffer. (closes #5431)
Files: src/testdir/test_listener.vim, src/buffer.c
Patch 8.2.0083
Problem: Text properties wrong when tabs and spaces are exchanged.
Solution: Take text properties into account. (Nobuhiro Takasaki,
closes #5427)
Files: src/edit.c, src/testdir/test_textprop.vim
Patch 8.2.0084
Problem: Complete item "user_data" can only be a string.
Solution: Accept any type of variable. (closes #5412)
Files: src/testdir/test_ins_complete.vim, src/insexpand.c, src/dict.c,
src/proto/dict.pro, src/eval.c, runtime/doc/insert.txt
Patch 8.2.0085
Problem: Dead code in builtin functions.
Solution: Clean up the code.
Files: src/evalvars.c, src/sound.c, src/textprop.c
Patch 8.2.0086 (after 8.2.0084)
Problem: Build error for small version. (Tony Mechelynck)
Solution: Only use "user_data" with the +eval feature. Remove unused
variable.
Files: src/insexpand.c, src/dict.c
Patch 8.2.0087
Problem: Crash in command line expansion when out of memory.
Solution: Check for NULL pointer. Also make ExpandGeneric() static.
(Dominique Pellé, closes #5437)
Files: src/cmdexpand.c, src/proto/cmdexpand.pro
Patch 8.2.0088
Problem: Insufficient tests for tags; bug in using extra tag field when
using an ex command to position the cursor.
Solution: Fix the bug, add more tests. (Yegappan Lakshmanan, closes #5439)
Files: runtime/doc/tagsrch.txt, src/tag.c,
src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim,
src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim
Patch 8.2.0089
Problem: Crash when running out of memory in :setfiletype completion.
Solution: Do not allocate memory. (Dominique Pellé, closes #5438)
Files: src/cmdexpand.c
Patch 8.2.0090
Problem: Generated files show up in git status.
Solution: Ignore a few more files.
Files: .gitignore
Patch 8.2.0091
Problem: Compiler warnings for size_t / int types.
Solution: Change type to size_t. (Mike Williams)
Files: src/scriptfile.c
Patch 8.2.0092
Problem: Tags functionality insufficiently tested.
Solution: Add more tags tests. (Yegappan Lakshmanan, closes #5446)
Files: src/testdir/test_tagjump.vim
Patch 8.2.0093
Problem: win_splitmove() can make Vim hang.
Solution: Check windows exists in the current tab page. (closes #5444)
Files: src/testdir/test_window_cmd.vim, src/evalwindow.c
Patch 8.2.0094
Problem: MS-Windows: cannot build with Strawberry Perl 5.30.
Solution: Define __builtin_expect() as a workaround. (Ken Takata,
closes #5267)
Files: src/if_perl.xs
Patch 8.2.0095
Problem: Cannot specify exit code for :cquit.
Solution: Add optional argument. (Thinca, Yegappan Lakshmanan, closes #5442)
Files: runtime/doc/quickfix.txt, src/ex_cmds.h, src/ex_docmd.c,
src/testdir/test_quickfix.vim
Patch 8.2.0096
Problem: Cannot create tiny popup window in last column. (Daniel Steinberg)
Solution: Remove position limit. (closes #5447)
Files: src/popupwin.c, src/testdir/test_popupwin.vim,
src/testdir/dumps/Test_popupwin_20.dump,
src/testdir/dumps/Test_popupwin_21.dump
Patch 8.2.0097
Problem: Crash with autocommand and spellfile. (Tim Pope)
Solution: Do not pop exestack when not pushed. (closes #5450)
Files: src/testdir/test_autocmd.vim, src/spellfile.c
Patch 8.2.0098
Problem: Exe stack length can be wrong without being detected.
Solution: Add a check when ABORT_ON_INTERNAL_ERROR is defined.
Files: src/macros.h, src/autocmd.c, src/buffer.c, src/ex_docmd.c,
src/main.c, src/map.c, src/scriptfile.c, src/spellfile.c,
src/userfunc.c
Patch 8.2.0099
Problem: Use of NULL pointer when out of memory.
Solution: Check for NULL pointer. (Dominique Pellé, closes #5449)
Files: src/cmdexpand.c
Patch 8.2.0100
Problem: Macros for Ruby are too complicated.
Solution: Do not use DYNAMIC_RUBY_VER, use RUBY_VERSION. (Ken Takata,
closes #5452)
Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure,
src/configure.ac, src/if_ruby.c
Patch 8.2.0101
Problem: Crash when passing null object to ":echomsg".
Solution: Check for NULL pointer. (Yasuhiro Matsumoto, closes #5460)
Files: src/eval.c, src/testdir/test_messages.vim
Patch 8.2.0102
Problem: Messages test fails in small version.
Solution: Only use test_null_job() when available.
Files: src/testdir/test_messages.vim
Patch 8.2.0103
Problem: Using null object with execute() has strange effects.
Solution: Give an error message for Job and Channel.
Files: src/testdir/test_execute_func.vim, src/globals.h, src/eval.c,
src/evalfunc.c
Patch 8.2.0104
Problem: Using channel or job with ":execute" has strange effects.
Solution: Give an error message for Job and Channel.
Files: src/testdir/test_eval_stuff.vim, src/eval.c
Patch 8.2.0105
Problem: Vim license not easy to find on github.
Solution: Add a separate LICENCE file. (closes #5458)
Files: LICENSE, Filelist
Patch 8.2.0106
Problem: Printf formats are not exactly right.
Solution: Adjust signed/unsigned conversions. (Frazer Clews, closes #5456)
Files: runtime/tools/ccfilter.c, src/libvterm/src/parser.c,
src/libvterm/src/pen.c, src/ui.c
Patch 8.2.0107
Problem: Hgignore is out of sync from gitignore.
Solution: Add lines to hgignore. (Ken Takata)
Files: .hgignore
Patch 8.2.0108
Problem: When sign text is changed a manual redraw is needed. (Pontus
Lietzler)
Solution: Redraw automatically. (closes #5455)
Files: src/testdir/test_signs.vim, src/sign.c,
src/testdir/dumps/Test_sign_cursor_1.dump,
src/testdir/dumps/Test_sign_cursor_2.dump,
src/testdir/dumps/Test_sign_cursor_3.dump,
src/testdir/dumps/Test_sign_cursor_01.dump,
src/testdir/dumps/Test_sign_cursor_02.dump
Patch 8.2.0109
Problem: Corrupted text properties when expanding spaces.
Solution: Reallocate the line. (Nobuhiro Takasaki, closes #5457)
Files: src/edit.c, src/testdir/test_textprop.vim
Patch 8.2.0110
Problem: prop_find() is not implemented.
Solution: Implement prop_find(). (Ryan Hackett, closes #5421, closes #4970)
Files: src/evalfunc.c, src/proto/textprop.pro,
src/testdir/test_textprop.vim, src/textprop.c,
runtime/doc/textprop.txt
Patch 8.2.0111
Problem: VAR_SPECIAL is also used for booleans.
Solution: Add VAR_BOOL for better type checking.
Files: src/structs.h, src/dict.c, src/eval.c, src/evalfunc.c,
src/evalvars.c, src/if_lua.c, src/if_mzsch.c, src/if_py_both.h,
src/if_ruby.c, src/json.c, src/popupmenu.c, src/proto/dict.pro,
src/testing.c, src/vim.h, src/viminfo.c
Patch 8.2.0112
Problem: Illegal memory access when using 'cindent'.
Solution: Check for NUL byte. (Dominique Pellé, closes #5470)
Files: src/cindent.c, src/testdir/test_cindent.vim
Patch 8.2.0113 (after 8.2.0095)
Problem: "make cmdidxs" fails.
Solution: Allow address for ":cquit". Add --not-a-term to avoid a delay.
Files: src/ex_cmds.h, src/Makefile, src/Make_cyg_ming.mak,
src/Make_mvc.mak
Patch 8.2.0114
Problem: Info about sourced scripts is scattered.
Solution: Use scriptitem_T for info about a script, including s: variables.
Drop ga_scripts.
Files: src/structs.h, src/evalvars.c, src/scriptfile.c, src/eval.c
Patch 8.2.0115
Problem: Byte2line() does not work correctly with text properties. (Billie
Cleek)
Solution: Take the bytes of the text properties into account.
(closes #5334)
Files: src/testdir/test_textprop.vim, src/memline.c
Patch 8.2.0116
Problem: BufEnter autocmd not triggered on ":tab drop". (Andy Stewart)
Solution: Decrement autocmd_no_enter for the last file. (closes #1660,
closes #5473)
Files: src/arglist.c, src/testdir/test_tabpage.vim
Patch 8.2.0117
Problem: Crash when using gettabwinvar() with invalid arguments. (Yilin
Yang)
Solution: Use "curtab" if "tp" is NULL. (closes #5475)
Files: src/evalwindow.c, src/testdir/test_getvar.vim
Patch 8.2.0118
Problem: Crash when cycling to buffers involving popup window.
Solution: Do not decrement buffer reference count.
Files: src/popupwin.c, src/testdir/test_popupwin.vim,
src/testdir/dumps/Test_popupwin_infopopup_7.dump
Patch 8.2.0119
Problem: Message test fails on some platforms. (Elimar Riesebieter)
Solution: Add type cast to vim_snprintf() argument. (Dominique Pellé)
Files: src/message_test.c
Patch 8.2.0120
Problem: virtcol() does not check arguments to be valid, which may lead to
a crash.
Solution: Check the column to be valid. Do not decrement MAXCOL.
(closes #5480)
Files: src/evalfunc.c, src/testdir/test_marks.vim
Patch 8.2.0121
Problem: filter() and map() on blob don't work.
Solution: Correct the code. (closes #5483)
Files: src/list.c, src/testdir/test_blob.vim
Patch 8.2.0122
Problem: Readme files still mention MS-DOS.
Solution: Update readme files. (Ken Takata, closes #5486)
Files: README.md, README.txt, READMEdir/README_dos.txt,
READMEdir/README_srcdos.txt, READMEdir/README_w32s.txt,
runtime/doc/os_win32.txt
Patch 8.2.0123
Problem: complete_info() does not work when CompleteDone is triggered.
Solution: Trigger CompleteDone before clearing the info.
Files: src/insexpand.c, runtime/doc/autocmd.txt,
src/testdir/test_ins_complete.vim
Patch 8.2.0124
Problem: Compiler warnings for variable types.
Solution: Change type, add type cast. (Mike Williams)
Files: src/memline.c
Patch 8.2.0125
Problem: :mode no longer works for any system.
Solution: Always give an error message.
Files: src/ex_docmd.c, runtime/doc/quickref.txt, src/os_amiga.c,
src/proto/os_amiga.pro, src/os_mswin.c, src/proto/os_mswin.pro,
src/os_unix.c, src/proto/os_unix.pro
Patch 8.2.0126 (after 8.2.0124)
Problem: Textprop test fails.
Solution: Fix sign in computation.
Files: src/memline.c
Patch 8.2.0127
Problem: Some buffer commands work in a popup window.
Solution: Disallow :bnext, :bprev, etc. (Naruhiko Nishino, closes #5494)
Files: src/ex_docmd.c, src/testdir/test_popupwin.vim
Patch 8.2.0128
Problem: Cannot list options one per line.
Solution: Use ":set!" to list one option per line.
Files: src/ex_docmd.c, src/option.c, src/proto/option.pro, src/vim.h,
src/ex_cmds.h, src/optiondefs.h, src/testdir/test_options.vim,
runtime/doc/options.txt
Patch 8.2.0129
Problem: MS-Windows installer doesn't use Turkish translations.
Solution: Enable the Turkish translations and fix a few. (Emir Sarı,
closes #5493)
Files: nsis/gvim.nsi, nsis/lang/turkish.nsi
Patch 8.2.0130
Problem: Python3 ranges are not tested.
Solution: Add test. (Dominique Pellé, closes #5498)
Files: src/testdir/test_python3.vim
Patch 8.2.0131
Problem: Command line is not cleared when switching tabs and the command
line height differs.
Solution: Set the "clear_cmdline" flag when needed. (Naruhiko Nishino,
closes #5495)
Files: src/testdir/dumps/Test_cmdlineclear_tabenter.dump,
src/testdir/test_cmdline.vim, src/window.c
Patch 8.2.0132
Problem: Script may be re-used when deleting and creating a new one.
Solution