codekingpro/portable-devtools
114k
1*todo.txt* For Vim version 9.2. Last change: 2026 Feb 142 3 4 VIM REFERENCE MANUAL by Bram Moolenaar5 6 7 TODO list for Vim *todo*8 9This is a veeeery long list of known bugs, current work and desired10improvements. To make it a little bit accessible, the older items are grouped11by subject. In the first column of the line a classification is used to be12able to look for "the next thing to do":13 14Priority classification:159 next point release168 next release177 as soon as possible186 soon195 should be included204 nice to have213 consider including222 maybe not231 probably not24- unclassified25 26See |develop.txt| for development plans.27 28Issues can also be entered online: https://github.com/vim/vim/issues29Only use this for bug reports, not for questions! Those belong on the30maillist. Updates will be forwarded to the |vim_dev| maillist. Issues31entered there will not be repeated below, unless there is extra information.32 33The #1234 numbers refer to an issue or pull request on github. To see it in a34browser use: https://github.com/vim/vim/issues/123435(replace 1234 with the issue/pull number)36 *known-bugs*37-------------------- Known bugs and current work -----------------------38 39Mapping with modifier is not recognized after a partial mapping. Probably40because the typeahead was simplified when looking for a matching mapping.41Need to somehow undo the simplification. #1200242 43Windows scroll when using the autocmd window. #1208544in restore_snapshot_rec() restore more values from the snapshot, instead of45calling frame_new_height() and frame_new_width(), especially w_topline and46w_skipcol.47 48Check places that source "path/*.vim" to not match other extensions, e.g.49.vim9, on MS-Windows (short file name match, gets expanded to long file name).50E.g. for startup files, plugins, packs, etc.51 52When a help item can't be found, then open 'helpfile'. Search for the tag in53that file and gtive E149 only when not found. Helps for a tiny Vim installed54without all the help files.55 56Virtual text problems:57- Virtual text aligned "above": Wrong indentation when using tabs (Issue58 #12232)59- truncated Virtual text below an empty line causes display error #1249360 61When 'virtualedit' is "all" and 'cursorcolumn' is set, the wrong column may be62highlighted. (van-de-bugger, 2018 Jan 23, #2576)63 64With 'smoothscroll' set and "lastline" in 'display', moving the cursor to a65wrapping line that makes the display scroll up may scroll much more than66needed, thus jump-scrolling. (part of issue 12411)67Errors when running tests with valgrind:68- test_codestyle.vim: e.g.:69 command line..script /home/mool/vim/vim91/src/testdir/runtest.vim[569]..function RunTheTest[52]..Test_test_files line 6: keycode_check.vim: space before tab: Expected 0 but got 770 command line..script /home/mool/vim/vim91/src/testdir/runtest.vim[569]..function RunTheTest[52]..Test_test_files line 10: setup.vim: trailing white space: Expected 0 but got 2371- test_gui.vim:72 Found errors in Test_gui_mouse_event():73 74When every block in if/elseif ends in "throw" or "return" code following after75"endif" should give an "unreachable code" error.76 77Upcoming larger works:78- Make spell checking work with recent .dic/.aff files, e.g. French. #491679 Make Vim understand the format somehow? Search for "spell" below.80 Make sure suggestions are speedy, also with composed words (German).81- Make syntax highlighting faster and better.82 Add a generic mechanism to test a syntax plugin: An input file for the83 filetype and a screendump of expected result. With a way to specify the84 setup (global variables) and another dump file from that.85 Discuss alternatives for using other grammars (treesitter, TextMate).86 - Possibly conversion to Vim syntax rules.87 - Other mechanism than group and cluster to nest syntax items, to be used88 for grammars.89 - Possibly keeping the parsed syntax tree and incremental updates.90 - tree-sitter doesn't handle incorrect syntax (while typing) properly.91 - NeoVim uses treesitter, what can we learn from that?92 - Vscode is asked to switch to treesitter:93 https://github.com/microsoft/vscode/issues/5014094 - Vscode uses TextMate. #9087 - Other people don't like it.95 https://github.com/icedman/vim-textmate96 - sublime grammar? Hugo mentions it's a moving target #908797 - Make clear how it relates to LSP.98 - example plugin: https://github.com/uga-rosa/dps-vsctm.vim99 100 101Further Vim9 improvements:102- Classes and Interfaces. See |vim9-classes|103 - Getting member of variable with "any" type should be handled at runtime.104 Remove temporary solution from #12096 / patch 9.0.1375.105 - "obj.Method()" does not always work in a compiled function, assumes "obj"106 is a dictionary. #12196 Issue #12024 might be the same problem.107 Issue #11822: any.Func() can be a dict or an object call, need to handle108 this at runtime. Also see #12198 for an example.109 Possibly issue #11981 can be fixed at the same time (has two examples).110 - Forward declaration of a class? E.g. for Clone() function.111 Email lifepillar 2023 Mar 26112 - how about lock/unlock?113 - For chaining, allow using the class name as type for function return114 value.115 - Implement "specifies" interface116 - Add "assignable" (class or child)?117 - More efficient way for interface member index than iterating over list?118 - a variant of type() that returns a different type for each class?119 list<number> and list<string> should also differ.120- Promise class, could be used to wait on a popup close callback?121- class local to a function122- Use Vim9 for more runtime files.123- Inline call to map() and filter(), better type checking.124- When evaluating constants for script variables, some functions could work:125 has(featureName), len(someString)126- Implement as part of an expression: ++expr, --expr, expr++, expr--.127- The use of the literal value "null" and the type specific "null_xxx"128 values is confusing (#13433, #11770).129 130Information missing in terminfo:131- Codes used for focus gained and lost termcodes are hard-coded in132 set_termname(), not named.133- t_fe enable focus-event tracking134- t_fd disable focus-event tracking135- Accept "hyper" and "meta" modifiers (16 and 32) from Kitty like Meta?136 8 is actually "super".137- t_RV request terminal version string; xterm: "\033[>c"138 change in terminfo for "RV" uses the wrong escape sequence 7 - 14 Jan only139- Codes for <PasteStart> t_PS and <PasteEnd> t_PE; with bracketed paste:140 t_BE and t_BD.141Modifiers for various keys142- flag to indicate "xterm compatible modifiers" ?143Underline and similar:144- t_AU - Set underline color: like "AF" and "AB" entries.145- t_Ce undercurl and underline end146- t_Cs undercurl (curly underline) mode147- t_Us double underline mode148- t_ds dotted underline mode149- t_Ds dashed underline mode150- t_Te strikethrough end151- t_Ts strikethrough mode152Cursor codes: |termcap-cursor-shape|153- t_RC request terminal cursor blinking154- t_RS request terminal cursor style155- t_VS cursor normally visible (no blink)156- t_SI start insert mode (bar cursor shape)157- t_SR start replace mode (underline cursor shape)158- t_EI end insert or replace mode (block cursor shape)159- t_SC set cursor color start160- t_EC set cursor color end161- t_SH set cursor shape162State requests:163- t_RF request terminal foreground color164- t_RB request terminal background color165Less important (not needed for regular editing):166- t_IS set icon text start167- t_IE set icon text end168- t_ST save window title to stack169- t_RT restore window title from stack170- t_Si save icon text to stack171- t_Ri restore icon text from stack172- t_WP set window position (Y, X) in pixels173- t_GP get window position (Y, X) in pixels174- t_WS set window size (height, width in cells)175Vim internal, but there should be a terminfo entry for these:176- t_8f set foreground color (R, G, B) in printf() format177- t_8b set background color (R, G, B) in printf() format178- t_8u set underline color (R, G, B) in printf() format179Probably Vim internal, not in terminfo:180- t_TE end of "raw" mode181- t_TI put terminal into "raw" mode182- t_RK request terminal keyboard protocol state; sent after |t_TI|183Already working, not properly documented:184- t_u7 request cursor position185 186Popup windows:187- Add a function to redraw a specific popup window. Esp. to be used when188 editing the command line, when screen updating doesn't happen. (Shougo)189 #10210 Example that shows the need on the issue.190 Probably need to update all popup windows (they may overlap)191 If the display is scrolled need to redraw everything later.192- Add a flag to make a popup window focusable?193 CTRL-W P cycle over any preview window or focusable popup, end up back in194 current window.195 ? - switch between current window and all popup windows196 Esc in popup window goes back to previous current window197- Add a termcap entry for changing the cursor when it goes under the popup and198 back. like t_SI and t_EI (t_SU and t_EU, where "U" means under?)199- With terminal in popup, allow for popup_hide() to temporarily hide it.?200- Make it possible to scroll horizontally when 'wrap' is off. Does this201 require an ascii scrollbar, like with the vertical one?202- Fire some autocommand event after a new popup window was created and203 positioned? PopupNew? Could be used to set some options or move it out of204 the way. (#5737)205 However, it may also cause trouble, changing the popup of another plugin.206- Add a way to use popup_menu() synchronously: instead of invoking the207 callback, return the choice. (Ben Jackson, #6534)208- Implement flip option.209- Make redrawing more efficient and avoid flicker:210 - put popup menu also in popup_mask?211- Match does not have right BG color if line length equals popup width.212 (#5658)213- Figure out the size and position better if wrapping inserts indent214 215'incsearch' with :s:216- :s/foo using CTRL-G moves to another line, should not happen, or use the217 correct line (it uses the last but one line) (Lifepillar, Aug 18, #3345)218- Also support range: :/foo/,/bar/delete219- Also support for user command, e.g. Cfilter220- :%s/foo should take the first match below the cursor line, unless there221 isn't one?222 Then :%s?foo should take the first match above the cursor line.223 224Prompt buffer:225- Add a command line history, using up/down keys. issue #5010226- delay next prompt until plugin gives OK?227- add prompt_addtext({buf}, {expr}) none add text to a prompt buffer228 229Terminal debugger:230- Add a mechanism for configuration. Instead of several global variables use231 a dictionary. Use callbacks for some things, e.g. opening a debug window in232 a certain position.233- Make prompt-buffer variant work better.234- Add option to not open the program window. It's not used when attaching to235 an already running program. (M. Kelly)236- Use the optional token on requests, match the result with it. #10300237- When only gdb window exists, on "quit" edit another buffer.238- Termdebug does not work when Vim was built with mzscheme: gdb hangs just239 after "run". Everything else works, including communication channel. Not240 initializing mzscheme avoid the problem, thus it's not some #ifdef.241- Add support for lldb? issue #3565242- Could we do something similar for debugging Vim scripts? At least see the243 script while stepping through it. Simple version would use an extra window.244 More complete solution would actually run Vim in a Terminal and control it245 with another Vim instance.246 247Terminal emulator window:248- Can escape a terminal popup with win_gotoid(), should be an error249- No support for underline color, t_8u.250- When in terminal-Normal mode when the job finishes, the cursor jumps to the251 end but the window is not updated. This only happens when typing "a".252 :term bash -c "for V in {0..5}; do echo $V; sleep 1; done"253- GUI: cursor color is not updated when going to Terminal-Job mode. #12328254- GUI: cursor color is not updated when switching between tabs with a key.255 #12329256- GUI: cursor color is not updated when switching between tabs with a mouse257 click. #12330258- When started with ":terminal ++close" and the shell exits but there is a259 background process, the window remains open, because the channel still260 exists (and output still shows). Perhaps close the window when an explicit261 ++close was used? (#5931)262- Using "CTRL-W :confirm quite" and selecting "yes" should work like ":quit!".263 (Harm te Hennepe, #6129)264- When the job in the terminal doesn't use mouse events, let the scroll wheel265 scroll the scrollback, like a terminal does at the shell prompt. #2490266 A bit like using CTRL-W N first.267 Jump back like with "a" when any key is typed.268 And use modeless selection. #2962269- Use CTRL-W CTRL-K to enter a digraph? #5371270- When Vim runs in the terminal and changes the title, the statusline needs to271 be redrawn.272- Allow for specifying the directory, with ++cwd={dir}.273- When pasting should call vterm_keyboard_start_paste(), e.g. when using274 K_MIDDLEMOUSE, calling insert_reg().275- Users expect parsing the :term argument like a shell does, also support276 single quotes. E.g. with: :term grep 'alice says "hello"' (#1999)277- Win32: Redirecting input does not work, half of Test_terminal_redir_file()278 is disabled.279- Win32: Redirecting output works but includes escape sequences.280- Win32: Make terminal used for :!cmd in the GUI work better. Allow for281 redirection.282- When the job only outputs lines, we could handle resizing the terminal283 better: store lines separated by line breaks, instead of screen lines,284 then when the window is resized redraw those lines.285- Redrawing is slow with Motif. (Ramel Eshed)286- For the GUI fill termios with default values, perhaps like pangoterm:287 (dead link)288 bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/head:/main.c#L134289- When 'encoding' is not utf-8, or the job is using another encoding, setup290 conversions.291 292GUI Scroll test fails on FreeBSD when using Motif. See FIXME in293Test_scrollbars in src/test_gui.vim294 295Remote command escapes single quote with backslash, should be doubling the296single quote in vim_strsave_escaped_ext() #12202.297 298Can deref_func_name() and deref_function_name() be merged?299 300Using :global with a pattern containing \zs doesn't use the line where \zs301matches but the start of the pattern. #3695 If there is a useful application302for this, it can be made to work by changing the call to ml_setmarked():303 ml_setmarked(lnum + regmatch.startpos[0].lnum);304 305After patch 8.2.4915 w_botline is computed much more often. Can this be306reduced?307 308When 'delcombine' is set a put after "x" includes the base character and all309combining characters. (Ron Aaron, 2023 Apr 10)310 311Add BufDeletePost. #11041312 313'switchbuf' set to "newtab" does not work for ":cfirst" when in the quickfix314window. #12436315 316When :argument has a non-number argument, use it like :buffer to find the317argument by name. #12272318 319Fold unexpectedly closed when inserting fold marker with CTRL-V (Issue #12320)320 321Can we make 'noendofline' and 'endoffile' visible? Should show by default,322since it's an unusual situation.323- Show 'noendofline' when it would be used for writing ('fileformat' "dos")324 with an upside down exclamation mark? NonText highlighting.325- Show 'endoffile' when it would be used for writing ('fileformat' "dos") with326 "CTRL-Z", NonText highlighting.327- Add 'fillchars' items to change this, default behavior like:328 noeol:¡329 eof:CTRL-Z330 331PR #11860: Add more info to 'colorcolumn': display a character and highlight332for each separate entry. Disadvantage: option value gets very complicated333with multiple entries, e.g. every 8 columns.334 335Stray characters in the shell #11719, caused by requesting a response for:336- XT key sequences337- Whether modifyOtherKeys is active338- Whether kitty keyboard protocol is active339Can we not request XT key sequences, or reduce them drastically?340 341Add some kind of ":whathappend" command and functions to make visible what the342last few typed keys and executed commands are. To be used when the user343wonders what went wrong. Could also be used for statistics #12046.344- typed keys - Normal mode command - like what is recorded in a register and345 displayed by 'showcmd'.346- register used - #12063347- executed command lines348- with more verbosity: what scripts/functions/autocommands were executed349 350Is there a way to make 'autowriteall' make a clean exit when the xterm is351closed? (Dennis Nazic says files are preserved, okt 28). Perhaps handle TERM352like HUP?353 354Better terminal emulator support:355 > Somehow request the terminfo entry from the terminal itself. The $TERM356 value then is only relevant for whether this feature is supported or not.357 Replaces the xterm mechanism to request each entry separately. #6609358 Multiplexers (screen, tmux) can request it to the underlying terminal, and359 pass it on with modifications.360 How to get all the text quickly (also over ssh)? Can we use a side channel?361 > When xterm supports sending an Escape sequence for the Esc key, should362 have a way to request this state. That could be an XTGETTCAP entry, e.g.363 "k!". Add "esc_sends_sequence" flag.364 If we know this state, then do not pretend going out of Insert mode in365 vgetorpeek(), where kitty_protocol_state is checked.366 > If a response ends up in a shell command, one way to avoid this is by367 sending t_RV last and delay starting a shell command until the response368 has been seen.369 > Can we use the req_more_codes_from_term() mechanism with more terminals?370 Should we repeat it after executing a shell command?371 Can also add this to the 'keyprotocol' option: "mok2+tcap"372 > In the table of terminal names pointing to the list of termcap entries,373 add an optional additional one. So that "xterm-kitty" can first load374 "xterm" and then add "kitty" entries.375 376In a timer callback, when using ":echo" and then input() the message is377overwritten. Could use ":echowin" and call redraw_cmd() in get_user_input().378#11299379 380To avoid flicker: add an option that when a screen clear is requested, instead381of clearing it draws everything and uses "clear to end of line" for every line.382Resetting 't_ut' already causes this?383 384Instead of prefixing "INTERNAL" to internal messages, add a message in iemsg()385and siemsg() and translate it. Messages only given to them don't need386translation.387 388When scheme can't be found by configure there is no clear "not found" message:389 configure:5769: checking MzScheme install prefix390 configure:5781: result:391 392Can "CSI nr X" be used instead of outputting spaces? Is it faster? #8002393 394Typed keys invisible after calling interrupt() from a timer. #10631395 396With a window height of 6 and 'scrolloff' set to 3, using "j" does not scroll397evenly. (#10545) Need to handle this in scroll_cursor_bot().398 399Idea: when typing ":e /some/dir/" and "dir" does not exist, highlight in red.400 401":set shellpipe&" and ":set shellredir&" should use the logic from402initialization to figure out the default value from 'shell'. Add a test for403this.404 405With concealed text mouse click doesn't put the cursor in the right position.406(Herb Sitz) Fix by Christian Brabandt, 2011 Jun 16. Doesn't work properly,407need to make the change in where RET_WIN_BUF_CHARTABSIZE() is called.408IDEA: when drawing the text, store the text byte index in ScreenLinesIdx[].409When converting screen column to text position use this.410The line number can be obtained from win->w_lines[].411 412test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.413 414Can we add highlighting to ":echowindow"?415 416Information for a specific terminal (e.g. gnome, tmux, konsole, alacritty) is417spread out. Make a section with copy/paste examples of script and pointers to418more information.419 420":filter set termcap" only filters terminal codes, not keys. (#9297)421 422Add an option to restrict 'incsearch' to not scroll the view. (Tavis Ormandy)423 424Remove SPACE_IN_FILENAME ? It is only used for completion.425 426When 'term' starts with "foot" then default t_TI and t_TE to the values used427for the builtin xterm termcap.428 429Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.430(#4087) Did patch 8.2.2379 help?431Also, z= in German on a long word can take a very long time, but CTRL-C to432interrupt does not work. Where to add ui_breakcheck()?433New English spell files also have very slow suggestions.434 435When 'spelloptions' is "camel" then zG doesn't work on some words.436(Gary Johnson, 17 Oct 2022)437 438'cdpath' problems:439- Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19)440- Problem with 'cdpath' on MS-Windows when a directory is equal to $HOME.441 (2006 Jul 26, Gary Johnson)442 443Make "g>" and "g<" in Visual mode move the text right or left.444Also for a block selection. #8558445 446When using dictionary insert completion with 'ignorecase', the leading capital447in a word should be preserved.448 449Add optional argument to virtcol() that specifies "start", "cursor" or "end"450to tell which value from getvvcol() should be used. (#7964)451Value returned by virtcol() changes depending on how lines wrap. This is452inconsistent with the documentation.453 454When 'wildignore' has an entry ending in "/*" this means nothing matching the455path before it will be added. When encountering a directory check this and if456there is a match do not scan the directory (possibly speeds up :find a lot).457#12482458 459globpath() does not use 'wildignorecase' at all? (related to #8350)460 461Add 'termguiattr' option, use "gui=" attributes in the terminal? Would work462with 'termguicolors'. #1740463 464Patch for blockwise paste reporting changes: #6660. Asked for a PR.465 466Missing filetype test for bashrc, PKGBUILD, etc.467 468Add an option to not fetch terminal codes in xterm, to avoid flicker when t_Co469changes.470 471Add ??= operator, "a ??= b" works like "a = a ?? b". #10343472 473When ":redir" is used while already active, the previous one is ended. But474when redirecting to a local variable (function or script) storing the value475won't work. At least give an error. Is there a way to make it work?476#10616477 478Add a "description" property to mappings. #12205479 480Add an option to start_timer() to return from the input loop with K_IGNORE.481This is useful e.g. when a popup was created that disables mappings, we need482to return from vgetc() to make this happen. #7011483 484Expanding <mods> should put the tab number from cmdmod.tab before "tab".485Any way to convert "$" back by using a special value? (#6901)486 487Can we detect true color support? https://gist.github.com/XVilka/8346728488Try setting a color then request the current color, like using t_u7.489 490Add a v:register_used variable, which has the name of the register used for491the last command, e.g. put. #12003492 493For testing, make a copy of ml_line_ptr instead of pointing it into the data494block, so that valgrind can do out of bounds check. Set ML_LINE_DIRTY flag or495add ML_LINE_ALLOCED.496 497Changing a capturing group to non-capturing changes the result: #7607498 :echo matchstr('aaa bbb', '\(.\{-1,}\>\)\|.*')499 aaa500 :echo matchstr('aaa bbb', '\%(.\{-1,}\>\)\|.*')501 aaa bbb502Should also work without any group:503 :echo matchstr('aaa bbb', '.\{-1,}\>\|.*')504 aaa bbb (should be aaa)505 506Should add a match/str/list/pos method that also returns the test and position507of submatches. #8355508 509Check out PR #543 (Roland Puntaier).510Patch for multibyte characters in langmap and applying a mapping on them.511(Christian Brabandt, 2015 Jun 12, update July 25)512Is this the right solution? Need to cleanup langmap behavior:513- in vgetorpeek() apply langmap to the typeahead buffer and put the result in514 a copy-buffer, only when langmap is appropriate for the current mode. Then515 check for mapping and let gotchars() work on the copy-buffer.516- Remove LANGMAP_ADJUST() in other parts of the code. Make sure the mode is517 covered by the above change.518So that replaying the register doesn't use keymap/langmap and still does the519same thing.520Also see #737: langmap not applied to replaying recording.521Perhaps also related: #5147522 523Matchparen doesn't remove highlight after undo. (#7054)524Is OK when syntax HL is active.525 526Currently Del can be used to delete the last character of a typed count.527Can it also be used to delete an incomplete Normal mode command? (#7096)528After an operator: should work. After "a" or "i" for text objects: should529work.530 531Using "au!" after "filetype on" is a bit slow. Can the matching of532autocommands be made faster? (#7056)533 534Using a search pattern containing "\%V" and 'hlsearch' set keeps old matches535when the Visual area changes. #11694. Do a redraw when starting a Visual536selection?537 538Append in Visual block mode inserts the wrong character.539Test_visual_block_mode() already has the proper check, which is commented out.540(#8288)541 542Add the <=> (spaceship) operator and "cond ?< expr ?= expr ?> expr"543 replace this:544 let left = GetLeftFunc()545 let right = GetRightFunc()546 let res = left < right ? lower : left == right ? equal : upper547 by:548 let res = GetLeftFunc() <=> GetRightFunc() ?< lower ?= equal ?> upper549 550Why does Test_invalid_sid() not work in the GUI?551 552":pedit" ignores the local working directory when 'pvp' is set (#7267)553 554Lua: updating wrong buffer when using newly created, unloaded buffer.555(#6539)556 557File marks merging has duplicates since 7.4.1925. (Ingo Karkat, #5733)558 559A syntax plugin cannot use autocommands, it could be sourced from setting560'syntax' in a modeline. Add a function that indicates whether "secure"561and/or "sandbox" are set.562 563Problem with auto-formatting - inserting space and putting cursor before added564character. (#6154)565Auto-formatting comments joins a following non-comment line when the comment566ends in a space. (Adam Levy, 18 Oct 2022)567 568When 'lazyredraw' is set sometimes the title is not updated.569(Jason Franklin, 2020 Feb 3) Looks like a race condition.570 571With bash ":make" does not set v:shell_error. Possible solution: set572'shellpipe' to "2>&1| tee %s; exit ${PIPESTATUS[0]}" #5994573 574Using mode() when "/pat" is used in Visual mode returns "v" instead of "c",575which is not useful. Return "c/v" instead. And "c/o" when using "d/pat".576#6127577 578Add a cterm attribute for "dimmed" or "faint" text. (#8269)579 580When 'fileignorecase' is set ":e testfile.c" works to edit TestFile.c, but581":find testfile.c" does not ignore case.582Might be related to #6088.583 584Error for reverse range when using :vimgrep in file "[id-01] file.txt".585(#6919)586 587When changing the crypt key the buffer should be considered modified.588Like when changing 'fileformat'. Save the old key in save_file_ff().589(Ninu-Ciprian Marginean)590 591Strange sequence of BufWipeout and BufNew events while doing omni-complete.592(Paul Jolly, #5656)593Get BufDelete without preceding BufNew. (Paul Jolly, #5694)594 Later more requests for what to track.595 Should we add new events that don't allow any buffer manipulation?596 Really only for dealing with appearing and disappearing buffers, load and597 unload.598BufWinenter event not fired when saving unnamed buffer. (Paul Jolly, #5655)599Another spurious BufDelete. (Dani Dickstein, #5701)600 601Wrong error when using local arglist. (Harm te Hennepe, #6133)602 603Test loose_clipboard() by selecting text before suspending.604 605:unmap <c-n> gives error but does remove the mapping. (Antony Scriven, 2019606Dec 19)607 608Patch to add an option to enable/disable VTP. (Nobuhiro Takasaki, #5344)609Should have three values: empty, "off", "on". Name it 'winterm'?610 611Patch to fix session file when using multiple tab pages. (Jason Franklin, 2019612May 20)613Also put :argadd commands at the start for all buffers, so that their order614remains equal? Then %argdel to clean it up. Do try this with 'hidden' set.615Also #5326: netrw buffers are not restored.616 617When 'backupdir' has a path ending in double slash (meaning: use full path of618the file) combined with 'patchmode' the file name is wrong. (#5791)619 620Completion mixes results from the current buffer with tags and other files.621Happens when typing CTRL-N while still searching for results. E.g., type "b_"622in terminal.c and then CTRL-N twice.623Should do current file first and not split it up when more results are found.624(Also #1890)625 626Help for ":argadd fname" says that if "fname" is already in the argument list627that entry is used. But instead it's always added. (#6210)628Add flag AL_FIND_ADD, if there is one argument find it in the list.629 630Statusline highlighting error, off by one. (#5599)631 632":find" with 'path' set to "data*" does not find files, while completion does633find them. (Max Kukartsev, #6218)634 635Enable 'termbidi' if $VTE_VERSION >= 5703 ?636 637"--cleanFOO" does not result in an error. (#5537)638 639Output from assert_equalfile() doesn't give a hint about what's different.640Assuming the files are text, print the line with the difference.641 642Result of synID() sometimes wrong in help files. (#5252)643 644When a help file is opened that doesn't have "ft=help" in the modeline then645the FileType is first set to "text" before it is set to "help". (#8099)646 647Problem showing a line if the number column width changes when using "o".648(Mateusz Morusiewicz, #4245)649 650When using :packadd for a replacement language plugin, it is loaded after the651default one. #4698652 653When using :packadd files under "later" are not used, which is inconsistent654with packages under "start". (xtal8, #1994)655 656Patch to add new motion ]( and ]{. (Yasuhiro Matsumoto, #5320)657Better: use the "z" prefix. or ]t) and [t(.658 659Visual highlight not removed when 'display' is "lastline" and line doesn't660fit. (Kevin Lawler, #4457)661 662Current position in the changelist should be local to the buffer. (#2173)663 664Does not build with MinGW out of the box:665- _stat64 is not defined, need to use "struct stat" in vim.h666- WINVER conflict, should use 0x0600 by default?667- INT_MAX not defined: need to include <limits.h> in vim.h668 669Display messed up with matchparen, wrapping and scrolling. (#5638)670Screen update bug related to matchparen. (Chris Heath, 2017 Mar 4, #1532)671 672When getting a focus event halfway a mapping this aborts the mapping. E.g.673when "qq" is mapped and after the first "q" the mouse is moved outside of the674gvim window (with focus follows mouse), then the K_FOCUSLOST key is put in the675input buffer. (#5302)676 677Check_external_diff() is used too often. (Daniel Hahler, #4800)678 679Win32: after "[I" showing matches, scroll wheel messes up screen. (Tsakiridis,6802007 Feb 18)681Patch by Alex Dobrynin, 2007 Jun 3. Also fixes other scroll wheel problems.682 683Add a WindowScrolled event. Trigger around the same time as CursorMoved.684Can be used to update highlighting. #3127 #5181685 686Incorrect formatting with autoindent. (Sebastian Gniazdowski, #4909)687 688Patch to add the :bvimgrep command. (Christian Brabandt, 2014 Nov 12)689Updated 2016 Jun 10, #858 Update 2017 Mar 28: use <buffer>.690Better use ":bufgrep" ?691 692Improve fallback for menu translations, to avoid having to create lots of693files that source the actual file. E.g. menu_da_de -> menu_da694Include part of #3242?695 696Patch for different behavior of text objects with quotes: #11976697Is this actually better?698 699Patch to have text objects defined by arbitrary single characters. (Daniel700Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31)701Added tests (James McCoy, 2016 Aug 3, #958). Still needs more work.702 703Would be nice to set tab-local values for 'diffexpr' and 'diffopt'. Use704t:diffexpr_option t:diffopt_option? (#4782)705Also make 'scrollopt' tab-local, remove "hor" only for the current tab page.706 707Internal diff doesn't handle binary file like external diff does. (Mike708Williams, 2018 Oct 30)709 710'[ mark in wrong column after put. (#4776)711 712Problem with :tlmenu: Detach item added with all modes? Issue #3563.713 714Add an argument to expandcmd() to expand like ":next" does.715 716When both "a" and "l" is in 'formatoptions' then auto-formatting also happens717in a long line. #5189718 719The quoting of the [command] argument of :terminal is not clearly documented.720Give a few examples. (#4288)721 722Opening a file with --remote-tab-silent that matches 'wildignore' does not723work, results in "E479: No match". (#4610)724 7257 Add an option to add one pixel column to the character width? Lucida726 Console italic is wider than the normal font ("d" overlaps with next char).727 Opposite of 'linespace': 'columnspace'.728Patch for this (Tristan Konolige, #1011, only added the option, no implem.)729 730Bug: script written with "-W scriptout" contains Key codes, while the script731read with "-s scriptin" expects escape codes. Probably "scriptout" needs to732be adjusted. (Daniel Steinberg, 2019 Feb 24, #4041)733 734Window size changes after closing a tab. (#4741)735 736Problem with colors in terminal window. (Jason Franklin, 2019 May 12)737 738Bug: "vipgw" does not put cursor back where it belongs. (Jason Franklin, 2019739Mar 5)740 741Some composing characters actually add a cell width to the character they are742on top off, making the whole thing two characters wide. (#4526)743 744Should we include some part of pull request #4505, not increment changedtick745in some cases? E.g. for ":write" when the changed flag was already off, the746buffer didn't change at all.747 748When using a timer callback vgetc_busy is reset, allowing for using input().749But in a channel callback this does not happen. We need to do something750similar to check_due_timer(). Also see #3809.751 752C syntax: {} inside () causes following {} to be highlighted as error.753(Michalis Giannakidis, 2006 Jun 1)754 755Check: __attribute__((format(printf, on semsg() and siemsg(). Where was this756added?757 758Add test for urxvt mouse codes. Also test that mouse coordinates can be759negative. (see #4326)760 761'cmdheight' has a tab-local value, but it cannot be obtained with762`:echo gettabwinvar(2, 1, '&cmdheight')` returns the value for the _current_763tab page. (Ingo Karkat, #4324)764:call settabwinvar(1, 1, '&cmdheight', 2) also doesn't work well.765 766When opening a file, allow for specifying the initial column position:767 vim +12:5 file.txt line 12 column 5768 :edit +12:5 file.txt769Should probably use the column as the character index.770 771This modeline throws unexpected errors: (#4165)772 vim: syn=nosyntax773 774Make balloon_show() work outside of 'balloonexpr'? Users expect it to work:775#2948. (related to #1512?)776Also see #2352, want better control over balloon, perhaps set the position.777Should also be possible to add highlighting, like in the status line?778balloonexpr() on MS-Windows GUI doesn't handle accented chars? (nivaemail,7792018 Sep 14)780 781More warnings from static analysis:782https://lgtm.com/projects/g/vim/vim/alerts/?mode=list (URL no longer resolves)783 784Not existing directory in CDPATH leads to two shell calls. (#4525)785 786Use dict_iterate_start() / dict_iterate_next() instead of relying on the787internals of the dict structure.788 789Redo only remembers the last change. Could use "{count}g." to redo an older790change. How does the user know which change? At least have a way to list791them: ":repeats". Add to history, like search history and command line history.792 793When 'confirm' is set a "silent q" doesn't show the prompt. It should in this794case. (Nate Peterson, 2019 Jan 31, #3892)795For "silent! q" it should not prompt and just fail.796 797Add <aevent>, which expands to the currently triggered autocommand event name.798(Daniel Hahler, #4232) Or add it to v:event (easier to use but slightly more799expensive).800 801Some xterm responses are not properly handled: (Markus Gömmel, 2019 Apr 1)802 DCS 0 $ r Pt ST should be ignored.803 DCS 0 + r/Pt/ ST already ignored?804 805Using CTRL-L to add a character to the search string that contains \v,806punctuation is repeated. (Smylers, 2018 Nov 17, #3621)807 808Using single wide base character with double wide composing character gives809drawing errors. Fill up the base character? (Dominique, #4328)810 811When 'sidescrolloff' is set, using "zl" to go to the end of the line, suddenly812scrolls back. Should allow for this scrolling, like 'scrolloff' does when813using CTRL-E. (Yee Cheng Chin, #3721)814 815When splitting a window with few text lines, the relative cursor position is816kept, which means part of the text isn't displayed. Better show all the text817when possible. (Dylan Lloyd, #3973)818 819Make ":interactive !cmd" stop termcap mode, also when used in an autocommand.820(#3692)821 822Add something like 'fillchars' local to window, but allow for specifying a823highlight name. Esp. for the statusline.824And "extends" and "precedes" are also useful without 'list' set. Also in825'fillchars' or another option?826 827Sourceforge Vim pages still have content, make them empty, keep redirect.828Check for PHP errors. (Wayne Davison, 2018 Oct 26)829 830Problem with Visual yank when 'linebreak' and 'showbreak' are set.831Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018832Nov 17) Asked about this, Dec 22. Christian will have a look.833 834Update for xim-input-style help (Tony Mechelynck, 2019 Jan 10).835Feedback from someone who uses this?836 837Only output t_Cs when t_Ce is also set. do not use Cs and Ce termcap entries. (Daniel Hahler, 2018 Sep 25)838Add t_cS and t_cR for cursor color select and reset. Use Cs and Cr terminfo839values.840 841Further xdiff changes:842- More options, e.g. different kind of whitespace diff.843- when editing text, update the surrounding diff blocks.844- omit diff.exe from distribution845- Can we make this show differences within a line?846- add option to use external diff above a certain size.847 848Difference between two regexp engines: #3373849 850When the last line wraps, selecting with the mouse below that line only851includes the first screen line. (2018 Aug 23, #3368)852 853Refactored HTML indent file. (Michael Lee, #1821)854Asked to write a test.855 856Merge checking for 'cursorline' and 'concealcursor', see neovim #9492.857 858Add a windowID argument to placing a sign, so that it only shows up in one859window for the buffer.860 861Compiler warning (geeknik, 2017 Oct 26):862- undefined left shift in eval_string(), before hex2nr() (#2250)863 Use unsigned for "nr".864 865Add Native language protocol server (LSP) support. (Yegappan Lakshmanan, 2018866Oct 28)867 868Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)869Update Sep 7. Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1.870Patch to be able to disable default digraphs (incomplete) (Eric Pruitt, 2018871Nov 22).872 873Patch to list user digraphs. (Christian Brabandt, 2012 Apr 14)874 875Setting 'columns' in a BufEnter autocommand causes a second tab width to876behave strangely, as if there is a gap and a vertical window separator.877(Michael Soyka, 2018 Sep 23, #3477)878 879Add an option similar to 'lazyredraw' to skip redrawing while executing a880script or function.881 882Using a menu item while the "more" prompt is displayed doesn't work well.883E.g. after using help->version. Have a key that ends the "more" prompt and884does nothing otherwise?885 886MS-Windows: write may fail if another program is reading the file.887If 'readonly' is not set but the file appears to be readonly later, try again888(wait a little while).889CreateFile() returns ERROR_SHARING_VIOLATION (Linwei, 2018 May 5)890 891Using --remote to open a file in which a # appears does not work on892MS-Windows. Perhaps in \# the \ is seen as a path separator. (Axel Bender,8932017 Feb 9) Can we expand wildcards first and send the path literally to the894receiving Vim? Or make an exception for #, it's not useful remotely.895 896Column number is wrong when using 'linebreak' and 'wrap'. (Keith Smiley, 2018897Jan 15, #2555)898 899Add Makefiles to the runtime/spell directory tree, since nobody uses Aap.900Will have to explain the manual steps (downloading the .aff and .dic files,901applying the diff, etc.902 903User dictionary ~/.vim/spell/lang.utf-8.add not used for spell checking until a904word is re-added to it. (Matej Cepl, 2018 Feb 6)905 906Fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9)907 908Implement option_save() and option_restore():909option_restore({list}) *option_restore()*910 Restore options previously saved by option_save().911 When buffer-local options have been saved, this function must912 be called when the same buffer is the current buffer.913 When window-local options have been saved, this function must914 be called when the same window is the current window.915 When in the wrong buffer and/or window an error is given and916 the local options won't be restored.917 918option_save({list}) *option_save()*919 Saves the options named in {list}. The returned value can be920 passed to option_restore(). Example: >921 let s:saved_options = option_save([922 \ 'ignorecase',923 \ 'iskeyword',924 \ ])925 au <buffer> BufLeave *926 \ call option_restore(s:saved_options)927< The advantage over using `:let` is that global and local928 values are handled and the script ID is restored, so that929 `:verbose set` will show where the option was originally set,930 not where it was restored.931 Alternatively: save and restore ALL options. Implementation needs to use932 copy-on-write. Return an ID from option_save(), when933 option_restore(ID) is called give an error if another option_save()934 was called in the meantime, they must be balanced.935 936"gvim --remote" from a directory with non-word characters changes the current937directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)938Also see #1689.939 940No profile information for function that executes ":quit". (Daniel Hahler,9412017 Dec 26, #2501)942 943A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)944 945Add script number to profile? (#3330 breaks tests).946 947A function defined locally and lambda's are not easily recognized.948Mention where they were defined somewhere.949 950ml_get errors with buggy script. (Dominique, 2017 Apr 30)951 952Error in emsg with buggy script. (Dominique, 2017 Apr 30)953 954Join truncates xml comment. (Dmitrii Tcyganok, 2017 Dec 24, #2494)955Requires 'formatoptions' to include "j". (Gary Johnson, 2017 Dec 24)956 957Patch to support hunspell. (Matej Cepl, Jan 2018, #2500) Based on older patch958in #846)959Doesn't work on Windows yet. Not ready to included, hard coded paths.960 961When a timer is running and typing CTRL-R on the command line, it is not962redrawn properly. (xtal8, 2017 Oct 23, #2241)963 964In an optional package the "after" directory is not scanned?965(Renato Fabbri, 2018 Feb 22)966 967Patch for Neovim concerning restoring when closing help window. (glacambre968neovim #7431)969 970Patch for improving detecting Ruby on Mac in configure. (Ilya Mikhaltsou, 2017971Nov 21)972 973When t_Co is changed from termresponse, the OptionSet autocommand event isn't974triggered. Use the code from the end of set_num_option() in975set_color_count().976 977When using command line window, CmdlineLeave is triggered without978CmdlineEnter. (xtal8, 2017 Oct 30, #2263)979Add some way to get the nested state. Although CmdwinEnter is obviously980always nested.981 982Problem with 'delcombine'. (agguser, 2017 Nov 10, #2313)983 984'delcombine' does not work for the command line. (Tony Mechelynck, 2009 Jul98520)986 987MS-Windows: buffer completion doesn't work when using backslash (or slash)988for a path separator. (xtal8, #2201)989 990Test more runtime files.991 992Window not closed when deleting buffer. (Harm te Hennepe, 2017 Aug 27, #2029)993 994Add options_default() / options_restore() to set several options to Vim995defaults for a plugin. Comments from Zyx, 2017 May 10.996Perhaps use a vimcontext / endvimcontext command block.997 998After using :noautocmd CursorMoved may still trigger. (Andy Stewart, 2017 Sep99913, #2084). Set old position after the command.1000 1001When bracketed paste is used, pasting at the ":append" prompt does not get the1002line breaks. (Ken Takata, 2017 Aug 22)1003 1004Cannot copy modeless selection when cursor is inside it. (lkintact, #2300)1005 1006Test_writefile_fails_conversion failure on Solaris because if different iconv1007behavior. Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872)1008 1009'tagrelative' is broken in specific situation. (xaizek, 2017 Oct 19, #2221)1010 1011The ++ options for the :edit command are also useful on the Vim command line.1012 1013Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,1014#2089) Patch with possible solution by Björn Linse.1015 1016X11: Putting more than about 262040 characters of text on the clipboard and1017pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)1018clip_x11_request_selection_cb() is called with zero value and length.1019Also: Get an error message from free() in the process that owns the selection.1020Seems to happen when the selection is requested the second time, but before1021clip_x11_convert_selection_cb() is invoked, thus in X library code.1022Kazunobu Kuriyama is working on a proper fix. (2017 Jul 25)1023 1024Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696)1025 1026Creating a partial with an autoload function is confused about the "self"1027attribute of the function. For an unknown function assume "self" and make1028that optional? (Bjorn Linse, 2017 Aug 5)1029 1030Cindent: returning a structure has more indent for the second item.1031(Sam Pagenkopf, 2017 Sep 14, #2090)1032 1033Patch from Christian Brabandt to preserve upper case marks when wiping out a1034buffer. (2013 Dec 9)1035Also fixes #2166?1036 1037Profile of a dict function is lost when the dict is deleted. Would it be1038possible to collect this? (Daniel Hahler, #2350)1039 1040When checking if a bufref is valid, also check the buffer number, to catch the1041case of :bwipe followed by :new.1042 1043Patch to skip writing a temp file for diffing if the buffer is equal to the1044existing file. (Akria Sheng, 2017 Jul 22)1045Could also skip writing lines that are the same.1046 1047MS-Windows: Opening same file in a second gvim hangs. (Sven Bruggemann, 20171048Jul 4)1049 1050Setting 'clipboard' to "unnamed" makes a global command very slow (Daniel1051Drucker, 2017 May 8).1052This was supposed to be fixed, did it break again somehow?1053Christian cannot reproduce it.1054 1055Using composing char in mapping does not work properly. maparg() shows the1056wrong thing. (Nikolai Pavlov, 2017 Jul 8, #1827)1057Or is this not an actual problem?1058 1059Better TeX indent file. (Christian Brabandt, 2017 May 3)1060 1061Use gvimext.dll from the nightly build? (Issue #249)1062 1063'synmaxcol' works with bytes instead of screen cells. (Llandon, 2017 May 31,1064#1736)1065 1066Problem with using :cd when remotely editing a file. (Gerd Wachsmuth, 2017 May10678, #1690)1068 1069Memory leak in test97? The string is actually freed. Weird.1070 1071assert_fails() can only check for the first error. Make it possible to have1072it catch multiple errors and check all of them.1073 1074Add a toolbar in the terminal. Can be global, above all windows, or specific1075for one window.1076 1077Make maparg() also return the raw rhs, so that it doesn't depend on 'cpo'.1078(Brett Stahlman, 2017 May 23)1079Even better: add a way to disable a mapping temporarily and re-enable it1080later. This is for a sub-mode that is active for a short while (one buffer).1081Still need maplist() to find the mappings. What can we use to identify a1082mapping? Something unique would be better than the LHS.1083Perhaps simpler: actually delete the mappings. Use maplist() to list matching1084mappings (with a lhs prefix, like maparg()), mapdelete() to delete,1085maprestore() to restore (using the output of maplist()).1086 1087Add an argument to :mkvimrc (or add another command) to skip mappings from1088plugins (source is a Vim script). No need to put these in a .vimrc, they will1089be defined when the plugin is loaded.1090 1091Use tb_set(winid, [{'text': 'stop', 'cb': callback, 'hi': 'Green'}])1092 tb_highlight(winid, 'ToolBar')1093 tb_get(winid)1094 1095json_encode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23)1096What if there is an invalid character?1097 1098Json string with trailing \u should be an error. (Lcd)1099 1100import can't be used in define option when include matches too.1101(Romain Lafourcade, 2017 Jun 18, #1519)1102 1103Wrong diff highlighting with three files. (2016 Oct 20, #1186)1104Also get E749 on exit.1105Another example in #13091106 1107Suggestion to improve pt-br spell checking. (Marcelo D Montu, 2016 Dec 15,1108#1330)1109 1110Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17)1111 1112Rule to use "^" for statusline does not work if a space is defined with1113highlighting for both stl and stlnc. Patch by Ken Hamada (itchyny, 2016 Dec 11)1114 1115Using CTRL-G_U in InsertCharPre causes trouble for redo. (Israel Chauca1116Fuentes, 2017 Feb 12, #1470)1117 1118Add a "keytrans()" function, which turns the internal byte representation of a1119key into a form that can be used for :map. E.g.1120 let xx = "\<C-Home>"1121 echo keytrans(xx)1122 <C-Home>1123 1124Check for errors E704 and E705 only does VAR_FUNC, should also do VAR_PARTIAL.1125(Nikolai Pavlov, 2017 Mar 13, #1557)1126Make a function to check for function-like type?1127 1128Implement named arguments for functions with optional arguments:1129 func Foo(start, count = 1, all = 1)1130 call Foo(12, all = 0)1131 1132Add a command to take a range of lines, filter them and put the output1133somewhere else. :{range}copy {dest} !cmd1134 1135The TermResponse event is not triggered when a plugin has set 'eventignore' to1136"all". Netrw does this. (Gary Johnson, 2017 Jan 24)1137Postpone the event until 'eventignore' is reset.1138 1139Expanding /**/ is slow. Idea by Luc Hermitte, 2017 Apr 14.1140 1141Once .exe with updated installer is available: Add remark to download page1142about /S and /D options (Ken Takata, 2016 Apr 13)1143Or point to nightly builds: https://github.com/vim/vim-win32-installer/releases1144 1145":sbr" docs state it respects 'switchbuf', but "vsplit" does not cause a1146vertical split. (Haldean Brown, 2017 Mar 1)1147 1148Use ADDR_OTHER instead of ADDR_LINES for many more commands.1149E.g. all the location list commands use a count.1150Add tests for using number larger than number of lines in buffer.1151 1152Might be useful to have isreadonly(), like we have islocked().1153Avoids exceptions, e.g. when using the b: namespace as a dict.1154 1155Patch to make v:shell_error writable. (Christian Brabandt, 2016 Sep 27)1156Useful to restore it. Is there another solution?1157 1158Patch for wrong cursor position on wrapped line, involving breakindent.1159(Ozaki Kiichi, 2016 Nov 25)1160 1161Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30)1162 1163Window resizing with 'winfixheight': With a vertical split the height changes1164anyway. (Tommy allen, 2017 Feb 21, #1502)1165 1166Invalid behavior with NULL list. (Nikolai Pavlov, #768)1167E.g. deepcopy(test_null_list())1168 1169Patch to make it possible to extend a list with itself.1170(Nikolai Pavlov, 2016 Sep 23)1171 1172Patch to add Zstandard compressed file support. (Nick Terrell, 2016 Oct 24)1173 1174On Windows buffer completion sees backslash as escape char instead of path1175separator. (Toffanim, 2016 Nov 24, #1274)1176 1177Should :vmap in matchit.vim be :xmap? (Tony Mechelynck)1178 1179Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807)1180 1181Support sort(l, 'F'), convert strings to float. (#7857)1182 1183sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep11844#1038)1185 1186sort() does not use 'smartcase' for the skip pattern, even though 'ignorecase'1187is used. (Filipe Brandenburger, #7322)1188 1189+channel:1190- Add a in_cb, invoked when the write buffer has become empty. (Matteo Landi)1191- Add ch_readlines(): for a channel in NL mode, reads as many lines as are1192 available. Should be more efficient than looping over ch_read() with1193 ch_status() to check for more.1194- If buffer contents is changed in a callback, set w_redr_status so that it1195 gets redrawn in redraw_after_callback(). #61201196- Add a separate timeout for opening a socket. Currently it's fixed at 501197 msec, which is too small for a remote connection. (tverniquet, #2130)1198- Writing raw mode to a buffer should still handle NL characters as line1199 breaks. (Dmitry Zotikov, 2017 Aug 16)1200- When out_cb executes :sleep, the close_cb may be invoked. (Daniel Hahler,