|
|
|
@@ -1,4 +1,4 @@
|
|
|
|
|
*version9.txt* For Vim version 8.2. Last change: 2022 Jun 20
|
|
|
|
|
*version9.txt* For Vim version 8.2. Last change: 2022 Jun 24
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
@@ -7,9 +7,9 @@
|
|
|
|
|
*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 Vim9 script syntax has been introduced. 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|.
|
|
|
|
|
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: >
|
|
|
|
@@ -17,6 +17,8 @@ program you are using: >
|
|
|
|
|
|
|
|
|
|
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|
|
|
|
|
@@ -51,26 +53,41 @@ 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 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.
|
|
|
|
|
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. 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.
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
All the information about Vim9 script can be found in the |Vim9| help file.
|
|
|
|
|
Information about Vim9 script can be found in the |Vim9| help file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Various new items *new-items-9*
|
|
|
|
|
-----------------
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
TODO: Visual/Insert/Cmdline mode commands?
|
|
|
|
|
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
|
|
|
|
@@ -86,25 +103,26 @@ Options: ~
|
|
|
|
|
|
|
|
|
|
Ex commands: ~
|
|
|
|
|
|
|
|
|
|
|:abstract|
|
|
|
|
|
|: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
|
|
|
|
|
|: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
|
|
|
|
|
|: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
|
|
|
|
|
|: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
|
|
|
|
|
|: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
|
|
|
|
|
|
|
|
|
@@ -138,6 +156,7 @@ New and extended functions: ~
|
|
|
|
|
|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
|
|
|
|
@@ -195,8 +214,7 @@ New Vim variables: ~
|
|
|
|
|
|
|
|
|
|
New autocommand events: ~
|
|
|
|
|
|
|
|
|
|
|CompleteDonePre| after Insert mode completion is done, before clearing
|
|
|
|
|
info
|
|
|
|
|
|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
|
|
|
|
@@ -207,7 +225,7 @@ New autocommand events: ~
|
|
|
|
|
|VimResume| when Vim is resumed after being suspended
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
New operator: ~
|
|
|
|
|
New operators: ~
|
|
|
|
|
|
|
|
|
|
|>>| bitwise right shift
|
|
|
|
|
|<<| bitwise left shift
|
|
|
|
@@ -220,16 +238,18 @@ Too many to list here.
|
|
|
|
|
==============================================================================
|
|
|
|
|
INCOMPATIBLE CHANGES *incompatible-9*
|
|
|
|
|
|
|
|
|
|
These changes are incompatible with previous releases. Check this list if you
|
|
|
|
|
run into a problem when upgrading from Vim 8.2 to 9.0.
|
|
|
|
|
There is only one change that is incompatible with previous releases:
|
|
|
|
|
|
|
|
|
|
TODO
|
|
|
|
|
- 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
|
|
|
|
|
collection of changes that are worth mentioning.
|
|
|
|
|
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|.
|
|
|
|
@@ -237,15 +257,12 @@ See the list of patches below: |bug-fixes-9|.
|
|
|
|
|
Support for Vim expression evaluation in a string. |interp-string|
|
|
|
|
|
Support for evaluating Vim expressions in a heredoc. |:let-heredoc|
|
|
|
|
|
|
|
|
|
|
Display the command line completion matches in a popup menu. 'wildoptions'
|
|
|
|
|
Support for fuzzy matching:
|
|
|
|
|
- a string in a List of strings. |fuzzy-matching|
|
|
|
|
|
- completion support for command line completion using 'wildoptions'
|
|
|
|
|
- for |:vimgrep|.
|
|
|
|
|
|
|
|
|
|
Support for fuzzy matching a string in a List of strings. |fuzzy-matching|
|
|
|
|
|
|
|
|
|
|
Fuzzy completion support for command line completion using 'wildoptions'.
|
|
|
|
|
|
|
|
|
|
Fuzzy match support for |:vimgrep|.
|
|
|
|
|
|
|
|
|
|
Haiku support. |Haiku|
|
|
|
|
|
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
|
|
|
|
@@ -253,13 +270,24 @@ Support for "lsp" channel mode to simplify LSP server RPC communication
|
|
|
|
|
|
|
|
|
|
Support for sourcing lines from the current buffer. |:source-range|
|
|
|
|
|
|
|
|
|
|
Support for opening a terminal in a popup window. |popup-terminal|
|
|
|
|
|
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|
|
|
|
|
|
|
|
|
|
|
Argument completion support for the |:breakadd|, |:breakdel|, |:diffget|,
|
|
|
|
|
|:diffput|, |:profile|, |:profdel| and |:scriptnames| commands.
|
|
|
|
|
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',
|
|
|
|
@@ -270,35 +298,33 @@ Support directly setting the 'balloonexpr', 'charconvert' 'foldexpr',
|
|
|
|
|
'formatexpr', 'includeexpr', 'printexpr', 'patchexpr', 'indentexpr',
|
|
|
|
|
'modelineexpr', 'diffexpr' and 'printexpr' options to a script-local function.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
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 check current word with |z=| even when 'spell' is off.
|
|
|
|
|
|
|
|
|
|
Add "timeout" to 'spellsuggest' to limit the searching time for spell
|
|
|
|
|
suggestions.
|
|
|
|
|
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|.
|
|
|
|
|
|
|
|
|
|
Support for calling Vim functions from Lua (vim.call() and vim.fn()).
|
|
|
|
|
|
|
|
|
|
Recognize numbers as unsigned when "unsigned" is set in 'nrformats'.
|
|
|
|
|
|
|
|
|
|
Allow setting underline color in terminal.
|
|
|
|
|
|
|
|
|
|
Expand script ID using expand('<SID>'). |expand()|
|
|
|
|
|
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.
|
|
|
|
@@ -307,25 +333,27 @@ Locale aware sorting using |:sort| and |sort()|.
|
|
|
|
|
|
|
|
|
|
Hide cursor when sleeping using |:sleep!|.
|
|
|
|
|
|
|
|
|
|
Detect focus events in terminal (|FocusGained| and |FocusLost|).
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
spaces. Support specifying a character using the hexdecimal notation in
|
|
|
|
|
'listchars' (\x, \u and \U).
|
|
|
|
|
|
|
|
|
|
Make 'listchars', 'virtualedit' and 'thesaurusfunc' global-local options.
|
|
|
|
|
|
|
|
|
|
Support for looping over a string using |:for|.
|
|
|
|
|
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})
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
@@ -338,14 +366,8 @@ adjust sign highlighting for 'cursorline'.
|
|
|
|
|
|
|
|
|
|
Add the |hl-CurSearch| default highlight group for the current search match.
|
|
|
|
|
|
|
|
|
|
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 support for logging on Vim startup (|--log|).
|
|
|
|
|
|
|
|
|
|
Add "/" in 'formatoptions' to stop inserting // when using "o" on a line with
|
|
|
|
|
inline comment. |fo-/|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
@@ -353,24 +375,17 @@ using 'errorformat'.
|
|
|
|
|
|
|
|
|
|
Support truncating the tag stack using |settagstack()|.
|
|
|
|
|
|
|
|
|
|
Support using any Vim type for user_data with the completion functions
|
|
|
|
|
(|complete-items|).
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Add bell support for the terminal window. ('belloff')
|
|
|
|
|
|
|
|
|
|
Sync the undo file if 'fsync' is set.
|
|
|
|
|
|
|
|
|
|
Support excluding the 'runtimepath' and 'packpath' options from a session file
|
|
|
|
|
using "skiprtp" in 'sessionoptions'.
|
|
|
|
|
|
|
|
|
|
Stop insert mode completion without changing text (|i_CTRL-X_CTRL-Z|).
|
|
|
|
|
|
|
|
|
|
Support for getting the number of lines (linecount) in a buffer using
|
|
|
|
|
Support for getting the number of lines (line count) in a buffer using
|
|
|
|
|
|getbufinfo()|.
|
|
|
|
|
|
|
|
|
|
Support |filter()| and |map()| for blob and string types.
|
|
|
|
@@ -381,8 +396,6 @@ Add support for checking whether a function name is valid using |exists()|.
|
|
|
|
|
|
|
|
|
|
Update xdiff to version 2.33. Update libvterm to revision 789.
|
|
|
|
|
|
|
|
|
|
Added support for the |Haiku| OS.
|
|
|
|
|
|
|
|
|
|
Support 'trim' for Python/Lua/Perl/Tcl/Ruby/MzScheme interface heredoc.
|
|
|
|
|
|
|
|
|
|
Add the |t_AU| and |t_8u| termap codes for underline and undercurl. Add the
|
|
|
|
@@ -407,38 +420,53 @@ using the "tcd -" and "lcd -" commands. (|:tcd-| and |:lcd-|)
|
|
|
|
|
|
|
|
|
|
Add support for skipping an expression using |search()|.
|
|
|
|
|
|
|
|
|
|
Add the "cmdline" option to |getcompletion()| to return the command line
|
|
|
|
|
arguments.
|
|
|
|
|
|
|
|
|
|
Add support for spell checking CamelCased words by adding "camel" to
|
|
|
|
|
'spelloptions'.
|
|
|
|
|
|
|
|
|
|
Add support for importing Vim scripts using |:import| from a Vimscript.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Convert a Lua function and a closure to a Vim funcref so that it can be
|
|
|
|
|
accessed in a Vimscript. (|lua-funcref|) Make Lua arrays one based.
|
|
|
|
|
Add table.insert() and table.remove() functions.
|
|
|
|
|
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 Vimscript (|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 mouse left-right scrolling in a terminal window.
|
|
|
|
|
Support for new UTF-8 characters from Unicode release 13.
|
|
|
|
|
|
|
|
|
|
Updated colorschemes from https://github.com/vim/colorschemes is included.
|
|
|
|
|
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.
|
|
|
|
|
- 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).
|
|
|
|
|
|
|
|
|
|
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 are fixed.
|
|
|
|
|
|
|
|
|
|
TODO: more
|
|
|
|
|
Many Coverity static analysis warnings have been fixed.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
COMPILE TIME CHANGES *compile-changes-9*
|
|
|
|
@@ -461,11 +489,15 @@ work properly:
|
|
|
|
|
|
|
|
|
|
The rgb.txt file is no longer included, use colors/lists/default.vim instead.
|
|
|
|
|
|
|
|
|
|
Several source files were split, mainly to make it easier to inspect code
|
|
|
|
|
coverage information.
|
|
|
|
|
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*
|
|
|
|
@@ -12812,7 +12844,7 @@ Files: src/bufwrite.c, src/testdir/test_viminfo.vim
|
|
|
|
|
Patch 8.2.2040
|
|
|
|
|
Problem: Terminal buffer disappears even when 'bufhidden' is "hide".
|
|
|
|
|
(Sergey Vlasov)
|
|
|
|
|
Solution: Check 'bufhiddden' when a terminal buffer becomes hidden.
|
|
|
|
|
Solution: Check 'bufhidden' when a terminal buffer becomes hidden.
|
|
|
|
|
(closes #7358)
|
|
|
|
|
Files: src/buffer.c, src/testdir/test_terminal.vim
|
|
|
|
|
|
|
|
|
@@ -25903,7 +25935,7 @@ Solution: Only delete the tail from the record buffer if the character was
|
|
|
|
|
Files: src/normal.c, src/testdir/test_registers.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4238
|
|
|
|
|
Problem: *.tf file could be fileytpe "tf" or "terraform".
|
|
|
|
|
Problem: *.tf file could be filetype "tf" or "terraform".
|
|
|
|
|
Solution: Detect the type from the file contents. (closes #9642)
|
|
|
|
|
Files: runtime/filetype.vim, runtime/autoload/dist/ft.vim,
|
|
|
|
|
src/testdir/test_filetype.vim
|
|
|
|
@@ -27440,7 +27472,7 @@ Solution: Temporary fix: put back regexp. (closes #9852, closes #9851)
|
|
|
|
|
Files: src/cmdexpand.c, src/testdir/test_cmdline.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4479
|
|
|
|
|
Problem: No fuzzy completieon for maps and abbreviations.
|
|
|
|
|
Problem: No fuzzy completion for maps and abbreviations.
|
|
|
|
|
Solution: Fuzzy complete maps and abbreviations. (Yegappan Lakshmanan,
|
|
|
|
|
closes #9856)
|
|
|
|
|
Files: src/cmdexpand.c, src/map.c, src/proto/map.pro, src/search.c,
|
|
|
|
@@ -27662,7 +27694,7 @@ Files: src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/userfunc.c,
|
|
|
|
|
src/testdir/test_vim9_script.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4515
|
|
|
|
|
Problem: Old subsitute syntax is still supported.
|
|
|
|
|
Problem: Old substitute syntax is still supported.
|
|
|
|
|
Solution: Disallow using backslash after ":s" in Vim9 script.
|
|
|
|
|
Files: src/ex_cmds.c, src/errors.h, src/testdir/test_substitute.vim
|
|
|
|
|
|
|
|
|
@@ -27715,7 +27747,7 @@ Files: src/term.c
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4524
|
|
|
|
|
Problem: MS-Windows: cannot build with some sodium libraries.
|
|
|
|
|
Solution: Make the DLL name configuragle. Add build instructions.
|
|
|
|
|
Solution: Make the DLL name configurable. Add build instructions.
|
|
|
|
|
(Ken Takata, closes #9905)
|
|
|
|
|
Files: src/INSTALLpc.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak,
|
|
|
|
|
src/crypt.c
|
|
|
|
@@ -28312,7 +28344,7 @@ Files: src/eval.c, src/testdir/test_vim9_script.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4623
|
|
|
|
|
Problem: Coverity warns for using uninitialized field.
|
|
|
|
|
Solution: Initialize he field to zero.
|
|
|
|
|
Solution: Initialize the field to zero.
|
|
|
|
|
Files: src/ex_docmd.c
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4624
|
|
|
|
@@ -28759,7 +28791,7 @@ Files: src/getchar.c
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4692
|
|
|
|
|
Problem: No test for what 8.2.4691 fixes.
|
|
|
|
|
Solution: Add a test. Use a more generic sotlution. (closes #10090)
|
|
|
|
|
Solution: Add a test. Use a more generic solution. (closes #10090)
|
|
|
|
|
Files: src/getchar.c, src/mouse.c, src/testdir/test_mapping.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4693 (after 8.2.4688)
|
|
|
|
@@ -28907,7 +28939,7 @@ Files: src/alloc.c, src/alloc.h, src/proto/alloc.pro, src/userfunc.c,
|
|
|
|
|
Patch 8.2.4717
|
|
|
|
|
Problem: For TextYankPost v:event does not contain information about the
|
|
|
|
|
operation being inclusive or not.
|
|
|
|
|
Solution: Add "inclusive" to v:event. (Justn M. Keyes, Yegappan Lakshmanan,
|
|
|
|
|
Solution: Add "inclusive" to v:event. (Justin M. Keyes, Yegappan Lakshmanan,
|
|
|
|
|
closes #10125)
|
|
|
|
|
Files: runtime/doc/autocmd.txt, src/register.c,
|
|
|
|
|
src/testdir/test_autocmd.vim
|
|
|
|
@@ -29092,7 +29124,7 @@ Files: src/terminal.c, src/misc1.c
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4746
|
|
|
|
|
Problem: Supercollider filetype not recognized.
|
|
|
|
|
Solution: Match file extentions and check file contents to detect
|
|
|
|
|
Solution: Match file extensions and check file contents to detect
|
|
|
|
|
supercollider. (closes #10142)
|
|
|
|
|
Files: runtime/filetype.vim, runtime/autoload/dist/ft.vim,
|
|
|
|
|
src/testdir/test_filetype.vim
|
|
|
|
@@ -29625,7 +29657,7 @@ Solution: Remove dead code. Add disassemble tests.
|
|
|
|
|
Files: src/vim9execute.c, src/vim9.h,
|
|
|
|
|
src/testdir/test_vim9_disassemble.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4837 (after patch 8.2.0919
|
|
|
|
|
Patch 8.2.4837 (after patch 8.2.0919)
|
|
|
|
|
Problem: Modifiers not simplified when timed out or using feedkeys() with
|
|
|
|
|
'n" flag.
|
|
|
|
|
Solution: Adjust how mapped flag and timeout are used. (closes #10305)
|
|
|
|
@@ -29714,7 +29746,7 @@ Files: src/session.c
|
|
|
|
|
Patch 8.2.4852
|
|
|
|
|
Problem: ANSI color index to RGB value not correct.
|
|
|
|
|
Solution: Convert the cterm index to ANSI index. (closes #10321,
|
|
|
|
|
closes #9836))
|
|
|
|
|
closes #9836)
|
|
|
|
|
Files: src/term.c
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4853
|
|
|
|
@@ -29950,7 +29982,7 @@ Files: Filelist, runtime/import/dist/vimhelp.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4892
|
|
|
|
|
Problem: Test failures because of changed error messages.
|
|
|
|
|
Solution: Adjust the exptected error messages.
|
|
|
|
|
Solution: Adjust the expected error messages.
|
|
|
|
|
Files: src/testdir/test_vim9_assign.vim,
|
|
|
|
|
src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim,
|
|
|
|
|
src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim,
|
|
|
|
@@ -29986,7 +30018,7 @@ Files: src/eval.c, src/testdir/test_lambda.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4898
|
|
|
|
|
Problem: Coverity complains about pointer usage.
|
|
|
|
|
Solution: Move code for increment/decerment.
|
|
|
|
|
Solution: Move code for increment/decrement.
|
|
|
|
|
Files: src/vim9compile.c
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4899
|
|
|
|
@@ -30183,7 +30215,7 @@ Files: src/bufwrite.c, src/channel.c, src/cindent.c, src/crypt.c,
|
|
|
|
|
src/os_vms.c, src/os_vms_conf.h
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4929
|
|
|
|
|
Problem: Off-by-one error in in statusline item.
|
|
|
|
|
Problem: Off-by-one error in statusline item.
|
|
|
|
|
Solution: Subtrace one less. (closes #10394, closes #5599)
|
|
|
|
|
Files: src/buffer.c, src/testdir/test_statusline.vim,
|
|
|
|
|
src/testdir/dumps/Test_statusline_hl.dump
|
|
|
|
@@ -30327,7 +30359,7 @@ Solution: Check the cursor is in indent. (closes #10420)
|
|
|
|
|
Files: src/indent.c, src/testdir/test_smartindent.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.4954
|
|
|
|
|
Problem: Inserting line breaks text property spanning more then one line.
|
|
|
|
|
Problem: Inserting line breaks text property spanning more than one line.
|
|
|
|
|
Solution: Check TP_FLAG_CONT_PREV and TP_FLAG_CONT_NEXT. (closes #10423)
|
|
|
|
|
Files: src/textprop.c, src/testdir/test_textprop.vim
|
|
|
|
|
|
|
|
|
@@ -31394,6 +31426,160 @@ Solution: Avoid setting timeout_flag twice. Adjust the pointer when
|
|
|
|
|
stopping the regexp timeout. Adjust variable name.
|
|
|
|
|
Files: src/os_unix.c, src/os_win32.c, src/regexp.c
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5130
|
|
|
|
|
Problem: Edit test for mode message fails when using valgrind.
|
|
|
|
|
Solution: Use WaitForAssert(). Run beep test later.
|
|
|
|
|
Files: src/testdir/test_edit.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5131
|
|
|
|
|
Problem: Timeout implementation is not optimal.
|
|
|
|
|
Solution: Further improvements for timeouts. Add a test for searchpair()
|
|
|
|
|
timeout. (partly by Paul Ollis)
|
|
|
|
|
Files: src/configure.ac, src/auto/configure,
|
|
|
|
|
src/testdir/test_hlsearch.vim, src/testdir/test_search.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5132
|
|
|
|
|
Problem: :mkview test doesn't test much.
|
|
|
|
|
Solution: Save the view with the folds closed. (James McCoy, closes #10596)
|
|
|
|
|
Files: src/testdir/test_mksession.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5133
|
|
|
|
|
Problem: MacOS: build fails.
|
|
|
|
|
Solution: Remove "#if 0" from timer_delete().
|
|
|
|
|
Files: src/os_macosx.m
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5134
|
|
|
|
|
Problem: Function has confusing name.
|
|
|
|
|
Solution: Rename tgetent_error() to invoke_tgetent().
|
|
|
|
|
Files: src/term.c
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5135
|
|
|
|
|
Problem: Running configure gives warnings for main() return type.
|
|
|
|
|
Solution: Specify "int" return type. Avoid a few more warnings.
|
|
|
|
|
Files: src/configure.ac, src/auto/configure
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5136
|
|
|
|
|
Problem: Debugger test fails when run with valgrind.
|
|
|
|
|
Solution: Wait longer when using valgrind.
|
|
|
|
|
Files: src/testdir/shared.vim, src/testdir/test_debugger.vim,
|
|
|
|
|
src/testdir/test_search.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5137
|
|
|
|
|
Problem: Cannot build without the +channel feature. (Dominique Pellé)
|
|
|
|
|
Solution: Add #ifdef around ch_log() calls. (closes #10598)
|
|
|
|
|
Files: src/os_unix.c, src/regexp_nfa.c, src/regexp_bt.c
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5138
|
|
|
|
|
Problem: Various small issues.
|
|
|
|
|
Solution: Various small improvments.
|
|
|
|
|
Files: src/filepath.c, src/job.c, src/mark.c, src/move.c,
|
|
|
|
|
src/popupwin.c, src/testdir/test_filetype.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5139
|
|
|
|
|
Problem: TIME_WITH_SYS_TIME is no longer supported by autoconf.
|
|
|
|
|
Solution: Always include time.h.
|
|
|
|
|
Files: src/os_unix.h
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5140
|
|
|
|
|
Problem: Seachpair timeout test is flaky.
|
|
|
|
|
Solution: Mark the test as flaky so it is retried.
|
|
|
|
|
Files: src/testdir/test_search.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5141
|
|
|
|
|
Problem: Using "volatile int" in a signal handler might be wrong.
|
|
|
|
|
Solution: Use "volatile sig_atomic_t".
|
|
|
|
|
Files: src/os_unix.c, src/proto/os_unix.pro, src/os_win32.c,
|
|
|
|
|
src/proto/os_win32.pro, src/regexp.c,
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5142
|
|
|
|
|
Problem: Startup test fails if there is a status bar at the top of the
|
|
|
|
|
screen. (Ernie Rael)
|
|
|
|
|
Solution: Use a larger vertical offset in the test.
|
|
|
|
|
Files: src/testdir/test_startup.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5143
|
|
|
|
|
Problem: Some tests fail when using valgrind. Spurious leak reports.
|
|
|
|
|
Solution: Use WaitForAssert(). Avoid failing fork/exec. Skip tests where a
|
|
|
|
|
job is killed when running valgrind.
|
|
|
|
|
Files: src/testdir/test_iminsert.vim, src/testdir/test_popup.vim,
|
|
|
|
|
src/testdir/test_cscope.vim, src/testdir/test_channel.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5144
|
|
|
|
|
Problem: With 'lazyredraw' set completion menu may be displayed wrong.
|
|
|
|
|
Solution: When the popup menu is visible do not insert a screen line.
|
|
|
|
|
(closes #10601)
|
|
|
|
|
Files: src/screen.c
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5145
|
|
|
|
|
Problem: Exit test causes spurious valgrind reports.
|
|
|
|
|
Solution: Skip test. Add CheckNotValgrind.
|
|
|
|
|
Files: src/testdir/test_exit.vim, src/testdir/check.vim,
|
|
|
|
|
src/testdir/test_channel.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5146
|
|
|
|
|
Problem: Memory leak when substitute expression nests.
|
|
|
|
|
Solution: Use an array of expression results.
|
|
|
|
|
Files: src/alloc.c, src/regexp.c, src/proto/regexp.pro,
|
|
|
|
|
src/errors.h, src/ex_cmds.c, src/testdir/test_substitute.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5147
|
|
|
|
|
Problem: Flaky test always fails on retry.
|
|
|
|
|
Solution: Delete the created function.
|
|
|
|
|
Files: src/testdir/test_search.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5148
|
|
|
|
|
Problem: Invalid memory access when using an expression on the command line.
|
|
|
|
|
Solution: Make sure the position does not go negative.
|
|
|
|
|
Files: src/ex_getln.c, src/testdir/test_cmdline.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5149 (after 8.2.5148)
|
|
|
|
|
Problem: Cannot build without the +eval feature. (Tony Mechelynck)
|
|
|
|
|
Solution: Add #ifdefs.
|
|
|
|
|
Files: src/ex_getln.c
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5150
|
|
|
|
|
Problem: Read past the end of the first line with ":0;'{".
|
|
|
|
|
Solution: When on line zero check the column is valid for line one.
|
|
|
|
|
Files: src/ex_docmd.c, src/testdir/test_cmdline.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5151
|
|
|
|
|
Problem: Reading beyond the end of the line with lisp indenting.
|
|
|
|
|
Solution: Avoid going over the NUL at the end of the line.
|
|
|
|
|
Files: src/indent.c, src/testdir/test_lispwords.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5152
|
|
|
|
|
Problem: search() gets stuck with "c" and skip evaluates to true.
|
|
|
|
|
Solution: Reset the SEARCH_START option. (closes #10608)
|
|
|
|
|
Files: src/evalfunc.c, src/testdir/test_syntax.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5153
|
|
|
|
|
Problem: "make uninstall" does not remove colors/lists.
|
|
|
|
|
Solution: Add a line to the Makefile. (closes #10609)
|
|
|
|
|
Files: src/Makefile
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5154
|
|
|
|
|
Problem: Still mentioning version8, some cosmetic issues.
|
|
|
|
|
Solution: Prefer mentioning version9, cosmetic improvements.
|
|
|
|
|
Files: src/version.c, src/if_tcl.c, src/regexp.c,
|
|
|
|
|
src/testdir/test_gui.vim, src/os_unix.c, Filelist, src/Makefile
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5155
|
|
|
|
|
Problem: In diff mode windows may get out of sync. (Gary Johnson)
|
|
|
|
|
Solution: Avoid that the other window scrolls for 'cursorbind'.
|
|
|
|
|
Files: src/move.c, src/testdir/test_diffmode.vim,
|
|
|
|
|
src/testdir/dumps/Test_diff_scroll_1.dump,
|
|
|
|
|
src/testdir/dumps/Test_diff_scroll_2.dump
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5156
|
|
|
|
|
Problem: Search timeout test often fails with FreeBSD.
|
|
|
|
|
Solution: Double the maximum time.
|
|
|
|
|
Files: src/testdir/test_search.vim
|
|
|
|
|
|
|
|
|
|
Patch 8.2.5157
|
|
|
|
|
Problem: MS-Windows GUI: CTRL-key combinations do not always work.
|
|
|
|
|
Solution: Handle special key combinations better. (closes #10613,
|
|
|
|
|
closes #10602, closes #10579)
|
|
|
|
|
Files: src/gui_w32.c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vim:tw=78:ts=8:noet:ft=help:norl:
|
|
|
|
|