comparison runtime/doc/version9.txt @ 29285:729a7c00fabc

Update runtime files Commit: https://github.com/vim/vim/commit/e1dc76fbf333243ecfdfc3c0a81ea9984913b4f5 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jun 25 18:01:32 2022 +0100 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Sat, 25 Jun 2022 19:15:06 +0200
parents d314efe6447a
children dc4de65a7fb7
comparison
equal deleted inserted replaced
29284:784dae749bdb 29285:729a7c00fabc
1 *version9.txt* For Vim version 8.2. Last change: 2022 Jun 20 1 *version9.txt* For Vim version 8.2. Last change: 2022 Jun 24
2 2
3 3
4 VIM REFERENCE MANUAL by Bram Moolenaar 4 VIM REFERENCE MANUAL by Bram Moolenaar
5 5
6 6
7 *vim-9.0* *vim-9* *version-9.0* *version9.0* 7 *vim-9.0* *vim-9* *version-9.0* *version9.0*
8 Welcome to Vim 9! Several years have passed since the previous release. 8 Welcome to Vim 9! Several years have passed since the previous release.
9 A large number of bugs have been fixed, many nice features have been added 9 A large number of bugs have been fixed, many nice features have been added
10 and Vim9 script syntax has been introduced. This file mentions all the new 10 and the Vim9 script syntax is here! This file mentions all the new things and
11 things and changes to existing features since Vim 8.2.0. The patches up to Vim 11 changes to existing features since Vim 8.2.0. The patches up to Vim 8.2 can be
12 8.2 can be found here: |vim-8.2|. 12 found here: |vim-8.2|.
13 13
14 Use this command to see the full version and features information of the Vim 14 Use this command to see the full version and features information of the Vim
15 program you are using: > 15 program you are using: >
16 :version 16 :version
17 17
18 NEW FEATURES |new-9| 18 NEW FEATURES |new-9|
19 Vim script enhancements |new-vim-script-9| 19 Vim script enhancements |new-vim-script-9|
20 Various new items |new-items-9| 20 Command line completion in a popup menu |new-popup-compl|
21 21 Updated colorschemes |new-colorschemes-9|
22 INCOMPATIBLE CHANGES |incompatible-9| 22 Various new items |new-items-9|
23 23
24 IMPROVEMENTS |improvements-9| 24 INCOMPATIBLE CHANGES |incompatible-9|
25 25
26 COMPILE TIME CHANGES |compile-changes-9| 26 IMPROVEMENTS |improvements-9|
27 27
28 PATCHES |patches-9| 28 COMPILE TIME CHANGES |compile-changes-9|
29
30 PATCHES |patches-9|
29 31
30 32
31 See |vi_diff.txt| for an overview of differences between Vi and Vim 9.0. 33 See |vi_diff.txt| for an overview of differences between Vi and Vim 9.0.
32 See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and 34 See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and
33 |version8.txt| for differences between Vim versions. 35 |version8.txt| for differences between Vim versions.
49 51
50 52
51 Vim9 script ~ 53 Vim9 script ~
52 *new-vim-script-9* 54 *new-vim-script-9*
53 The Vim script language has been changed step by step over many years, 55 The Vim script language has been changed step by step over many years,
54 preserving backwards compatibility. Several choices made in early days got in 56 preserving backwards compatibility. Several choices made in the early days
55 the way of making it work better. At the same time, Vim script is being used 57 got in the way of making it work better. At the same time, Vim script is
56 much more often, since there are so many plugins being used. 58 being used much more often, since there are so many plugins being used.
57 59
58 Vim9 script provides a syntax that is much more similar to other languages. 60 Vim9 script provides a syntax that is much more similar to other languages.
59 In other words: "less weird". Compiled functions are introduced which allow 61 In other words: "less weird". Compiled functions are introduced which allow
60 for a large speed improvement. You can expect around ten times faster 62 for a large speed improvement. You can expect around ten times faster
61 execution. The price to pay is that Vim9 script is not backwards compatible. 63 execution, or even more. The price to pay is that Vim9 script is not
62 But don't worry, you can still use your old scripts, the new script language 64 backwards compatible. But don't worry, you can still use your old scripts,
63 is added, it does not replace the legacy script. 65 the new script language is added, it does not replace the legacy script.
64 66
65 All the information about Vim9 script can be found in the |Vim9| help file. 67 Information about Vim9 script can be found in the |Vim9| help file.
66 68
67 69
68 Various new items *new-items-9* 70 Command line completion in a popup menu ~
69 ----------------- 71 *new-popup-compl*
70 72 Before there was the 'wildmenu' option, which uses the space of one line above
71 TODO: Visual/Insert/Cmdline mode commands? 73 the statusline to show matches. Only a few matches fit there.
72 74
73 75 Now a popup menu can be used by setting "wildoptions' to "pum". This allows
76 for showing many more matches. This requires redrawing more of the display,
77 but since computers are fast enough that is not a problem.
78
79
80 Updated colorschemes ~
81 *new-colorschemes-9*
82 Colorschemes from https://github.com/vim/colorschemes have been included.
83 They were made to work consistently across many types of terminals. Although
84 generally an improvement, a lot of personal preference is involved. You can
85 always get the old version if you prefer it, look here:
86 https://github.com/vim/colorschemes/blob/master/legacy_colors/
87
88
89 Various new items ~
90 *new-items-9*
74 Options: ~ 91 Options: ~
75 92
76 'autoshelldir' change directory to the shell's current directory 93 'autoshelldir' change directory to the shell's current directory
77 'cdhome' change directory to the home directory by ":cd" 94 'cdhome' change directory to the home directory by ":cd"
78 'cinscopedecls' words that are recognized by 'cino-g' 95 'cinscopedecls' words that are recognized by 'cino-g'
84 'xtermcodes' request terminal codes from an xterm 101 'xtermcodes' request terminal codes from an xterm
85 102
86 103
87 Ex commands: ~ 104 Ex commands: ~
88 105
89 |:abstract| 106 |:abstract| (reserved for future use)
90 |:argdedupe| remove duplicates from the argument list 107 |:argdedupe| remove duplicates from the argument list
91 |:balt| like ":badd" but also set the alternate file 108 |:balt| like ":badd" but also set the alternate file
92 |:class| reserved for future use 109 |:class| (reserved for future use)
93 |:def| define a Vim9 user function 110 |:def| define a Vim9 user function
94 |:defcompile| compile Vim9 user functions in current script 111 |:defcompile| compile Vim9 user functions in current script
95 |:disassemble| disassemble Vim9 user function 112 |:disassemble| disassemble Vim9 user function
96 |:echoconsole| like :echomsg but write to stdout 113 |:echoconsole| like :echomsg but write to stdout
97 |:endinterface| reserved for future use 114 |:endinterface| (reserved for future use)
98 |:endclass| reserved for future use 115 |:endclass| (reserved for future use)
99 |:enddef| end of a user function started with :def 116 |:enddef| end of a user function started with :def
100 |:endenum| reserved for future use 117 |:endenum| (reserved for future use)
101 |:enum| reserved for future use 118 |:enum| (reserved for future use)
119 |:eval| evaluate an expression and discard the result
102 |:export| Vim9: export an item from a script 120 |:export| Vim9: export an item from a script
103 |:final| declare an immutable variable in Vim9 121 |:final| declare an immutable variable in Vim9
104 |:import| Vim9: import an item from another script 122 |:import| Vim9: import an item from another script
105 |:interface| reserved for future use 123 |:interface| (reserved for future use)
106 |:static| reserved for future use 124 |:static| (reserved for future use)
107 |:type| reserved for future use 125 |:type| (reserved for future use)
108 |:var| variable declaration in Vim9 126 |:var| variable declaration in Vim9
109 |:vim9script| indicates Vim9 script file 127 |:vim9script| indicates Vim9 script file
110 128
111 129
112 Ex command modifiers: ~ 130 Ex command modifiers: ~
136 |flattennew()| flatten a copy of a List 154 |flattennew()| flatten a copy of a List
137 |fullcommand()| get full command name 155 |fullcommand()| get full command name
138 |getcharpos()| get character position of cursor, mark, etc. 156 |getcharpos()| get character position of cursor, mark, etc.
139 |getcharstr()| get a character from the user as a string 157 |getcharstr()| get a character from the user as a string
140 |getcmdcompltype()| return current cmdline completion type 158 |getcmdcompltype()| return current cmdline completion type
159 |getcmdscreenpos()| return the current cursor position in the cmdline
141 |getcursorcharpos()| get character position of the cursor 160 |getcursorcharpos()| get character position of the cursor
142 |getmarklist()| list of global/local marks 161 |getmarklist()| list of global/local marks
143 |getreginfo()| get information about a register 162 |getreginfo()| get information about a register
144 |gettext()| lookup message translation 163 |gettext()| lookup message translation
145 |hlget()| get highlight group attributes 164 |hlget()| get highlight group attributes
193 |v:maxcol| maximum line length 212 |v:maxcol| maximum line length
194 213
195 214
196 New autocommand events: ~ 215 New autocommand events: ~
197 216
198 |CompleteDonePre| after Insert mode completion is done, before clearing 217 |CompleteDonePre| after Insert mode completion done, before clearing info
199 info
200 |DirChangedPre| before the working directory will change 218 |DirChangedPre| before the working directory will change
201 |InsertLeavePre| just before leaving Insert mode 219 |InsertLeavePre| just before leaving Insert mode
202 |ModeChanged| after changing the mode 220 |ModeChanged| after changing the mode
203 |SigUSR1| after the SIGUSR1 signal has been detected 221 |SigUSR1| after the SIGUSR1 signal has been detected
204 |WinClosed| after closing a window 222 |WinClosed| after closing a window
205 |WinScrolled| after scrolling or resizing a window 223 |WinScrolled| after scrolling or resizing a window
206 |VimSuspend| when suspending Vim 224 |VimSuspend| when suspending Vim
207 |VimResume| when Vim is resumed after being suspended 225 |VimResume| when Vim is resumed after being suspended
208 226
209 227
210 New operator: ~ 228 New operators: ~
211 229
212 |>>| bitwise right shift 230 |>>| bitwise right shift
213 |<<| bitwise left shift 231 |<<| bitwise left shift
214 |??| falsy operator 232 |??| falsy operator
215 233
218 Too many to list here. 236 Too many to list here.
219 237
220 ============================================================================== 238 ==============================================================================
221 INCOMPATIBLE CHANGES *incompatible-9* 239 INCOMPATIBLE CHANGES *incompatible-9*
222 240
223 These changes are incompatible with previous releases. Check this list if you 241 There is only one change that is incompatible with previous releases:
224 run into a problem when upgrading from Vim 8.2 to 9.0. 242
225 243 - Lua arrays are now one-based, they used to be zero-based.
226 TODO 244
245 Note that when using |Vim9| script several things work differently, see
246 |vim9-differences|.
227 247
228 ============================================================================== 248 ==============================================================================
229 IMPROVEMENTS *improvements-9* 249 IMPROVEMENTS *improvements-9*
230 250
231 Various small and useful improvements have been made since Vim 8.2. Here is a 251 Various small and useful improvements have been made since Vim 8.2, here is a
232 collection of changes that are worth mentioning. 252 summary.
233 253
234 Many memory leaks, invalid memory accesses and crashes have been fixed. 254 Many memory leaks, invalid memory accesses and crashes have been fixed.
235 See the list of patches below: |bug-fixes-9|. 255 See the list of patches below: |bug-fixes-9|.
236 256
237 Support for Vim expression evaluation in a string. |interp-string| 257 Support for Vim expression evaluation in a string. |interp-string|
238 Support for evaluating Vim expressions in a heredoc. |:let-heredoc| 258 Support for evaluating Vim expressions in a heredoc. |:let-heredoc|
239 259
240 Display the command line completion matches in a popup menu. 'wildoptions' 260 Support for fuzzy matching:
241 261 - a string in a List of strings. |fuzzy-matching|
242 Support for fuzzy matching a string in a List of strings. |fuzzy-matching| 262 - completion support for command line completion using 'wildoptions'
243 263 - for |:vimgrep|.
244 Fuzzy completion support for command line completion using 'wildoptions'. 264
245 265 Added support for the |Haiku| OS.
246 Fuzzy match support for |:vimgrep|.
247
248 Haiku support. |Haiku|
249 266
250 Support for "lsp" channel mode to simplify LSP server RPC communication 267 Support for "lsp" channel mode to simplify LSP server RPC communication
251 |language-server-protocol|. Support for using a Unix domain socket with a 268 |language-server-protocol|. Support for using a Unix domain socket with a
252 |channel|. IPv6 support in channels |channel-address|. 269 |channel|. IPv6 support in channels |channel-address|.
253 270
254 Support for sourcing lines from the current buffer. |:source-range| 271 Support for sourcing lines from the current buffer. |:source-range|
255 272
256 Support for opening a terminal in a popup window. |popup-terminal| 273 Terminal window improvements:
274 - Support for opening a terminal in a popup window. |popup-terminal|
275 - Allow setting underline color in terminal.
276 - Detect focus events in terminal (|FocusGained| and |FocusLost|).
277 - Add bell support for the terminal window. ('belloff')
278 - Support mouse left-right scrolling in a terminal window.
257 279
258 Support for stopping profiling a Vim script: `:profile stop` and dumping the 280 Support for stopping profiling a Vim script: `:profile stop` and dumping the
259 report to a file: `:profile dump` . |:profile| 281 report to a file: `:profile dump` . |:profile|
260 282
261 Argument completion support for the |:breakadd|, |:breakdel|, |:diffget|, 283 Completion improvements:
262 |:diffput|, |:profile|, |:profdel| and |:scriptnames| commands. 284 - Argument completion support for the |:breakadd|, |:breakdel|, |:diffget|,
285 |:diffput|, |:profile|, |:profdel| and |:scriptnames| commands.
286 - Support using any Vim type for user_data with the completion functions
287 (|complete-items|).
288 - Stop insert mode completion without changing text (|i_CTRL-X_CTRL-Z|).
289 - Add the "cmdline" option to |getcompletion()| to return the command line
290 arguments.
263 291
264 Support for setting the 'foldtext', 'completefunc', 'omnifunc', 292 Support for setting the 'foldtext', 'completefunc', 'omnifunc',
265 'operatorfunc', 'thesaurusfunc', 'quickfixtextfunc', 'tagfunc', 293 'operatorfunc', 'thesaurusfunc', 'quickfixtextfunc', 'tagfunc',
266 'imactivatefunc' and 'imstatusfunc' options to a function reference or a 294 'imactivatefunc' and 'imstatusfunc' options to a function reference or a
267 lambda function or a script-local function. 295 lambda function or a script-local function.
268 296
269 Support directly setting the 'balloonexpr', 'charconvert' 'foldexpr', 297 Support directly setting the 'balloonexpr', 'charconvert' 'foldexpr',
270 'formatexpr', 'includeexpr', 'printexpr', 'patchexpr', 'indentexpr', 298 'formatexpr', 'includeexpr', 'printexpr', 'patchexpr', 'indentexpr',
271 'modelineexpr', 'diffexpr' and 'printexpr' options to a script-local function. 299 'modelineexpr', 'diffexpr' and 'printexpr' options to a script-local function.
272 300
273 Support for configuring the character used to mark the beginning of a fold, 301 Improvements in 'fillchars':
274 show a closed fold and show a fold separator using "foldopen", "foldclose" and 302 - Support for configuring the character used to mark the beginning of a fold,
275 "foldsep" respectively in 'fillchars'. 303 show a closed fold and show a fold separator using "foldopen", "foldclose"
276 304 and "foldsep" respectively in 'fillchars'.
277 Support for configuring the character displayed in non existing lines using 305 - Support for configuring the character displayed in non existing lines using
278 "eob" in 'fillchars'. 306 "eob" in 'fillchars'.
279 307 - Support for using multibyte items with the "stl", "stlnc", "foldopen",
280 Support for using multibyte items with the "stl", "stlnc", "foldopen", 308 "foldclose" and "foldsep" items in the 'fillchars' option.
281 "foldclose" and "foldsep" items in the 'fillchars' option.
282 309
283 Support for the XChaCha20 encryption method. 'cryptmethod' 310 Support for the XChaCha20 encryption method. 'cryptmethod'
284 311
285 Spell check current word with |z=| even when 'spell' is off. 312 Spell checking:
286 313 - Spell check current word with |z=| even when 'spell' is off.
287 Add "timeout" to 'spellsuggest' to limit the searching time for spell 314 - Add "timeout" to 'spellsuggest' to limit the searching time for spell
288 suggestions. 315 suggestions.
316 - Add support for spell checking CamelCased words by adding "camel" to
317 'spelloptions'.
289 318
290 Support for executing Ex commands in a map without changing the current mode 319 Support for executing Ex commands in a map without changing the current mode
291 |<Cmd>| and |<ScriptCmd>|. 320 |<Cmd>| and |<ScriptCmd>|.
292 321
293 Add optional error code to |:cquit|. 322 Add optional error code to |:cquit|.
294 323
295 Support for calling Vim functions from Lua (vim.call() and vim.fn()).
296
297 Recognize numbers as unsigned when "unsigned" is set in 'nrformats'. 324 Recognize numbers as unsigned when "unsigned" is set in 'nrformats'.
298 325
299 Allow setting underline color in terminal. 326 Expand script ID using expand('<SID>') and script name using
300 327 expand('<script>'). |expand()|
301 Expand script ID using expand('<SID>'). |expand()|
302 328
303 Jump to the last accessed tab page using |g<Tab>| and support using the 329 Jump to the last accessed tab page using |g<Tab>| and support using the
304 last accessed tab page in |:tabnext| et al. 330 last accessed tab page in |:tabnext| et al.
305 331
306 Locale aware sorting using |:sort| and |sort()|. 332 Locale aware sorting using |:sort| and |sort()|.
307 333
308 Hide cursor when sleeping using |:sleep!|. 334 Hide cursor when sleeping using |:sleep!|.
309
310 Detect focus events in terminal (|FocusGained| and |FocusLost|).
311 335
312 Add "multispace" to 'listchars' to show two or more spaces no matter where 336 Add "multispace" to 'listchars' to show two or more spaces no matter where
313 they appear. Add "leadmultispace" to 'listchars' to show two or more leading 337 they appear. Add "leadmultispace" to 'listchars' to show two or more leading
314 spaces. Add "lead" to 'listchars' to set the character used to show leading 338 spaces. Add "lead" to 'listchars' to set the character used to show leading
315 spaces. 339 spaces. Support specifying a character using the hexdecimal notation in
340 'listchars' (\x, \u and \U).
316 341
317 Make 'listchars', 'virtualedit' and 'thesaurusfunc' global-local options. 342 Make 'listchars', 'virtualedit' and 'thesaurusfunc' global-local options.
318 343
319 Support for looping over a string using |:for|. 344 Support for looping over a string using `:for`.
320 345
321 Don't reset 'wrap' for diff windows when "followwrap" is set in 'diffopt'. 346 Don't reset 'wrap' for diff windows when "followwrap" is set in 'diffopt'.
322 347
323 Support for re-evaluating the 'statusline' expression as a statusline format 348 Support for re-evaluating the 'statusline' expression as a statusline format
324 string (%{expr}) 349 string (%{% expr %})
325 350
326 Add |zp| and |zP| to paste in block mode without adding trailing white space. 351 Add |zp| and |zP| to paste in block mode without adding trailing white space.
327 Add |zy| to yank without trailing white space in block mode. 352 Add |zy| to yank without trailing white space in block mode.
353
354 Add the 'P' command in visual mode to paste text in Visual mode without
355 yanking the deleted text to the unnamed register. |put-Visual-mode|
328 356
329 Add \%.l, \%<.l and \%>.l atoms to match the line the cursor is currently on. 357 Add \%.l, \%<.l and \%>.l atoms to match the line the cursor is currently on.
330 See |/\%l| for more information. 358 See |/\%l| for more information.
331 359
332 Add "list" to 'breakindentopt' to add additional indent for lines that match 360 Add "list" to 'breakindentopt' to add additional indent for lines that match
336 Add the |hl-CursorLineSign| and |hl-CursorLineFold| default highlight groups to 364 Add the |hl-CursorLineSign| and |hl-CursorLineFold| default highlight groups to
337 adjust sign highlighting for 'cursorline'. 365 adjust sign highlighting for 'cursorline'.
338 366
339 Add the |hl-CurSearch| default highlight group for the current search match. 367 Add the |hl-CurSearch| default highlight group for the current search match.
340 368
341 Add the 'P' command in visual mode to paste text in visual mode without
342 yanking the deleted text to the unnamed register. |put-Visual-mode|
343
344 Add support for logging on Vim startup (|--log|). 369 Add support for logging on Vim startup (|--log|).
345
346 Add "/" in 'formatoptions' to stop inserting // when using "o" on a line with
347 inline comment. |fo-/|
348 370
349 Add support for customizing the quickfix buffer contents using 371 Add support for customizing the quickfix buffer contents using
350 'quickfixtextfunc'. Support for the "note" error type (%t) in |errorformat|. 372 'quickfixtextfunc'. Support for the "note" error type (%t) in |errorformat|.
351 Add support for parsing the end line number (%e) and end column number (%k) 373 Add support for parsing the end line number (%e) and end column number (%k)
352 using 'errorformat'. 374 using 'errorformat'.
353 375
354 Support truncating the tag stack using |settagstack()|. 376 Support truncating the tag stack using |settagstack()|.
355 377
356 Support using any Vim type for user_data with the completion functions
357 (|complete-items|).
358
359 Display every option in a separate line when "!" is used with |:set|. 378 Display every option in a separate line when "!" is used with |:set|.
360 379
361 Add "nostop" to 'backspace' to allow backspacing over the start of insert for 380 Add "nostop" to 'backspace' to allow backspacing over the start of insert for
362 |CTRL-W| and |CTRL-U| also. 381 |CTRL-W| and |CTRL-U| also.
363 382
364 Add bell support for the terminal window. ('belloff')
365
366 Sync the undo file if 'fsync' is set. 383 Sync the undo file if 'fsync' is set.
367 384
368 Support excluding the 'runtimepath' and 'packpath' options from a session file 385 Support excluding the 'runtimepath' and 'packpath' options from a session file
369 using "skiprtp" in 'sessionoptions'. 386 using "skiprtp" in 'sessionoptions'.
370 387
371 Stop insert mode completion without changing text (|i_CTRL-X_CTRL-Z|). 388 Support for getting the number of lines (line count) in a buffer using
372
373 Support for getting the number of lines (linecount) in a buffer using
374 |getbufinfo()|. 389 |getbufinfo()|.
375 390
376 Support |filter()| and |map()| for blob and string types. 391 Support |filter()| and |map()| for blob and string types.
377 392
378 Support for using a multi-byte character for the tag kind. |tags-file-format| 393 Support for using a multi-byte character for the tag kind. |tags-file-format|
379 394
380 Add support for checking whether a function name is valid using |exists()|. 395 Add support for checking whether a function name is valid using |exists()|.
381 396
382 Update xdiff to version 2.33. Update libvterm to revision 789. 397 Update xdiff to version 2.33. Update libvterm to revision 789.
383
384 Added support for the |Haiku| OS.
385 398
386 Support 'trim' for Python/Lua/Perl/Tcl/Ruby/MzScheme interface heredoc. 399 Support 'trim' for Python/Lua/Perl/Tcl/Ruby/MzScheme interface heredoc.
387 400
388 Add the |t_AU| and |t_8u| termap codes for underline and undercurl. Add the 401 Add the |t_AU| and |t_8u| termap codes for underline and undercurl. Add the
389 t_fd and t_fe termcap codes for detecting focus events. 402 t_fd and t_fe termcap codes for detecting focus events.
405 Support for changing to the previous tab-local and window-local directories 418 Support for changing to the previous tab-local and window-local directories
406 using the "tcd -" and "lcd -" commands. (|:tcd-| and |:lcd-|) 419 using the "tcd -" and "lcd -" commands. (|:tcd-| and |:lcd-|)
407 420
408 Add support for skipping an expression using |search()|. 421 Add support for skipping an expression using |search()|.
409 422
410 Add the "cmdline" option to |getcompletion()| to return the command line
411 arguments.
412
413 Add support for spell checking CamelCased words by adding "camel" to
414 'spelloptions'.
415
416 Add support for importing Vim scripts using |:import| from a Vimscript.
417
418 Add support for sorting the directory contents returned by the |readdir()| 423 Add support for sorting the directory contents returned by the |readdir()|
419 and |readdirex()| functions by case. 424 and |readdirex()| functions by case.
420 425
421 Add support for executing (|:@|) a register containing line continuation. 426 Add support for executing (|:@|) a register containing line continuation.
422 427
423 Convert a Lua function and a closure to a Vim funcref so that it can be 428 Lua support:
424 accessed in a Vimscript. (|lua-funcref|) Make Lua arrays one based. 429 - Call Vim functions from Lua (vim.call() and vim.fn()).
425 Add table.insert() and table.remove() functions. 430 - Convert a Lua function and a closure to a Vim funcref so that it can be
426 431 accessed in a Vimscript (|lua-funcref|).
427 Support mouse left-right scrolling in a terminal window. 432 - Not backwards compatible: Make Lua arrays one based.
428 433 - Add support for using table.insert() and table.remove() functions with Vim
429 Updated colorschemes from https://github.com/vim/colorschemes is included. 434 lists.
435 - Support for running multiple Ex-mode commands using vim.command().
436 - Add vim.lua_version to get the Lua version.
437 - Add support for accessing Vim namespace dictionaries from Lua
438 (|lua-vim-variables|).
439
440 Support for new UTF-8 characters from Unicode release 13.
441
442 Support for using a command block (|:command-repl|) when defining a |:command|
443 or an |:autocmd|.
444
445 Support for using |:z!| to use the Vim display height instead of the current
446 window height.
447
448 Support for deleting a buffer-local command using ":delcommand -buffer {cmd}".
449
450 When formatting a // comment after a statement, find the start of the line
451 comment, insert the comment leader and indent the comment properly (|fo-/|).
452
453 Add the "numhl" argument to `:sign define` to use a separate highlight group
454 for the line number on a line where a sign is placed. |:sign-define|
455
456 When $SHELL ends in "nologin" or "false", start Vim in restricted mode.
430 457
431 TermDebug enhancements: 458 TermDebug enhancements:
432 Support for showing the disassembled code in a separate window. Support for 459 - Support for showing the disassembled code in a separate window.
433 the GDB until command. Use a separate group for the signs. 460 - Support for the GDB until command.
461 - Use a separate group for the signs.
462
463 xxd: Support for showing offset as a decimal number (-d).
434 464
435 A large number of tests have been added to verify the Vim functionality. Most 465 A large number of tests have been added to verify the Vim functionality. Most
436 of the old style tests have been converted to new style tests using the new 466 of the old style tests have been converted to new style tests using the new
437 style assert_* functions. 467 style assert_* functions.
438 468
439 Many Coverity static analysis warnings are fixed. 469 Many Coverity static analysis warnings have been fixed.
440
441 TODO: more
442 470
443 ============================================================================== 471 ==============================================================================
444 COMPILE TIME CHANGES *compile-changes-9* 472 COMPILE TIME CHANGES *compile-changes-9*
445 473
446 The following features are now enabled in all the builds: 474 The following features are now enabled in all the builds:
459 - Atari MiNT and BeOS 487 - Atari MiNT and BeOS
460 - Mac Carbon GUI (use MacVim instead) 488 - Mac Carbon GUI (use MacVim instead)
461 489
462 The rgb.txt file is no longer included, use colors/lists/default.vim instead. 490 The rgb.txt file is no longer included, use colors/lists/default.vim instead.
463 491
464 Several source files were split, mainly to make it easier to inspect code 492 Several large source files were split, mainly to make it easier to inspect
465 coverage information. 493 code coverage information. Source files have also been refactored for
494 maintainability.
466 495
467 Support for building Vim with Mingw64 clang compiler on MS-Windows. 496 Support for building Vim with Mingw64 clang compiler on MS-Windows.
497
498 Support for building Vim with Python 3.10, Lua 5.4.4, Perl 5.34 and
499 Ruby 3.1.0.
468 500
469 ============================================================================== 501 ==============================================================================
470 PATCHES *patches-9* *bug-fixes-9* 502 PATCHES *patches-9* *bug-fixes-9*
471 *patches-after-8.2* 503 *patches-after-8.2*
472 504
12810 Files: src/bufwrite.c, src/testdir/test_viminfo.vim 12842 Files: src/bufwrite.c, src/testdir/test_viminfo.vim
12811 12843
12812 Patch 8.2.2040 12844 Patch 8.2.2040
12813 Problem: Terminal buffer disappears even when 'bufhidden' is "hide". 12845 Problem: Terminal buffer disappears even when 'bufhidden' is "hide".
12814 (Sergey Vlasov) 12846 (Sergey Vlasov)
12815 Solution: Check 'bufhiddden' when a terminal buffer becomes hidden. 12847 Solution: Check 'bufhidden' when a terminal buffer becomes hidden.
12816 (closes #7358) 12848 (closes #7358)
12817 Files: src/buffer.c, src/testdir/test_terminal.vim 12849 Files: src/buffer.c, src/testdir/test_terminal.vim
12818 12850
12819 Patch 8.2.2041 12851 Patch 8.2.2041
12820 Problem: Haskell filetype not optimally recognized. 12852 Problem: Haskell filetype not optimally recognized.
25901 Solution: Only delete the tail from the record buffer if the character was 25933 Solution: Only delete the tail from the record buffer if the character was
25902 typed. (closes #9650) 25934 typed. (closes #9650)
25903 Files: src/normal.c, src/testdir/test_registers.vim 25935 Files: src/normal.c, src/testdir/test_registers.vim
25904 25936
25905 Patch 8.2.4238 25937 Patch 8.2.4238
25906 Problem: *.tf file could be fileytpe "tf" or "terraform". 25938 Problem: *.tf file could be filetype "tf" or "terraform".
25907 Solution: Detect the type from the file contents. (closes #9642) 25939 Solution: Detect the type from the file contents. (closes #9642)
25908 Files: runtime/filetype.vim, runtime/autoload/dist/ft.vim, 25940 Files: runtime/filetype.vim, runtime/autoload/dist/ft.vim,
25909 src/testdir/test_filetype.vim 25941 src/testdir/test_filetype.vim
25910 25942
25911 Patch 8.2.4239 25943 Patch 8.2.4239
27438 Problem: Crash when using fuzzy completion. 27470 Problem: Crash when using fuzzy completion.
27439 Solution: Temporary fix: put back regexp. (closes #9852, closes #9851) 27471 Solution: Temporary fix: put back regexp. (closes #9852, closes #9851)
27440 Files: src/cmdexpand.c, src/testdir/test_cmdline.vim 27472 Files: src/cmdexpand.c, src/testdir/test_cmdline.vim
27441 27473
27442 Patch 8.2.4479 27474 Patch 8.2.4479
27443 Problem: No fuzzy completieon for maps and abbreviations. 27475 Problem: No fuzzy completion for maps and abbreviations.
27444 Solution: Fuzzy complete maps and abbreviations. (Yegappan Lakshmanan, 27476 Solution: Fuzzy complete maps and abbreviations. (Yegappan Lakshmanan,
27445 closes #9856) 27477 closes #9856)
27446 Files: src/cmdexpand.c, src/map.c, src/proto/map.pro, src/search.c, 27478 Files: src/cmdexpand.c, src/map.c, src/proto/map.pro, src/search.c,
27447 src/testdir/test_cmdline.vim 27479 src/testdir/test_cmdline.vim
27448 27480
27660 ":continue", ":export" and ":import". 27692 ":continue", ":export" and ":import".
27661 Files: src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/userfunc.c, 27693 Files: src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/userfunc.c,
27662 src/testdir/test_vim9_script.vim 27694 src/testdir/test_vim9_script.vim
27663 27695
27664 Patch 8.2.4515 27696 Patch 8.2.4515
27665 Problem: Old subsitute syntax is still supported. 27697 Problem: Old substitute syntax is still supported.
27666 Solution: Disallow using backslash after ":s" in Vim9 script. 27698 Solution: Disallow using backslash after ":s" in Vim9 script.
27667 Files: src/ex_cmds.c, src/errors.h, src/testdir/test_substitute.vim 27699 Files: src/ex_cmds.c, src/errors.h, src/testdir/test_substitute.vim
27668 27700
27669 Patch 8.2.4516 (after 8.2.4515) 27701 Patch 8.2.4516 (after 8.2.4515)
27670 Problem: Build failure without the +eval feature. 27702 Problem: Build failure without the +eval feature.
27713 closes #9904) 27745 closes #9904)
27714 Files: src/term.c 27746 Files: src/term.c
27715 27747
27716 Patch 8.2.4524 27748 Patch 8.2.4524
27717 Problem: MS-Windows: cannot build with some sodium libraries. 27749 Problem: MS-Windows: cannot build with some sodium libraries.
27718 Solution: Make the DLL name configuragle. Add build instructions. 27750 Solution: Make the DLL name configurable. Add build instructions.
27719 (Ken Takata, closes #9905) 27751 (Ken Takata, closes #9905)
27720 Files: src/INSTALLpc.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak, 27752 Files: src/INSTALLpc.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak,
27721 src/crypt.c 27753 src/crypt.c
27722 27754
27723 Patch 8.2.4525 27755 Patch 8.2.4525
28310 Solution: Check for NULL. (closes #10011) 28342 Solution: Check for NULL. (closes #10011)
28311 Files: src/eval.c, src/testdir/test_vim9_script.vim 28343 Files: src/eval.c, src/testdir/test_vim9_script.vim
28312 28344
28313 Patch 8.2.4623 28345 Patch 8.2.4623
28314 Problem: Coverity warns for using uninitialized field. 28346 Problem: Coverity warns for using uninitialized field.
28315 Solution: Initialize he field to zero. 28347 Solution: Initialize the field to zero.
28316 Files: src/ex_docmd.c 28348 Files: src/ex_docmd.c
28317 28349
28318 Patch 8.2.4624 28350 Patch 8.2.4624
28319 Problem: Old Coverity warning for resource leak. 28351 Problem: Old Coverity warning for resource leak.
28320 Solution: Close the file if memory allocation fails. 28352 Solution: Close the file if memory allocation fails.
28757 sequence. 28789 sequence.
28758 Files: src/getchar.c 28790 Files: src/getchar.c
28759 28791
28760 Patch 8.2.4692 28792 Patch 8.2.4692
28761 Problem: No test for what 8.2.4691 fixes. 28793 Problem: No test for what 8.2.4691 fixes.
28762 Solution: Add a test. Use a more generic sotlution. (closes #10090) 28794 Solution: Add a test. Use a more generic solution. (closes #10090)
28763 Files: src/getchar.c, src/mouse.c, src/testdir/test_mapping.vim 28795 Files: src/getchar.c, src/mouse.c, src/testdir/test_mapping.vim
28764 28796
28765 Patch 8.2.4693 (after 8.2.4688) 28797 Patch 8.2.4693 (after 8.2.4688)
28766 Problem: new regexp does not accept pattern "\%>0v". 28798 Problem: new regexp does not accept pattern "\%>0v".
28767 Solution: Do accept digit zero. 28799 Solution: Do accept digit zero.
28905 src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim 28937 src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim
28906 28938
28907 Patch 8.2.4717 28939 Patch 8.2.4717
28908 Problem: For TextYankPost v:event does not contain information about the 28940 Problem: For TextYankPost v:event does not contain information about the
28909 operation being inclusive or not. 28941 operation being inclusive or not.
28910 Solution: Add "inclusive" to v:event. (Justn M. Keyes, Yegappan Lakshmanan, 28942 Solution: Add "inclusive" to v:event. (Justin M. Keyes, Yegappan Lakshmanan,
28911 closes #10125) 28943 closes #10125)
28912 Files: runtime/doc/autocmd.txt, src/register.c, 28944 Files: runtime/doc/autocmd.txt, src/register.c,
28913 src/testdir/test_autocmd.vim 28945 src/testdir/test_autocmd.vim
28914 28946
28915 Patch 8.2.4718 28947 Patch 8.2.4718
29090 Solution: Change to use BO_TERM. 29122 Solution: Change to use BO_TERM.
29091 Files: src/terminal.c, src/misc1.c 29123 Files: src/terminal.c, src/misc1.c
29092 29124
29093 Patch 8.2.4746 29125 Patch 8.2.4746
29094 Problem: Supercollider filetype not recognized. 29126 Problem: Supercollider filetype not recognized.
29095 Solution: Match file extentions and check file contents to detect 29127 Solution: Match file extensions and check file contents to detect
29096 supercollider. (closes #10142) 29128 supercollider. (closes #10142)
29097 Files: runtime/filetype.vim, runtime/autoload/dist/ft.vim, 29129 Files: runtime/filetype.vim, runtime/autoload/dist/ft.vim,
29098 src/testdir/test_filetype.vim 29130 src/testdir/test_filetype.vim
29099 29131
29100 Patch 8.2.4747 29132 Patch 8.2.4747
29623 Problem: Vim9: some lines not covered by tests. 29655 Problem: Vim9: some lines not covered by tests.
29624 Solution: Remove dead code. Add disassemble tests. 29656 Solution: Remove dead code. Add disassemble tests.
29625 Files: src/vim9execute.c, src/vim9.h, 29657 Files: src/vim9execute.c, src/vim9.h,
29626 src/testdir/test_vim9_disassemble.vim 29658 src/testdir/test_vim9_disassemble.vim
29627 29659
29628 Patch 8.2.4837 (after patch 8.2.0919 29660 Patch 8.2.4837 (after patch 8.2.0919)
29629 Problem: Modifiers not simplified when timed out or using feedkeys() with 29661 Problem: Modifiers not simplified when timed out or using feedkeys() with
29630 'n" flag. 29662 'n" flag.
29631 Solution: Adjust how mapped flag and timeout are used. (closes #10305) 29663 Solution: Adjust how mapped flag and timeout are used. (closes #10305)
29632 Files: src/getchar.c, src/testdir/test_paste.vim, 29664 Files: src/getchar.c, src/testdir/test_paste.vim,
29633 src/testdir/test_termcodes.vim 29665 src/testdir/test_termcodes.vim
29712 Files: src/session.c 29744 Files: src/session.c
29713 29745
29714 Patch 8.2.4852 29746 Patch 8.2.4852
29715 Problem: ANSI color index to RGB value not correct. 29747 Problem: ANSI color index to RGB value not correct.
29716 Solution: Convert the cterm index to ANSI index. (closes #10321, 29748 Solution: Convert the cterm index to ANSI index. (closes #10321,
29717 closes #9836)) 29749 closes #9836)
29718 Files: src/term.c 29750 Files: src/term.c
29719 29751
29720 Patch 8.2.4853 29752 Patch 8.2.4853
29721 Problem: CI with FreeBSD is a bit outdated. 29753 Problem: CI with FreeBSD is a bit outdated.
29722 Solution: Use 12.3 instead of 12.1. (closes #10333) 29754 Solution: Use 12.3 instead of 12.1. (closes #10333)
29948 names in the color they have. 29980 names in the color they have.
29949 Files: Filelist, runtime/import/dist/vimhelp.vim 29981 Files: Filelist, runtime/import/dist/vimhelp.vim
29950 29982
29951 Patch 8.2.4892 29983 Patch 8.2.4892
29952 Problem: Test failures because of changed error messages. 29984 Problem: Test failures because of changed error messages.
29953 Solution: Adjust the exptected error messages. 29985 Solution: Adjust the expected error messages.
29954 Files: src/testdir/test_vim9_assign.vim, 29986 Files: src/testdir/test_vim9_assign.vim,
29955 src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, 29987 src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim,
29956 src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, 29988 src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim,
29957 src/testdir/test_expand.vim, src/testdir/test_tcl.vim, 29989 src/testdir/test_expand.vim, src/testdir/test_tcl.vim,
29958 src/testdir/test_vimscript.vim 29990 src/testdir/test_vimscript.vim
29984 Solution: Truncate the line at the comment. (closes #10367) 30016 Solution: Truncate the line at the comment. (closes #10367)
29985 Files: src/eval.c, src/testdir/test_lambda.vim 30017 Files: src/eval.c, src/testdir/test_lambda.vim
29986 30018
29987 Patch 8.2.4898 30019 Patch 8.2.4898
29988 Problem: Coverity complains about pointer usage. 30020 Problem: Coverity complains about pointer usage.
29989 Solution: Move code for increment/decerment. 30021 Solution: Move code for increment/decrement.
29990 Files: src/vim9compile.c 30022 Files: src/vim9compile.c
29991 30023
29992 Patch 8.2.4899 30024 Patch 8.2.4899
29993 Problem: With latin1 encoding CTRL-W might go before the start of the 30025 Problem: With latin1 encoding CTRL-W might go before the start of the
29994 command line. 30026 command line.
30181 src/testdir/test_cursorline.vim, src/os_unix.c, src/if_lua.c, 30213 src/testdir/test_cursorline.vim, src/os_unix.c, src/if_lua.c,
30182 src/if_py_both.h, src/os_amiga.c, src/os_win32.c, src/os_mswin.c, 30214 src/if_py_both.h, src/os_amiga.c, src/os_win32.c, src/os_mswin.c,
30183 src/os_vms.c, src/os_vms_conf.h 30215 src/os_vms.c, src/os_vms_conf.h
30184 30216
30185 Patch 8.2.4929 30217 Patch 8.2.4929
30186 Problem: Off-by-one error in in statusline item. 30218 Problem: Off-by-one error in statusline item.
30187 Solution: Subtrace one less. (closes #10394, closes #5599) 30219 Solution: Subtrace one less. (closes #10394, closes #5599)
30188 Files: src/buffer.c, src/testdir/test_statusline.vim, 30220 Files: src/buffer.c, src/testdir/test_statusline.vim,
30189 src/testdir/dumps/Test_statusline_hl.dump 30221 src/testdir/dumps/Test_statusline_hl.dump
30190 30222
30191 Patch 8.2.4930 30223 Patch 8.2.4930
30325 Problem: With 'smartindent' inserting '}' after completion goes wrong. 30357 Problem: With 'smartindent' inserting '}' after completion goes wrong.
30326 Solution: Check the cursor is in indent. (closes #10420) 30358 Solution: Check the cursor is in indent. (closes #10420)
30327 Files: src/indent.c, src/testdir/test_smartindent.vim 30359 Files: src/indent.c, src/testdir/test_smartindent.vim
30328 30360
30329 Patch 8.2.4954 30361 Patch 8.2.4954
30330 Problem: Inserting line breaks text property spanning more then one line. 30362 Problem: Inserting line breaks text property spanning more than one line.
30331 Solution: Check TP_FLAG_CONT_PREV and TP_FLAG_CONT_NEXT. (closes #10423) 30363 Solution: Check TP_FLAG_CONT_PREV and TP_FLAG_CONT_NEXT. (closes #10423)
30332 Files: src/textprop.c, src/testdir/test_textprop.vim 30364 Files: src/textprop.c, src/testdir/test_textprop.vim
30333 30365
30334 Patch 8.2.4955 30366 Patch 8.2.4955
30335 Problem: Text property in wrong position after auto-indent. 30367 Problem: Text property in wrong position after auto-indent.
31392 Problem: Timeout handling is not optimal. 31424 Problem: Timeout handling is not optimal.
31393 Solution: Avoid setting timeout_flag twice. Adjust the pointer when 31425 Solution: Avoid setting timeout_flag twice. Adjust the pointer when
31394 stopping the regexp timeout. Adjust variable name. 31426 stopping the regexp timeout. Adjust variable name.
31395 Files: src/os_unix.c, src/os_win32.c, src/regexp.c 31427 Files: src/os_unix.c, src/os_win32.c, src/regexp.c
31396 31428
31429 Patch 8.2.5130
31430 Problem: Edit test for mode message fails when using valgrind.
31431 Solution: Use WaitForAssert(). Run beep test later.
31432 Files: src/testdir/test_edit.vim
31433
31434 Patch 8.2.5131
31435 Problem: Timeout implementation is not optimal.
31436 Solution: Further improvements for timeouts. Add a test for searchpair()
31437 timeout. (partly by Paul Ollis)
31438 Files: src/configure.ac, src/auto/configure,
31439 src/testdir/test_hlsearch.vim, src/testdir/test_search.vim
31440
31441 Patch 8.2.5132
31442 Problem: :mkview test doesn't test much.
31443 Solution: Save the view with the folds closed. (James McCoy, closes #10596)
31444 Files: src/testdir/test_mksession.vim
31445
31446 Patch 8.2.5133
31447 Problem: MacOS: build fails.
31448 Solution: Remove "#if 0" from timer_delete().
31449 Files: src/os_macosx.m
31450
31451 Patch 8.2.5134
31452 Problem: Function has confusing name.
31453 Solution: Rename tgetent_error() to invoke_tgetent().
31454 Files: src/term.c
31455
31456 Patch 8.2.5135
31457 Problem: Running configure gives warnings for main() return type.
31458 Solution: Specify "int" return type. Avoid a few more warnings.
31459 Files: src/configure.ac, src/auto/configure
31460
31461 Patch 8.2.5136
31462 Problem: Debugger test fails when run with valgrind.
31463 Solution: Wait longer when using valgrind.
31464 Files: src/testdir/shared.vim, src/testdir/test_debugger.vim,
31465 src/testdir/test_search.vim
31466
31467 Patch 8.2.5137
31468 Problem: Cannot build without the +channel feature. (Dominique Pellé)
31469 Solution: Add #ifdef around ch_log() calls. (closes #10598)
31470 Files: src/os_unix.c, src/regexp_nfa.c, src/regexp_bt.c
31471
31472 Patch 8.2.5138
31473 Problem: Various small issues.
31474 Solution: Various small improvments.
31475 Files: src/filepath.c, src/job.c, src/mark.c, src/move.c,
31476 src/popupwin.c, src/testdir/test_filetype.vim
31477
31478 Patch 8.2.5139
31479 Problem: TIME_WITH_SYS_TIME is no longer supported by autoconf.
31480 Solution: Always include time.h.
31481 Files: src/os_unix.h
31482
31483 Patch 8.2.5140
31484 Problem: Seachpair timeout test is flaky.
31485 Solution: Mark the test as flaky so it is retried.
31486 Files: src/testdir/test_search.vim
31487
31488 Patch 8.2.5141
31489 Problem: Using "volatile int" in a signal handler might be wrong.
31490 Solution: Use "volatile sig_atomic_t".
31491 Files: src/os_unix.c, src/proto/os_unix.pro, src/os_win32.c,
31492 src/proto/os_win32.pro, src/regexp.c,
31493
31494 Patch 8.2.5142
31495 Problem: Startup test fails if there is a status bar at the top of the
31496 screen. (Ernie Rael)
31497 Solution: Use a larger vertical offset in the test.
31498 Files: src/testdir/test_startup.vim
31499
31500 Patch 8.2.5143
31501 Problem: Some tests fail when using valgrind. Spurious leak reports.
31502 Solution: Use WaitForAssert(). Avoid failing fork/exec. Skip tests where a
31503 job is killed when running valgrind.
31504 Files: src/testdir/test_iminsert.vim, src/testdir/test_popup.vim,
31505 src/testdir/test_cscope.vim, src/testdir/test_channel.vim
31506
31507 Patch 8.2.5144
31508 Problem: With 'lazyredraw' set completion menu may be displayed wrong.
31509 Solution: When the popup menu is visible do not insert a screen line.
31510 (closes #10601)
31511 Files: src/screen.c
31512
31513 Patch 8.2.5145
31514 Problem: Exit test causes spurious valgrind reports.
31515 Solution: Skip test. Add CheckNotValgrind.
31516 Files: src/testdir/test_exit.vim, src/testdir/check.vim,
31517 src/testdir/test_channel.vim
31518
31519 Patch 8.2.5146
31520 Problem: Memory leak when substitute expression nests.
31521 Solution: Use an array of expression results.
31522 Files: src/alloc.c, src/regexp.c, src/proto/regexp.pro,
31523 src/errors.h, src/ex_cmds.c, src/testdir/test_substitute.vim
31524
31525 Patch 8.2.5147
31526 Problem: Flaky test always fails on retry.
31527 Solution: Delete the created function.
31528 Files: src/testdir/test_search.vim
31529
31530 Patch 8.2.5148
31531 Problem: Invalid memory access when using an expression on the command line.
31532 Solution: Make sure the position does not go negative.
31533 Files: src/ex_getln.c, src/testdir/test_cmdline.vim
31534
31535 Patch 8.2.5149 (after 8.2.5148)
31536 Problem: Cannot build without the +eval feature. (Tony Mechelynck)
31537 Solution: Add #ifdefs.
31538 Files: src/ex_getln.c
31539
31540 Patch 8.2.5150
31541 Problem: Read past the end of the first line with ":0;'{".
31542 Solution: When on line zero check the column is valid for line one.
31543 Files: src/ex_docmd.c, src/testdir/test_cmdline.vim
31544
31545 Patch 8.2.5151
31546 Problem: Reading beyond the end of the line with lisp indenting.
31547 Solution: Avoid going over the NUL at the end of the line.
31548 Files: src/indent.c, src/testdir/test_lispwords.vim
31549
31550 Patch 8.2.5152
31551 Problem: search() gets stuck with "c" and skip evaluates to true.
31552 Solution: Reset the SEARCH_START option. (closes #10608)
31553 Files: src/evalfunc.c, src/testdir/test_syntax.vim
31554
31555 Patch 8.2.5153
31556 Problem: "make uninstall" does not remove colors/lists.
31557 Solution: Add a line to the Makefile. (closes #10609)
31558 Files: src/Makefile
31559
31560 Patch 8.2.5154
31561 Problem: Still mentioning version8, some cosmetic issues.
31562 Solution: Prefer mentioning version9, cosmetic improvements.
31563 Files: src/version.c, src/if_tcl.c, src/regexp.c,
31564 src/testdir/test_gui.vim, src/os_unix.c, Filelist, src/Makefile
31565
31566 Patch 8.2.5155
31567 Problem: In diff mode windows may get out of sync. (Gary Johnson)
31568 Solution: Avoid that the other window scrolls for 'cursorbind'.
31569 Files: src/move.c, src/testdir/test_diffmode.vim,
31570 src/testdir/dumps/Test_diff_scroll_1.dump,
31571 src/testdir/dumps/Test_diff_scroll_2.dump
31572
31573 Patch 8.2.5156
31574 Problem: Search timeout test often fails with FreeBSD.
31575 Solution: Double the maximum time.
31576 Files: src/testdir/test_search.vim
31577
31578 Patch 8.2.5157
31579 Problem: MS-Windows GUI: CTRL-key combinations do not always work.
31580 Solution: Handle special key combinations better. (closes #10613,
31581 closes #10602, closes #10579)
31582 Files: src/gui_w32.c
31397 31583
31398 31584
31399 vim:tw=78:ts=8:noet:ft=help:norl: 31585 vim:tw=78:ts=8:noet:ft=help:norl: