Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
version9.txt52675 linesDownload Raw Back to doc
1*version9.txt*	For Vim version 9.2.  Last change: 2026 Apr 152 3 4		  VIM REFERENCE MANUAL	  by Bram Moolenaar5 6 7				*vim-9.0* *vim-9* *version-9.0* *version9.0*8Welcome to Vim 9!  Several years have passed since the previous release.9A large number of bugs have been fixed, many nice features have been added10and the Vim9 script syntax is here!  This file mentions all the new things and11changes to existing features since Vim 8.2.0. The patches up to Vim 8.2 can be12found here: |vim-8.2|.13 14Use this command to see the full version and features information of the Vim15program you are using: >16	:version17 18NEW FEATURES					|new-9|19   Vim script enhancements			|new-vim-script-9|20   Command line completion in a popup menu	|new-popup-compl|21   Updated colorschemes				|new-colorschemes-9|22   Various new items				|new-items-9|23 24INCOMPATIBLE CHANGES				|incompatible-9|25 26IMPROVEMENTS					|improvements-9|27 28COMPILE TIME CHANGES				|compile-changes-9|29 30PATCHES						|patches-9|31 32VERSION 9.1					|version-9.1|33   Changed					|changed-9.1|34   Added					|added-9.1|35   Patches					|patches-9.1|36 37VERSION 9.2					|version-9.2|38   Changed					|changed-9.2|39   Added					|added-9.2|40   Patches					|patches-9.2|41 42VERSION 9.3					|version-9.3|43   Changed					|changed-9.3|44   Added					|added-9.3|45   Patches					|patches-9.3|46 47 48See |vi_diff.txt| for an overview of differences between Vi and Vim 9.0.49See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and50|version8.txt| for differences between Vim versions.51 52You can find an overview of the most important changes (according to Martin53Tournoij) on this site: https://www.arp242.net/vimlog/54 55							*Sven-Guckes*56Vim version 9.0 is dedicated to Sven Guckes, who passed away in February 202257when the release was being prepared.  Sven was a long time supporter of Vim.58He registered the vim.org domain and created the first Vim website.  We will59remember him!60 61						 *Bram* *Moolenaar* *Bram-Moolenaar*62Vim version 9.1 is dedicated to Bram Moolenaar, who passed away on August 3rd632023 while still working full-time on Vim.  The Vim project would not exist64without his ongoing passion to lead and develop Vim and the community for more65than 30 years.  Bram was also passionate about his ICCF foundation to help66children in Uganda.  If you enjoy using Vim, please consider donating! We will67miss his guidance, passion and leadership.68 69Obituary Articles: https://github.com/vim/vim/discussions/1274270Say Farewell: https://github.com/vim/vim/discussions/1273771 72==============================================================================73NEW FEATURES						*new-9*74 75First an overview of the more interesting new features.  A comprehensive list76is below.77 78 79Vim9 script ~80							*new-vim-script-9*81The Vim script language has been changed step by step over many years,82preserving backwards compatibility.  Several choices made in the early days83got in the way of making it work better.  At the same time, Vim script is84being used much more often, since there are so many plugins being used.85 86Vim9 script provides a syntax that is much more similar to other languages.87In other words: "less weird".  Compiled functions are introduced which allow88for a large speed improvement.  You can expect around ten times faster89execution, or even more.  The price to pay is that Vim9 script is not90backwards compatible.  But don't worry, you can still use your old scripts,91the new script language is added, it does not replace the legacy script.92 93Information about Vim9 script can be found in the |Vim9| help file.94 95 96Command line completion in a popup menu ~97							*new-popup-compl*98Before there was the 'wildmenu' option, which uses the space of one line above99the statusline to show matches.  Only a few matches fit there.100 101Now a popup menu can be used by setting 'wildoptions' to "pum".  This allows102for showing many more matches.  This requires redrawing more of the display,103but since computers are fast enough that is not a problem.104 105 106Updated colorschemes ~107							*new-colorschemes-9*108Colorschemes from https://github.com/vim/colorschemes have been included.109They were made to work consistently across many types of terminals.  Although110generally an improvement, a lot of personal preference is involved.  You can111always get the old version if you prefer it, look here:112https://github.com/vim/colorschemes/blob/master/legacy_colors/113 114 115Various new items ~116							*new-items-9*117Options: ~118 119'autoshelldir'		change directory to the shell's current directory120'cdhome'		change directory to the home directory by ":cd"121'cinscopedecls'		words that are recognized by 'cino-g'122'guiligatures'		GTK GUI: ASCII characters that can form shapes123'mousemoveevent'	report mouse moves with <MouseMove>124'quickfixtextfunc'	function for the text in the quickfix window125'spelloptions'		options for spell checking126'thesaurusfunc'		function to be used for thesaurus completion127'xtermcodes'		request terminal codes from an xterm128 129 130Ex commands: ~131 132|:abstract|		(reserved for future use)133|:argdedupe|		remove duplicates from the argument list134|:balt|			like ":badd" but also set the alternate file135|:class|		(reserved for future use)136|:def|			define a Vim9 user function137|:defcompile|		compile Vim9 user functions in current script138|:disassemble|		disassemble Vim9 user function139|:echoconsole|		like :echomsg but write to stdout140|:endinterface|		(reserved for future use)141|:endclass|		(reserved for future use)142|:enddef|		end of a user function started with :def143|:endenum|		(reserved for future use)144|:enum|			(reserved for future use)145|:eval|			evaluate an expression and discard the result146|:export|		Vim9: export an item from a script147|:final|		declare an immutable variable in Vim9148|:import|		Vim9: import an item from another script149|:interface|		(reserved for future use)150|:static|		(reserved for future use)151|:type|			(reserved for future use)152|:var|			variable declaration in Vim9153|:vim9script|		indicates Vim9 script file154 155 156Ex command modifiers: ~157 158|:legacy|		make following command use legacy script syntax159|:vim9cmd|		make following command use Vim9 script syntax160 161 162New and extended functions: ~163 164|assert_nobeep()|	assert that a command does not cause a beep165|autocmd_add()|		add a list of autocmds and groups166|autocmd_delete()|	delete a list of autocmds and groups167|autocmd_get()|		return a list of autocmds168|blob2list()|		get a list of numbers from a blob169|charclass()|		class of a character170|charcol()|		character number of the cursor or a mark171|charidx()|		character index of a byte in a string172|digraph_get()|		get digraph173|digraph_getlist()|	get all digraphs174|digraph_set()|		register digraph175|digraph_setlist()|	register multiple digraphs176|echoraw()|		output characters as-is177|exists_compiled()|	like exists() but check at compile time178|extendnew()|		make a new Dictionary and append items179|flatten()|		flatten a List180|flattennew()|		flatten a copy of a List181|fullcommand()|		get full command name182|getcharpos()|		get character position of cursor, mark, etc.183|getcharstr()|		get a character from the user as a string184|getcmdcompltype()|	return current cmdline completion type185|getcmdscreenpos()|	return the current cursor position in the cmdline186|getcursorcharpos()|	get character position of the cursor187|getmarklist()|		list of global/local marks188|getreginfo()|		get information about a register189|gettext()|		lookup message translation190|hlget()|		get highlight group attributes191|hlset()|		set highlight group attributes192|isabsolutepath()|	check if a path is absolute193|list2blob()|		get a blob from a list of numbers194|maplist()|		list of all mappings, a dict for each195|mapnew()|		make a new List with changed items196|mapset()|		restore a mapping197|matchfuzzy()|		fuzzy matches a string in a list of strings198|matchfuzzypos()|	fuzzy matches a string in a list of strings199|menu_info()|		get information about a menu item200|popup_list()|		get list of all popup window IDs201|prompt_getprompt()|	get the effective prompt text for a buffer202|prop_add_list()|	attach a property at multiple positions203|prop_find()|		search for a property204|readblob()|		read a file into a Blob205|readdirex()|		get a List of file information in a directory206|reduce()|		reduce a List to a value207|searchcount()|		get number of matches before/after the cursor208|setcellwidths()|	set character cell width overrides209|setcharpos()|		set character position of cursor, mark, etc.210|setcursorcharpos()|	set character position of the cursor211|slice()|		take a slice of a List212|strcharlen()|		length of a string in characters213|terminalprops()|	properties of the terminal214|test_gui_event()|	generate a GUI event for testing215|test_null_function()|	return a null Funcref216|test_srand_seed()|	set the seed value for srand()217|test_unknown()|	return a value with unknown type218|test_void()|		return a value with void type219|typename()|		type of a variable as text220|virtcol2col()|		byte index of a character on screen221|win_gettype()|		get type of window222|win_move_separator()|	move window vertical separator223|win_move_statusline()|	move window status line224|windowsversion()|	get MS-Windows version225 226 227New Vim variables: ~228 229|v:numbermax|		maximum value of a number230|v:numbermin|		minimum value of a number (negative)231|v:numbersize|		number of bits in a Number232|v:collate|		current locale setting for collation order233|v:exiting|		vim exit code234|v:colornames|		dictionary that maps color names to hex color strings235|v:sizeofint|		number of bytes in an int236|v:sizeoflong|		number of bytes in a long237|v:sizeofpointer|	number of bytes in a pointer238|v:maxcol|		maximum line length239 240 241New autocommand events: ~242 243|CompleteDonePre|	after Insert mode completion done, before clearing info244|DirChangedPre|		before the working directory will change245|InsertLeavePre|	just before leaving Insert mode246|ModeChanged|		after changing the mode247|SigUSR1|		after the SIGUSR1 signal has been detected248|WinClosed|		after closing a window249|WinScrolled|		after scrolling or resizing a window250|VimSuspend|		when suspending Vim251|VimResume|		when Vim is resumed after being suspended252 253 254New operators: ~255 256|>>|			bitwise right shift257|<<|			bitwise left shift258|??|			falsy operator259 260New runtime files: ~261 262Too many to list here.263 264==============================================================================265INCOMPATIBLE CHANGES				*incompatible-9*266 267There is only one change that is incompatible with previous releases:268 269- Lua arrays are now one-based, they used to be zero-based.270 271Note that when using |Vim9| script several things work differently, see272|vim9-differences|.273 274==============================================================================275IMPROVEMENTS						*improvements-9*276 277Various small and useful improvements have been made since Vim 8.2, here is a278summary.279 280Many memory leaks, invalid memory accesses and crashes have been fixed.281See the list of patches below: |bug-fixes-9|.282 283Support for Vim expression evaluation in a string. |interpolated-string|284Support for evaluating Vim expressions in a heredoc. |:let-heredoc|285 286Support for fuzzy matching:287- a string in a List of strings. |fuzzy-matching|288- completion support for command line completion using 'wildoptions'.289- for |:vimgrep|.290 291Added support for the |Haiku| OS.292 293Support for "lsp" channel mode to simplify LSP server RPC communication294|language-server-protocol|.  Support for using a Unix domain socket with a295|channel|.  IPv6 support in channels |channel-address|.296 297Support for sourcing lines from the current buffer. |:source-range|298 299Terminal window improvements:300- Support for opening a terminal in a popup window. |popup-terminal|301- Allow setting underline color in terminal.302- Detect focus events in terminal (|FocusGained| and |FocusLost|).303- Add bell support for the terminal window. ('belloff')304- Support mouse left-right scrolling in a terminal window.305 306Support for stopping profiling a Vim script: `:profile stop` and dumping the307report to a file: `:profile dump` .  |:profile|308 309Completion improvements:310- Argument completion support for the |:breakadd|, |:breakdel|, |:diffget|,311  |:diffput|, |:profile|, |:profdel| and |:scriptnames| commands.312- Support using any Vim type for user_data with the completion functions313  (|complete-items|).314- Stop insert mode completion without changing text (|i_CTRL-X_CTRL-Z|).315- Add the "cmdline" option to |getcompletion()| to return the command line316  arguments.317 318Support for setting the 'foldtext', 'completefunc', 'omnifunc',319'operatorfunc', 'thesaurusfunc', 'quickfixtextfunc', 'tagfunc',320'imactivatefunc' and 'imstatusfunc' options to a function reference or a321lambda function or a script-local function.322 323Support directly setting the 'balloonexpr', 'charconvert' 'foldexpr',324'formatexpr', 'includeexpr', 'printexpr', 'patchexpr', 'indentexpr',325'modelineexpr', 'diffexpr' and 'printexpr' options to a script-local function.326 327Improvements in 'fillchars':328- Support for configuring the character used to mark the beginning of a fold,329  show a closed fold and show a fold separator using "foldopen", "foldclose"330  and "foldsep" respectively in 'fillchars'.331- Support for configuring the character displayed in non existing lines using332  "eob" in 'fillchars'.333- Support for using multibyte items with the "stl", "stlnc", "foldopen",334  "foldclose" and "foldsep" items in the 'fillchars' option.335 336Support for the XChaCha20 encryption method. 'cryptmethod'337 338Spell checking:339- Spell check current word with |z=| even when 'spell' is off.340- Add "timeout" to 'spellsuggest' to limit the searching time for spell341  suggestions.342- Add support for spell checking CamelCased words by adding "camel" to343  'spelloptions'.344 345Support for executing Ex commands in a map without changing the current mode346|<Cmd>| and |<ScriptCmd>|.347 348Add optional error code to |:cquit|.349 350Recognize numbers as unsigned when "unsigned" is set in 'nrformats'.351 352Expand script ID using expand('<SID>') and script name using353expand('<script>'). |expand()|354 355Jump to the last accessed tab page using |g<Tab>| and support using the356last accessed tab page in |:tabnext| et al.357 358Locale aware sorting using |:sort| and |sort()|.359 360Hide cursor when sleeping using |:sleep!|.361 362Add "multispace" to 'listchars' to show two or more spaces no matter where363they appear.  Add "leadmultispace" to 'listchars' to show two or more leading364spaces.  Add "lead" to 'listchars' to set the character used to show leading365spaces.  Support specifying a character using the hexadecimal notation in366'listchars' (\x, \u and \U).367 368Make 'listchars', 'virtualedit' and 'thesaurusfunc' global-local options.369 370Support for looping over a string using `:for`.371 372Don't reset 'wrap' for diff windows when "followwrap" is set in 'diffopt'.373 374Support for re-evaluating the 'statusline' expression as a statusline format375string (%{% expr %})376 377Add |zp| and |zP| to paste in block mode without adding trailing white space.378Add |zy| to yank without trailing white space in block mode.379 380Add the 'P' command in visual mode to paste text in Visual mode without381yanking the deleted text to the unnamed register.  |put-Visual-mode|382 383Add \%.l, \%<.l and \%>.l atoms to match the line the cursor is currently on.384See |/\%l| for more information.385 386Add "list" to 'breakindentopt' to add additional indent for lines that match387a numbered or bulleted list.  Add "column" to 'breakindentopt' to indent388soft-wrapped lines at a specific column.389 390Add the |hl-CursorLineSign| and |hl-CursorLineFold| default highlight groups to391adjust sign highlighting for 'cursorline'.392 393Add the |hl-CurSearch| default highlight group for the current search match.394 395Add support for logging on Vim startup (|--log|).396 397Add support for customizing the quickfix buffer contents using398'quickfixtextfunc'.  Support for the "note" error type (%t) in |errorformat|.399Add support for parsing the end line number (%e) and end column number (%k)400using 'errorformat'.401 402Support truncating the tag stack using |settagstack()|.403 404Display every option in a separate line when "!" is used with |:set|.405 406Add "nostop" to 'backspace' to allow backspacing over the start of insert for407|CTRL-W| and |CTRL-U| also.408 409Sync the undo file if 'fsync' is set.410 411Support excluding the 'runtimepath' and 'packpath' options from a session file412using "skiprtp" in 'sessionoptions'.413 414Support for getting the number of lines (line count) in a buffer using415|getbufinfo()|.416 417Support |filter()| and |map()| for blob and string types.418 419Support for using a multi-byte character for the tag kind. |tags-file-format|420 421Add support for checking whether a function name is valid using |exists()|.422 423Update xdiff to version 2.33.  Update libvterm to revision 789.424 425Support 'trim' for Python/Lua/Perl/Tcl/Ruby/MzScheme interface heredoc.426 427Add the |t_AU| and |t_8u| termcap codes for underline and undercurl.  Add the428t_fd and t_fe termcap codes for detecting focus events.429 430Support for indenting C pragmas like normal code. (|cino-P|)431 432Add support for defining the syntax fold level. (|:syn-foldlevel|)433 434Add support for using \<*xxx> in a string to prepend a modifier to a435character. (|expr-quote|)436 437Add support trimming characters at the beginning or end of a string using438|trim()|.439 440Make ":verbose pwd" show the scope of the directory. |:pwd-verbose|441 442Add the "0o" notation for specifying octal numbers. |scriptversion-4|443 444Support for changing to the previous tab-local and window-local directories445using the "tcd -" and "lcd -" commands. (|:tcd-| and |:lcd-|)446 447Add support for skipping an expression using |search()|.448 449Add support for sorting the directory contents returned by the |readdir()|450and |readdirex()| functions by case.451 452Add support for executing (|:@|) a register containing line continuation.453 454Lua support:455- Call Vim functions from Lua (vim.call() and vim.fn()).456- Convert a Lua function and a closure to a Vim funcref so that it can be457  accessed in a Vim script (|lua-funcref|).458- Not backwards compatible: Make Lua arrays one based.459- Add support for using table.insert() and table.remove() functions with Vim460  lists.461- Support for running multiple Ex-mode commands using vim.command().462- Add vim.lua_version to get the Lua version.463- Add support for accessing Vim namespace dictionaries from Lua464  (|lua-vim-variables|).465 466Support for new UTF-8 characters from Unicode release 13.467 468Support for using a command block (|:command-repl|) when defining a |:command|469or an |:autocmd|.470 471Support for using |:z!| to use the Vim display height instead of the current472window height.473 474Support for deleting a buffer-local command using ":delcommand -buffer {cmd}".475 476When formatting a // comment after a statement, find the start of the line477comment, insert the comment leader and indent the comment properly (|fo-/|).478 479Add the "numhl" argument to `:sign define` to use a separate highlight group480for the line number on a line where a sign is placed.  |:sign-define|481 482When $SHELL ends in "nologin" or "false", start Vim in restricted mode.483 484TermDebug enhancements:485- Support for showing the disassembled code in a separate window.486- Support for the GDB until command.487- Use a separate group for the signs.488 489xxd: Support for showing offset as a decimal number (-d).490 491The C omni-complete plugin (|ft-c-omni|), the file type detection script492(ft.vim) and the syntax menu generation script (makemenu.vim) have been493rewritten using the Vim9 script syntax.494 495A large number of tests have been added to verify the Vim functionality.  Most496of the old style tests have been converted to new style tests using the new497style assert_* functions.498 499Many Coverity static analysis warnings have been fixed.500 501==============================================================================502COMPILE TIME CHANGES					*compile-changes-9*503 504The following features are now enabled in all the builds:505  |+cindent|506  |+jumplist|507  |+lispindent|508  |+num64|509  |+smartindent|510  |+tag_binary|511  |+title|512 513The following features have been removed.  They are either obsolete or didn't514work properly:515  - Athena and neXTaw GUI support (use Motif instead)516  - EBCDIC support517  - Atari MiNT and BeOS518  - Mac Carbon GUI (use MacVim instead)519 520The rgb.txt file is no longer included, use colors/lists/default.vim instead.521 522Several large source files were split, mainly to make it easier to inspect523code coverage information.  Source files have also been refactored for524maintainability.525 526Support for building Vim with Mingw64 clang compiler on MS-Windows.527 528Support for building Vim with Python 3.10, Lua 5.4.4, Perl 5.34 and529Ruby 3.1.0.530 531==============================================================================532PATCHES						*patches-9* *bug-fixes-9*533						*patches-after-8.2*534 535The list of patches that got included since 8.2.0.  This includes all the new536features, but does not include runtime file changes (syntax, indent, help,537etc.)538 539Patch 8.2.0001540Problem:    #endif comments do not reflect corresponding #ifdef.541Solution:   Update the comments. (Rene Nyffenegger, closes #5351)542Files:      src/ui.c543 544Patch 8.2.0002545Problem:    "dj" only deletes first line of closed fold.546Solution:   Adjust last line of operator for linewise motion. (closes #5354)547Files:      src/ops.c, src/testdir/test_fold.vim548 549Patch 8.2.0003550Problem:    Build file dependencies are incomplete.551Solution:   Fix the dependencies. (Ken Takata, closes #5356)552Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms,553            src/Makefile554 555Patch 8.2.0004556Problem:    Get E685 and E931 if buffer reload is interrupted.557Solution:   Do not abort deleting a dummy buffer. (closes #5361)558Files:      src/buffer.c, src/proto/buffer.pro, src/testdir/test_trycatch.vim,559            src/ex_cmds.c, src/ex_getln.c, src/misc2.c, src/quickfix.c,560            src/window.c, src/vim.h561 562Patch 8.2.0005563Problem:    Duplication in version info.564Solution:   Use preprocessor string concatenation. (Ken Takata, closes #5357)565Files:      src/version.h566 567Patch 8.2.0006568Problem:    Test using long file name may fail. (Vladimir Lomov)569Solution:   Limit the name length. (Christian Brabandt, closes #5358)570Files:      src/testdir/test_display.vim571 572Patch 8.2.0007573Problem:    Popup menu positioned wrong with folding in two tabs.574Solution:   Update the cursor line height. (closes #5353)575Files:      src/move.c, src/proto/move.pro, src/popupmenu.c,576            src/testdir/test_ins_complete.vim,577            src/testdir/dumps/Test_pum_with_folds_two_tabs.dump578 579Patch 8.2.0008580Problem:    Test72 is old style.581Solution:   Convert to new style test. (Yegappan Lakshmanan, closes #5362)582Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,583            src/testdir/test72.in, src/testdir/test72.ok,584            src/testdir/test_undo.vim585 586Patch 8.2.0009587Problem:    VMS: terminal version doesn't build.588Solution:   Move MIN definition.  Adjust #ifdefs. (Zoltan Arpadffy)589Files:      src/bufwrite.c, src/fileio.c, src/ui.c, src/xxd/Make_vms.mms590 591Patch 8.2.0010592Problem:    Test64 is old style.593Solution:   Convert to new style test. (Yegappan Lakshmanan, closes #5363)594Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,595            src/testdir/test64.in, src/testdir/test64.ok,596            src/testdir/test95.in, src/testdir/test_regexp_latin.vim597 598Patch 8.2.0011599Problem:    Screen updating wrong when opening preview window.600Solution:   Redraw the window when the preview window opens.601Files:      src/popupmenu.c, src/testdir/test_ins_complete.vim,602            src/testdir/dumps/Test_pum_with_preview_win.dump603 604Patch 8.2.0012605Problem:    Some undo functionality is not tested.606Solution:   Add a few more test cases. (Dominique Pellé, closes #5364)607Files:      src/testdir/test_undo.vim608 609Patch 8.2.0013610Problem:    Not using a typedef for condstack.611Solution:   Add a typedef.612Files:      src/structs.h, src/ex_docmd.c, src/ex_eval.c, src/userfunc.c,613            src/ex_cmds.h, src/proto/ex_eval.pro614 615Patch 8.2.0014616Problem:    Test69 and test95 are old style.617Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #5365)618Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,619            src/testdir/test69.in, src/testdir/test69.ok,620            src/testdir/test95.in, src/testdir/test95.ok,621            src/testdir/test_regexp_utf8.vim, src/testdir/test_textformat.vim622 623Patch 8.2.0015624Problem:    Not all modeline variants are tested.625Solution:   Add modeline tests. (Dominique Pellé, closes #5369)626Files:      src/testdir/test_modeline.vim627 628Patch 8.2.0016629Problem:    Test name used twice, option not restored properly.630Solution:   Rename function, restore option with "&".631Files:      src/testdir/test_textformat.vim632 633Patch 8.2.0017634Problem:    OS/2 and MS-DOS are still mentioned, even though support was635            removed long ago.636Solution:   Update documentation. (Yegappan Lakshmanan, closes #5368)637Files:      runtime/doc/autocmd.txt, runtime/doc/change.txt,638            runtime/doc/cmdline.txt, runtime/doc/editing.txt,639            runtime/doc/eval.txt, runtime/doc/gui.txt, runtime/doc/insert.txt,640            runtime/doc/options.txt, runtime/doc/print.txt,641            runtime/doc/quickfix.txt, runtime/doc/repeat.txt,642            runtime/doc/starting.txt, runtime/doc/usr_01.txt,643            runtime/doc/usr_05.txt, runtime/doc/usr_41.txt,644            runtime/doc/vi_diff.txt, runtime/gvimrc_example.vim,645            runtime/tools/README.txt, runtime/vimrc_example.vim, src/feature.h646 647Patch 8.2.0018648Problem:    :join does not add white space where it should. (Zdenek Dohnal)649Solution:   Handle joining multiple lines properly.650Files:      src/ops.c, src/testdir/test_join.vim651 652Patch 8.2.0019653Problem:    Cannot get number of lines of another buffer.654Solution:   Add "linecount" to getbufinfo(). (Yasuhiro Matsumoto,655            closes #5370)656Files:      src/evalbuffer.c, src/testdir/test_bufwintabinfo.vim,657            runtime/doc/eval.txt658 659Patch 8.2.0020660Problem:    Mouse clicks in the command line not tested.661Solution:   Add tests. (Dominique Pellé, closes #5366)662Files:      src/testdir/test_termcodes.vim663 664Patch 8.2.0021665Problem:    Timer test fails too often on Travis with macOS.666Solution:   Be less strict with the time.667Files:      src/testdir/test_timers.vim668 669Patch 8.2.0022670Problem:    Click in popup window doesn't close it in the GUI. (Sergey Vlasov)671Solution:   When processing the selection also send a button release event.672            (closes #5367)673Files:      src/gui.c674 675Patch 8.2.0023676Problem:    Command line editing not sufficiently tested.677Solution:   Add more tests. (Dominique Pellé, closes #5374)678Files:      src/testdir/Make_all.mak, src/testdir/test_alot.vim,679            src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim680 681Patch 8.2.0024682Problem:    Filetype Rego not recognized.683Solution:   Add *.rego. (Matt Dunford, closes #5376)684Files:      runtime/filetype.vim, src/testdir/test_filetype.vim685 686Patch 8.2.0025687Problem:    Repeated word in comment.688Solution:   Remove one. (Rene Nyffenegger, closes #5384)689Files:      src/structs.h690 691Patch 8.2.0026692Problem:    Still some /* */ comments.693Solution:   Convert to // comments.694Files:      src/message.c, src/message_test.c, src/misc1.c, src/misc2.c,695            src/move.c696 697Patch 8.2.0027698Problem:    Still some /* */ comments.699Solution:   Convert to // comments.700Files:      src/iid_ole.c, src/indent.c, src/insexpand.c, src/iscygpty.c,701            src/version.c702 703Patch 8.2.0028704Problem:    Searchpairpos() is not tested.705Solution:   Add tests.  Also improve searchpair() testing. (Dominique Pellé,706            closes #5388)707Files:      src/testdir/test_search.vim708 709Patch 8.2.0029710Problem:    MS-Windows: crash with empty job command.711Solution:   Check for NULL result. (Yasuhiro Matsumoto, closes #5390)712Files:      src/channel.c, src/testdir/test_channel.vim713 714Patch 8.2.0030715Problem:    "gF" does not work on output of "verbose command".716Solution:   Recognize " line " and translations. (closes #5391)717Files:      src/globals.h, src/eval.c, src/findfile.c, src/testdir/test_gf.vim718 719Patch 8.2.0031 (after 8.2.0029)720Problem:    MS-Windows: test for empty job fails721Solution:   Check for error message, make it also fail on Unix.722Files:      src/channel.c, src/testdir/test_channel.vim723 724Patch 8.2.0032 (after 8.2.0031)725Problem:    MS-Windows: test for blank job fails726Solution:   Check before escaping.727Files:      src/channel.c, src/testdir/test_channel.vim728 729Patch 8.2.0033730Problem:    Crash when make_extmatch() runs out of memory.731Solution:   Check for NULL. (Dominique Pellé, closes #5392)732Files:      src/regexp_bt.c, src/regexp_nfa.c733 734Patch 8.2.0034735Problem:    Missing check for out of memory.736Solution:   Check for NULL after vim_strsave(). (Dominique Pellé,737            closes #5393)738Files:      src/filepath.c739 740Patch 8.2.0035741Problem:    Saving and restoring called_emsg is clumsy.742Solution:   Count the number of error messages.743Files:      src/message.c, src/buffer.c, src/channel.c, src/drawscreen.c,744            src/ex_cmds2.c, src/gui.c, src/highlight.c, src/main.c,745            src/regexp.c, src/search.c, src/testing.c, src/globals.h746 747Patch 8.2.0036748Problem:    Not enough test coverage for match functions.749Solution:   Add a few more test cases.  (Dominique Pellé, closes #5394)750            Add error number.751Files:      src/testdir/test_match.vim752 753Patch 8.2.0037754Problem:    Missing renamed message.755Solution:   Now really add the error number.756Files:      src/highlight.c757 758Patch 8.2.0038759Problem:    Spell suggestions insufficiently tested.760Solution:   Add spell suggestion tests. (Dominique Pellé, closes #5398)761Files:      src/testdir/test_spell.vim762 763Patch 8.2.0039764Problem:    Memory access error when "z=" has no suggestions.765Solution:   Check for negative index.766Files:      src/testdir/test_spell.vim, src/spellsuggest.c767 768Patch 8.2.0040769Problem:    Timers test is still flaky on Travis for Mac.770Solution:   Run separately instead of as part of test_alot.771Files:      src/testdir/Make_all.mak, src/testdir/test_alot.vim772 773Patch 8.2.0041774Problem:    Leaking memory when selecting spell suggestion.775Solution:   Free previous value at the right time.776Files:      src/spellsuggest.c777 778Patch 8.2.0042779Problem:    Clearing funccal values twice.780Solution:   Remove clearing individual fields.781Files:      src/userfunc.c782 783Patch 8.2.0043784Problem:    Timers test is still flaky on Travis for Mac.785Solution:   Increase maximum expected time.786Files:      src/testdir/test_timers.vim787 788Patch 8.2.0044789Problem:    Expression type is used inconsistently.790Solution:   Add "ETYPE_IS" and "ETYPE_ISNOT" as separate enum values.  Rename791            "TYPE_" to "ETYPE_" to avoid confusion.792Files:      src/structs.h, src/eval.c, src/proto/eval.pro, src/debugger.c793 794Patch 8.2.0045 (after 8.2.0044)795Problem:    Script test fails.796Solution:   For numbers "is" and "isnot" work like "==" and "!=".797Files:      src/eval.c798 799Patch 8.2.0046800Problem:    Tests for spell suggestions are slow.801Solution:   Use shorter words. Test with latin1 and utf-8 to cover more code.802            (Dominique Pellé, closes #5399)803Files:      src/testdir/test_spell.vim804 805Patch 8.2.0047806Problem:    Cannot skip tests for specific MS-Windows platform.807Solution:   Add windowsversion().808Files:      src/os_win32.c, src/globals.h, src/evalfunc.c,809            runtime/doc/eval.txt, src/testdir/gen_opt_test.vim,810            src/testdir/test_options.vim811 812Patch 8.2.0048813Problem:    Another timers test is flaky on Travis for Mac.814Solution:   Increase maximum expected time.815Files:      src/testdir/test_timers.vim816 817Patch 8.2.0049818Problem:    Command line completion not fully tested.819Solution:   Add more test cases.  Make help sorting stable. (Dominique Pellé,820            closes #5402)821Files:      src/ex_cmds.c, src/testdir/test_cd.vim,822            src/testdir/test_cmdline.vim, src/testdir/test_help.vim,823            src/testdir/test_menu.vim, src/testdir/test_options.vim,824            src/testdir/test_syntax.vim825 826Patch 8.2.0050827Problem:    After deleting a file mark it is still in viminfo.828Solution:   When a file mark was deleted more recently than the mark in the829            merged viminfo file was updated, do not store the mark. (Pavol830            Juhas, closes #5401, closes #1339)831Files:      src/mark.c, src/testdir/test_marks.vim,832            src/testdir/test_viminfo.vim, src/viminfo.c833 834Patch 8.2.0051 (after 8.2.0049)835Problem:    Command line completion test skipped. (Christian Brabandt)836Solution:   Invert condition.837Files:      src/testdir/test_cmdline.vim838 839Patch 8.2.0052840Problem:    More-prompt not properly tested.841Solution:   Add a test case. (Dominique Pellé, closes #5404)842Files:      src/testdir/test_messages.vim843 844Patch 8.2.0053845Problem:    windowsversion() does not always return the right value.846Solution:   Add a compatibility section in the manifest. (Ken Takata,847            closes #5407)848Files:      src/gvim.exe.mnf849 850Patch 8.2.0054851Problem:    :diffget and :diffput don't have good completion.852Solution:   Add proper completion. (Dominique Pellé, closes #5409)853Files:      runtime/doc/eval.txt, src/buffer.c, src/cmdexpand.c,854            src/testdir/test_diffmode.vim, src/usercmd.c, src/vim.h855 856Patch 8.2.0055857Problem:    Cannot use ":gui" in vimrc with VIMDLL enabled.858Solution:   Change the logic, check "gui.starting". (Ken Takata, closes #5408)859Files:      src/gui.c860 861Patch 8.2.0056862Problem:    Execution stack is incomplete and inefficient.863Solution:   Introduce a proper execution stack and use it instead of864            sourcing_name/sourcing_lnum.  Create a string only when used.865Files:      src/structs.h, src/globals.h, src/autocmd.c, src/buffer.c866            src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/highlight.c,867            src/main.c, src/map.c, src/message.c, src/proto/scriptfile.pro,868            src/scriptfile.c, src/option.c, src/profiler.c, src/spellfile.c,869            src/term.c, src/testing.c, src/usercmd.c, src/userfunc.c,870            src/kword_test.c, src/testdir/test_debugger.vim871 872Patch 8.2.0057 (after 8.2.0056)873Problem:    Cannot build with small features.874Solution:   Add #ifdefs.875Files:      src/scriptfile.c876 877Patch 8.2.0058878Problem:    Running tests changes ~/.viminfo.879Solution:   Make 'viminfo' empty when summarizing tests results. (closes #5414)880Files:      src/testdir/summarize.vim881 882Patch 8.2.0059883Problem:    Compiler warnings for unused variables in small build. (Tony884            Mechelynck)885Solution:   Add #ifdef.886Files:      src/scriptfile.c887 888Patch 8.2.0060889Problem:    Message test only runs with one encoding. (Dominique Pellé)890Solution:   Run the test with "utf-8" and "latin1".  Fix underflow. (related891            to #5410)892Files:      src/message_test.c, src/message.c893 894Patch 8.2.0061895Problem:    The execute stack can grow big and never shrinks.896Solution:   Reduce the size in garbage collect.897Files:      src/eval.c898 899Patch 8.2.0062900Problem:    Memory test is flaky on FreeBSD.901Solution:   Add a short sleep before getting the first size.902Files:      src/testdir/test_memory_usage.vim903 904Patch 8.2.0063905Problem:    Wrong size argument to vim_snprintf(). (Dominique Pellé)906Solution:   Reduce the size by the length. (related to #5410)907Files:      src/ops.c908 909Patch 8.2.0064910Problem:    Diffmode completion doesn't use per-window setting.911Solution:   Check if a window is in diff mode. (Dominique Pellé, closes #5419)912Files:      src/buffer.c, src/testdir/test_diffmode.vim913 914Patch 8.2.0065915Problem:    Amiga and alikes: autoopen only used on Amiga OS4.916Solution:   Adjust #ifdefs. (Ola Söder, closes #5413)917Files:      src/os_amiga.c918 919Patch 8.2.0066920Problem:    Some corners of vim_snprintf() are not tested.921Solution:   Add a test in C. (Dominique Pellé, closes #5422)922Files:      src/message_test.c923 924Patch 8.2.0067925Problem:    ERROR_UNKNOWN clashes on some systems.926Solution:   Rename ERROR_ to FCERR_. (Ola Söder, closes #5415)927Files:      src/evalfunc.c, src/userfunc.c, src/vim.h928 929Patch 8.2.0068930Problem:    Crash when using Python 3 with "utf32" encoding. (Dominique Pellé)931Solution:   Use "utf-8" whenever enc_utf8 is set. (closes #5423)932Files:      src/testdir/test_python3.vim, src/if_py_both.h933 934Patch 8.2.0069935Problem:    ETYPE_ is used for two different enums.936Solution:   Rename one to use EXPR_.937Files:      src/structs.h, src/eval.c, src/debugger.c938 939Patch 8.2.0070940Problem:    Crash when using Python 3 with "debug" encoding. (Dominique Pellé)941Solution:   Use "euc-jp" whenever enc_dbcs is set.942Files:      src/testdir/test_python3.vim, src/if_py_both.h943 944Patch 8.2.0071945Problem:    Memory test often fails on Cirrus CI.946Solution:   Allow for more tolerance in the upper limit.  Remove sleep.947Files:      src/testdir/test_memory_usage.vim948 949Patch 8.2.0072 (after 8.2.0071)950Problem:    Memory test still fails on Cirrus CI.951Solution:   Allow for a tiny bit more tolerance in the upper limit.952Files:      src/testdir/test_memory_usage.vim953 954Patch 8.2.0073955Problem:    Initializing globals with COMMA is clumsy.956Solution:   Use INIT2(), INIT3(), etc.957Files:      src/vim.h, src/globals.h958 959Patch 8.2.0074960Problem:    Python 3 unicode test sometimes fails.961Solution:   Make 'termencoding' empty.  Correct number of error message.962Files:      src/change.c, runtime/doc/options.txt, runtime/doc/message.txt,963            src/testdir/test_python3.vim964 965Patch 8.2.0075966Problem:    Python 3 unicode test still sometimes fails.967Solution:   Skip the test when 'termencoding' is not empty.968Files:      src/testdir/test_python3.vim969 970Patch 8.2.0076971Problem:    Python 3 unicode test fails on MS-Windows.972Solution:   Do not set 'encoding' to "debug" on MS-Windows.973Files:      src/testdir/test_python3.vim974 975Patch 8.2.0077976Problem:    settagstack() cannot truncate at current index.977Solution:   Add the "t" action. (Yegappan Lakshmanan, closes #5417)978Files:      runtime/doc/eval.txt, src/evalfunc.c, src/tag.c,979            src/testdir/test_tagjump.vim980 981Patch 8.2.0078982Problem:    Expanding <sfile> works differently the second time.983Solution:   Keep the expanded name when redefining a function. (closes #5425)984Files:      src/testdir/test_vimscript.vim, src/userfunc.c985 986Patch 8.2.0079987Problem:    Python 3 unicode test still fails on MS-Windows.988Solution:   Do not set 'encoding' to "euc-tw" on MS-Windows.989Files:      src/testdir/test_python3.vim990 991Patch 8.2.0080992Problem:    Globals using INIT4() are not in the tags file.993Solution:   Adjust the tags command.994Files:      src/configure.ac, src/auto/configure995 996Patch 8.2.0081997Problem:    MS-Windows also need the change to support INIT4().998Solution:   Add the ctags arguments. (Ken Takata)999Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak1000 1001Patch 8.2.00821002Problem:    When reusing a buffer listeners are not cleared. (Axel Forsman)1003Solution:   Clear listeners when reusing a buffer. (closes #5431)1004Files:      src/testdir/test_listener.vim, src/buffer.c1005 1006Patch 8.2.00831007Problem:    Text properties wrong when tabs and spaces are exchanged.1008Solution:   Take text properties into account. (Nobuhiro Takasaki,1009            closes #5427)1010Files:      src/edit.c, src/testdir/test_textprop.vim1011 1012Patch 8.2.00841013Problem:    Complete item "user_data" can only be a string.1014Solution:   Accept any type of variable. (closes #5412)1015Files:      src/testdir/test_ins_complete.vim, src/insexpand.c, src/dict.c,1016            src/proto/dict.pro, src/eval.c, runtime/doc/insert.txt1017 1018Patch 8.2.00851019Problem:    Dead code in builtin functions.1020Solution:   Clean up the code.1021Files:      src/evalvars.c, src/sound.c, src/textprop.c1022 1023Patch 8.2.0086 (after 8.2.0084)1024Problem:    Build error for small version. (Tony Mechelynck)1025Solution:   Only use "user_data" with the +eval feature. Remove unused1026            variable.1027Files:      src/insexpand.c, src/dict.c1028 1029Patch 8.2.00871030Problem:    Crash in command line expansion when out of memory.1031Solution:   Check for NULL pointer.  Also make ExpandGeneric() static.1032            (Dominique Pellé, closes #5437)1033Files:      src/cmdexpand.c, src/proto/cmdexpand.pro1034 1035Patch 8.2.00881036Problem:    Insufficient tests for tags; bug in using extra tag field when1037            using an ex command to position the cursor.1038Solution:   Fix the bug, add more tests. (Yegappan Lakshmanan, closes #5439)1039Files:      runtime/doc/tagsrch.txt, src/tag.c,1040            src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim,1041            src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim1042 1043Patch 8.2.00891044Problem:    Crash when running out of memory in :setfiletype completion.1045Solution:   Do not allocate memory. (Dominique Pellé, closes #5438)1046Files:      src/cmdexpand.c1047 1048Patch 8.2.00901049Problem:    Generated files show up in git status.1050Solution:   Ignore a few more files.1051Files:      .gitignore1052 1053Patch 8.2.00911054Problem:    Compiler warnings for size_t / int types.1055Solution:   Change type to size_t. (Mike Williams)1056Files:      src/scriptfile.c1057 1058Patch 8.2.00921059Problem:    Tags functionality insufficiently tested.1060Solution:   Add more tags tests. (Yegappan Lakshmanan, closes #5446)1061Files:      src/testdir/test_tagjump.vim1062 1063Patch 8.2.00931064Problem:    win_splitmove() can make Vim hang.1065Solution:   Check windows exists in the current tab page. (closes #5444)1066Files:      src/testdir/test_window_cmd.vim, src/evalwindow.c1067 1068Patch 8.2.00941069Problem:    MS-Windows: cannot build with Strawberry Perl 5.30.1070Solution:   Define __builtin_expect() as a workaround. (Ken Takata,1071            closes #5267)1072Files:      src/if_perl.xs1073 1074Patch 8.2.00951075Problem:    Cannot specify exit code for :cquit.1076Solution:   Add optional argument. (Thinca, Yegappan Lakshmanan, closes #5442)1077Files:      runtime/doc/quickfix.txt, src/ex_cmds.h, src/ex_docmd.c,1078            src/testdir/test_quickfix.vim1079 1080Patch 8.2.00961081Problem:    Cannot create tiny popup window in last column. (Daniel Steinberg)1082Solution:   Remove position limit. (closes #5447)1083Files:      src/popupwin.c, src/testdir/test_popupwin.vim,1084            src/testdir/dumps/Test_popupwin_20.dump,1085            src/testdir/dumps/Test_popupwin_21.dump1086 1087Patch 8.2.00971088Problem:    Crash with autocommand and spellfile. (Tim Pope)1089Solution:   Do not pop exestack when not pushed. (closes #5450)1090Files:      src/testdir/test_autocmd.vim, src/spellfile.c1091 1092Patch 8.2.00981093Problem:    Exe stack length can be wrong without being detected.1094Solution:   Add a check when ABORT_ON_INTERNAL_ERROR is defined.1095Files:      src/macros.h, src/autocmd.c, src/buffer.c, src/ex_docmd.c,1096            src/main.c, src/map.c, src/scriptfile.c, src/spellfile.c,1097            src/userfunc.c1098 1099Patch 8.2.00991100Problem:    Use of NULL pointer when out of memory.1101Solution:   Check for NULL pointer. (Dominique Pellé, closes #5449)1102Files:      src/cmdexpand.c1103 1104Patch 8.2.01001105Problem:    Macros for Ruby are too complicated.1106Solution:   Do not use DYNAMIC_RUBY_VER, use RUBY_VERSION. (Ken Takata,1107            closes #5452)1108Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure,1109            src/configure.ac, src/if_ruby.c1110 1111Patch 8.2.01011112Problem:    Crash when passing null object to ":echomsg".1113Solution:   Check for NULL pointer. (Yasuhiro Matsumoto, closes #5460)1114Files:      src/eval.c, src/testdir/test_messages.vim1115 1116Patch 8.2.01021117Problem:    Messages test fails in small version.1118Solution:   Only use test_null_job() when available.1119Files:      src/testdir/test_messages.vim1120 1121Patch 8.2.01031122Problem:    Using null object with execute() has strange effects.1123Solution:   Give an error message for Job and Channel.1124Files:      src/testdir/test_execute_func.vim, src/globals.h, src/eval.c,1125            src/evalfunc.c1126 1127Patch 8.2.01041128Problem:    Using channel or job with ":execute" has strange effects.1129Solution:   Give an error message for Job and Channel.1130Files:      src/testdir/test_eval_stuff.vim, src/eval.c1131 1132Patch 8.2.01051133Problem:    Vim license not easy to find on github.1134Solution:   Add a separate LICENCE file. (closes #5458)1135Files:      LICENSE, Filelist1136 1137Patch 8.2.01061138Problem:    Printf formats are not exactly right.1139Solution:   Adjust signed/unsigned conversions. (Frazer Clews, closes #5456)1140Files:      runtime/tools/ccfilter.c, src/libvterm/src/parser.c,1141            src/libvterm/src/pen.c, src/ui.c1142 1143Patch 8.2.01071144Problem:    Hgignore is out of sync from gitignore.1145Solution:   Add lines to hgignore. (Ken Takata)1146Files:      .hgignore1147 1148Patch 8.2.01081149Problem:    When sign text is changed a manual redraw is needed. (Pontus1150            Lietzler)1151Solution:   Redraw automatically. (closes #5455)1152Files:      src/testdir/test_signs.vim, src/sign.c,1153            src/testdir/dumps/Test_sign_cursor_1.dump,1154            src/testdir/dumps/Test_sign_cursor_2.dump,1155            src/testdir/dumps/Test_sign_cursor_3.dump,1156            src/testdir/dumps/Test_sign_cursor_01.dump,1157            src/testdir/dumps/Test_sign_cursor_02.dump1158 1159Patch 8.2.01091160Problem:    Corrupted text properties when expanding spaces.1161Solution:   Reallocate the line. (Nobuhiro Takasaki, closes #5457)1162Files:      src/edit.c, src/testdir/test_textprop.vim1163 1164Patch 8.2.01101165Problem:    prop_find() is not implemented.1166Solution:   Implement prop_find(). (Ryan Hackett, closes #5421, closes #4970)1167Files:      src/evalfunc.c, src/proto/textprop.pro,1168            src/testdir/test_textprop.vim, src/textprop.c,1169            runtime/doc/textprop.txt1170 1171Patch 8.2.01111172Problem:    VAR_SPECIAL is also used for booleans.1173Solution:   Add VAR_BOOL for better type checking.1174Files:      src/structs.h, src/dict.c, src/eval.c, src/evalfunc.c,1175            src/evalvars.c, src/if_lua.c, src/if_mzsch.c, src/if_py_both.h,1176            src/if_ruby.c, src/json.c, src/popupmenu.c, src/proto/dict.pro,1177            src/testing.c, src/vim.h, src/viminfo.c1178 1179Patch 8.2.01121180Problem:    Illegal memory access when using 'cindent'.1181Solution:   Check for NUL byte. (Dominique Pellé, closes #5470)1182Files:      src/cindent.c, src/testdir/test_cindent.vim1183 1184Patch 8.2.0113 (after 8.2.0095)1185Problem:    "make cmdidxs" fails.1186Solution:   Allow address for ":cquit".  Add --not-a-term to avoid a delay.1187Files:      src/ex_cmds.h, src/Makefile, src/Make_cyg_ming.mak,1188            src/Make_mvc.mak1189 1190Patch 8.2.01141191Problem:    Info about sourced scripts is scattered.1192Solution:   Use scriptitem_T for info about a script, including s: variables.1193            Drop ga_scripts.1194Files:      src/structs.h, src/evalvars.c, src/scriptfile.c, src/eval.c1195 1196Patch 8.2.01151197Problem:    Byte2line() does not work correctly with text properties. (Billie1198            Cleek)1199Solution:   Take the bytes of the text properties into account.1200            (closes #5334)

Showing the first 1,200 of 52675 lines. Download the file for the rest.

codekingpro/portable-devtools · Team Ai