*todo.txt* For Vim version 7.4. Last change: 2014 Feb 11 VIM REFERENCE MANUAL by Bram Moolenaar TODO list for Vim *todo* This is a veeeery long list of known bugs, current work and desired improvements. To make it a little bit accessible, the items are grouped by subject. In the first column of the line a classification is used to be able to look for "the next thing to do": Priority classification: 9 next point release 8 next release 7 as soon as possible 6 soon 5 should be included 4 nice to have 3 consider including 2 maybe not 1 probably not - unclassified *votes-for-changes* See |develop.txt| for development plans. You can vote for which items should be worked on, but only if you sponsor Vim development. See |sponsor|. Issues can also be entered online: http://code.google.com/p/vim/issues/list Updates will be forwarded to the vim_dev maillist. Issues entered there will not be repeated below, unless there is extra information. *known-bugs* -------------------- Known bugs and current work ----------------------- When 'paste' is changed with 'pastetoggle', the ruler doesn't reflect this right away. (Samuel Ferencik, 2010 Dec 7) Patch to fix that status line isn't redrawn when 'pastetoggle' is set. (Nobuhiro Takasaki, 2014 Feb 11) Regexp problems: - NFA regexp doesn't count tab matches correctly. (Urtica Dioica / gaultheria Shallon, 2013 Nov 18) - After patch 7.4.100 there is still a difference between NFA and old engine. 25 a's with pattern \v^(aa+)\1+$ (Urtica Dioica, 2013 Nov 21) Also: 9 a's with pattern \v^(a{-2,})\1+$ (Nov 23) - NFA engine combining character mismatch. (glts, 2013 Aug 27) Remark from Dominique, Aug 27 - Issue 164: freeze on regexp search. - NFA problem with non-greedy match and branches. (Ingo Karkat, 2013 Nov 29) - Ignorecase not handled properly for multi-byte characters. (Axel Bender, 2013 Dec 11) - Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin Szamotulski Remark from Brett 2014 Jan 6 and 7. - Bug with back references. (Lech Lorens, 2014 Feb 3) - Bug when using \>. (Ramel, 2014 Feb 2) Problem that a previous silent ":throw" causes a following try/catch not to work. (ZyX, 2013 Sep 28) ":cd C:\Windows\System32\drivers\etc*" does not work, even though the directory exists. (Sergio Gallelli, 2013 Dec 29) Patch 7.4.085 breaks Visual insert in some situations. (Issue 193) Patch by Christian Brabandt, 2014 Jan 16. Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15) Update for Clojure ftplugin. (Sung Pae). Await discussion about formatting in ftplugins. Python: ":py raw_input('prompt')" doesn't work. (Manu Hack) Patch to make "J" set '[ and '] marks. (Christian Brabandt, 2013 Dec 11) Any compatibility problems? Patch to add :S modifier for excaping the current file name. (ZyX, 2013 Nov 30) Update Dec 5. Issu 197: ]P doesn't paste over Visual selection. With patch from Christian Brabandt, Feb 6. Problem with 'spellsuggest' file, only works for some words. (Cesar Romani, 2013 Aug 20) Depends on file name? (Aug 24) Additional remark by glts: the suggested words are marked bad? 8 non-ASCII font names don't work. Need to convert from 'encoding' and use the wide functions. Patch by Ken Takata, 2013 Dec 22. Update 2014 Jan 6. Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21) Patch for mksession. (Nobuhiro Takasaki, 2014 Jan 31) Also fixes another problem (following email) Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19) Crash with ":%s/\n//g" on long file. (Aidan Marlin, 2014 Jan 15) Christian Brabandt: patch to run this into a join. (2014 Jan 18) Suggestion to not save replaced line for undo: Yukihiro Nakadaira, 2014 Jan 25. Add digraph for Rouble: =P. What's the Unicode? Issue 174: Detect Mason files. Phpcomplete.vim update. (Complex, 2014 Jan 15) PHP syntax is extremely slow. (Anhad Jai Singh, 2014 Jan 19) Can we make ":unlet $VAR" use unsetenv() to delete the env var? What for systems that don't have unsetenv()? spec ftplugin: patch from Igor Gnatenko, 2014 Jan 26. Include if maintainers don't respond. Patch to make has() check for Vim version and patch at the same time. (Marc Weber, 2013 Jun 7) Regression on pach 7.4.034. (Ingo Karkat, 2013 Nov 20) Patch to include smack support (Linux security library). (Jose Bollo, 2014 Jan 14) Update Jan 15. Tag list, as used for :tjump, does not unescape regexp. (Gary Johnson, 2014 Jan 6) With patch in another message. VMS: Select() doesn't work properly, typing ESC may hang Vim. Use sys$qiow instead. (Samuel Ferencik, 2013 Sep 28) Series of patches for NL vs NUL handling. (ZyX, 2013 Nov 3, Nov 9) Patch to add flag to shortmess to avoid giving completion messages. (Shougo Matsu, 2014 Jan 6, update Jan 11) Patch to add v:completed_item. (Shougo Matsu, 2013 Nov 29). Patch to make test 100 work on MS-Windows. (Taro Muraoka, 2013 Dec 12) Patch to define macros for hardcoded values. (Elias Diem, 2013 Dec 14) Perl: support for Activestate perl 5.18: Issue 170. Several syntax file match "^\s*" which may get underlined if that's in the highlight group. Add a "\zs" after it? Patch to fix temp directories for Windows, so that it works without tweaking. Issue 28. Go through more coverity reports. Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24) Updated spec ftplugin. (Matěj Cepl, 2013 Oct 16) Patch to right-align signs. (James Kolb (email james), 2013 Sep 23) Patch to handle integer overflow. (Aaron Burrow, 2013 Dec 12) With "$" in 'cpoptions' the popup menu isn't fully drawn. (Matti Niemenmaa, 2013 Sep 5) Patch to add item in 'listchars' to repeat first character. (Nathaniel Braun, pragm, 2013 Oct 13) Undo message is not always properly displayed. Patch by Ken Takata, 2013 oct 3. Doesn't work properly according to Yukihiro Nakadaira. /[b-a] gives error E16, should probably be E769. 7 Windows XP: When using "ClearType" for text smoothing, a column of yellow pixels remains when typing spaces in front of a "D" ('guifont' set to "lucida_console:h8"). Patch by Thomas Tuegel, also for GTK, 2013 Nov 24 :help gives example for z?, but it does not work. m? and t? do work. Python: Extended funcrefs: use func_T* structure in place of char_u* function names. (ZyX, 2013 Jul 15, update Sep 22, 24, 28; Update 2013 Dec 15, 2014 Jan 6) Also fixes Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5) Patch to add funcref to Lua. (Luis Carvalho, 2013 Sep 4) With tests: Sep 5. Patch to fix that on suckless Terminal mousewheel up does not work. (Ralph Eastwood, 2013 Nov 25) Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10) Checking runtime scripts: Thilo Six, 2012 Jun 6. When evaluating expression in backticks, autoload doesn't work. (Andy Wokula, 2013 Dec 14) Using ifoobar can slow down Vim. Patch by Christian Brabandt, 2013 Dec 13. Fold can't be opened after ":move". (Ein Brown) Patch from Christian Brabandt doesn't fix it completely. Patch from Christian Brabandt to preserve upper case marks when wiping out a buffer. (2013 Dec 9) Patch for drag&drop reordering of GUI tab pages reordering. (Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe) ":sign-jump" uses first window in buffer instead of current window. Patch by James McCoy, 2013 Nov 22. GTK: problem with 'L' in 'guioptions' changing the window width. (Aaron Cornelius, 2012 Feb 6) Patch to add option that tells whether small deletes go into the numbered registers. (Aryeh Leib Taurog, 2013 Nov 18) Win32: use different args for SearchPath()? (Yasuhiro Matsumoto, 2009 Jan 30) Also fixes wrong result from executable(). Update from Ken Takata, 2014 Jan 10. Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3. The BufUnload event is triggered when re-using the empty buffer. (Pokey Rule, 2013 Jul 22) Patch by Marcin Szamotulski, 2013 Jul 22. The CompleteDone autocommand needs some info passed to it: - The word that was selected (empty if abandoned complete) - Type of completion: tag, omnifunc, user func. Patch to allow more types in remote_expr(). (Lech Lorens, 2014 Jan 5) Doesn't work for string in list. Other way to pass all types of variables reliably? Using ":call foo#d.f()" doesn't autoload the "foo.vim" file. That is, calling a dictionary function on an autoloaded dict. Works OK for echo, just not for ":call" and ":call call()". (Ted, 2011 Mar 17) Patch by Christian Brabandt, 2013 Mar 23. Not 100% sure this is the right solution. Patch to support expression argument to sort() instead of a function name. Yasuhiro Matsumoto, 2013 May 31. Or should we add a more general mechanism, like lambda functions? Problem caused by patch 7.3.638: window->open does not update window correctly. Issue 91. Patch to add {lhs} to :mapclear: clear all maps starting with {lhs}. (Christian Brabandt, 2013 Dec 9) The garbage collector may use too much stack. Make set_ref_in_item() iterative instead of recursive. Test program by Marc Weber (2013 Dec 10) Exception caused by argument of return is not caught by try/catch. (David Barnett, 2013 Nov 19) 8 'backupdir' and 'directory' should use $TMPDIR, $TMP and/or $TEMP when defined. Issue 28. Patch to fix that 'cedit' is recognized after :normal. (Christian Brabandt, 2013 Mar 19, later message) Patch to view coverage of the tests. (Nazri Ramliy, 2013 Feb 15) Patch to invert characters differently in GTK. (Yukihiro Nakadaira, 2013 May 5) Patch to add "Q" and "A" responses to interactive :substitute. They are carried over when using :global. (Christian Brabandt, 2013 Jun 19) Bug with 'cursorline' in diff mode. Line being scrolled into view gets highlighted as the cursor line. (Alessandro Ivaldi, 2013 Jun 4) Two highlighting bugs. (ZyX, 2013 Aug 18) Patch to add the bufferlist() function. (Yegappan Lakshmanan, 2013 May 5) May 17: with winlist() and tabpagelist(). May 19: with local variables. May 28: with options Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep 28) With tests: Oct 9. Patch from Christian Brabandt to make the "buffer" argument for ":sign place" optional. (2013 Jul 12) Dialog is too big on Linux too. (David Fishburn, 2013 Sep 2) Patch to allow setting w:quickfix_title via setqflist() and setloclist() functions. (Christian Brabandt, 2013 May 8, update May 21) Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14) Second one. Update May 22. Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec) MS-Windows: Patch to make tests copy files to avoid changing the fileformat of the files under version control. (Taro Muraoka, 2013 Jul 5) Issue 54: document behavior of -complete, also expands arg. - Add regex for 'paragraphs' and 'sections': 'parare' and 'sectre'. Combine the two into a regex for searching. (Ned Konz) Patch by Christian Brabandt, 2013 Apr 20, unfinished. Bug: findfile("any", "file:///tmp;") does not work. v:register is not directly reset to " after a delete command that specifies a register. It is reset after the next command. (Steve Vermeulen, 2013 Mar 16) 'ff' is wrong for one-line file without EOL. (Issue 77) Patch to set antialiasing style on Windows. (Ondrej Balaz, 2013 Mar 14) Needs a different check for CLEARTYPE_QUALITY. In the ATTENTION message about an existing swap file, mention the name of the process that is running. It might actually be some other program, e.g. after a reboot. MS-Windows: Crash opening very long file name starting with "\\". (Christian Brock, 2012 Jun 29) Patch to have text objects defined by arbitrary single characters. (Daniel Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31) Ben Fritz: problem with 'selection' set to "exclusive". Patch to select the next or previous text object if there isn't one under the cursor. (Daniel Thau, 2013 Nov 20) patch to add "combine" flag to syntax commands. (so8res, 2012 Dec 6) Bug caused by patch 7.3.1288? Issue 183. I can't reproduce it. Syntax update problem in one buffer opened in two windows, bottom window is not correctly updated. (Paul Harris, 2012 Feb 27) Patch to add assignments in cscope. (Uli Meis, Estabrooks, 2012 Sep 1) Alternate patch by Gary Johnson, Sep 4. Patch to add getsid(). (Tyru, 2011 Oct 2) Do we want this? Update Oct 4. Or use expand('')? Patch to make confirm() display colors. (Christian Brabandt, 2012 Nov 9) Patch to add functions for signs. (Christian Brabandt, 2013 Jan 27) Do we need some way (option) to show the sign column even when there are no signs? Patch by Christian Brabandt, 2013 Aug 22. Patch to remove flicker from popup menu. (Yasuhiro Matsumoto, 2013 Aug 15) Patch to use directX to draw text on Windows. Adds the 'renderoptions' option. (Taro Muraoka, 2013 Jan 25, update 2013 Apr 3, May 14) Fixes this problem: 8 Win32: Multi-byte characters are not displayed, even though the same font in Notepad can display them. (Srinath Avadhanula) Try with the UTF-8-demo.txt page with Andale Mono. Patch to add 'completeselect' option. Specifies how to select a candidate in insert completion. (Shougo, 2013 May 29) Update to add to existing 'completeopt'. 2013 May 30 Problem with refresh:always in completion. (Tyler Wade, 2013 Mar 17) b:undo_ftplugin cannot call a script-local function. (Boris Danilov, 2013 Jan 7) Win32: The Python interface only works with one version of Python, selected at compile time. Can this be made to work with version 2.1 and 2.2 dynamically? Python: Be able to define a Python function that can be called directly from Vim script. Requires converting the arguments and return value, like with vim.bindeval(). Patch for :tabcloseleft, after closing a tab go to left tab. (William Bowers, 2012 Aug 4) Patch to improve equivalence classes in regexp patterns. (Christian Brabandt, 2013 Jan 16, update Jan 17) Patch with suggestions for starting.txt. (Tony Mechelynck, 2012 Oct 24) But use Gnome instead of GTK? Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki Saito, 2013 Apr 24) Should be possible to enable/disable matchparen per window or buffer. Add a check for b:no_match_paren in Highlight_matching_Pair() (Marcin Szamotulski, 2012 Nov 8) Crash in autocmd that unloads buffers in a BufUnload event. (Andrew Pimlott, 2012 Aug 11) Disallow :new when BufUnload is being handled? Issue 72: 'autochdir' causes problems for :vimgrep. Session file creation: 'autochdir' causes trouble. Keep it off until after loading all files. Win32: When 'autochdir' is on and 'encoding' is changed, files on the command line are opened again, but from the wrong directory. Apply 'autochdir' only after starting up? Patch to add ":ldo" and ":cdo", execute commands over quickfix list and location list. (Yegappan Lakshmanan, 2013 Jun 2) 8 "stl" and "stlnc" in 'fillchars' don't work for multi-byte characters. Patch by Christian Wellenbrock, 2013 Jul 5. MS-Windows resizing problems: - Windows window on screen positioning: Patch by Yukihiro Nakadaira, 2012 Jun 20. Uses getWindowRect() instead of GetWindowPlacement() - Win32: When the taskbar is at the top of the screen creating the tabbar causes the window to move unnecessarily. (William E. Skeith III, 2012 Jan 12) Patch: 2012 Jan 13 Needs more work (2012 Feb 2) 'iminsert' global value set when using ":setlocal iminsert"? (Wu, 2012 Jun 23) Patch to append regexp to tag commands to make it possible to select one out of many matches. (Cody Cutler, 2013 Mar 28) Patch to add tagfunc(). Cleaned up by Christian Brabandt, 2013 Jun 22. Help for 'b:undo_indent'. (Thilo Six, 2012 May 28) Also question if examples are correct. It should be possible to make globpath() return a list instead of a string, like with glob(). (Greg Novack, 2012 Nov 2) Patch by Adnan Zafar, 2013 Jul 15. The input map for CTRL-O in mswin.vim causes problems after CTRL-X CTRL-O. Suggestion for another map. (Philip Mat, 2012 Jun 18) But use "gi" instead of "a". Or use CTRL-\ CTRL-O. Patch to support user name completion on MS-Windows. (Yasuhiro Matsumoto, 2012 Aug 16) When there are no command line arguments ":next" and ":argu" give E163, which is confusing. Should say "the argument list is empty". URXVT: - will get stuck if byte sequence does not contain the expected semicolon. - Use urxvt mouse support also in xterm. Explanations: http://www.midnight-commander.org/ticket/2662 Patch to add tests for if_xcmdsrv.c., Jul 8, need some more work. (Brian Burns) New tests Jul 13. Update Jul 17. Discussion Jul 18. When running Vim in silent ex mode, an existing swapfile causes Vim to wait for a user action without a prompt. (Maarten Billemont, 2012 Feb 3) Do give the prompt? Quit with an error? Patch to list user digraphs. (Christian Brabandt, 2012 Apr 14) Patch to add digraph() function. (Christian Brabandt, 2013 Aug 22, update Aug 24) Patch for input method status. (Hirohito Higashi, 2012 Apr 18) Update Vim app icon (for Gnome). (Jakub Steiner, 2013 Dec 6) Patch to use .png icons for the toolbar on MS-Windows. (Martin Gieseking, 2013 Apr 18) Patch for has('unnamedplus') docs. (Tony Mechelynck, 2011 Sep 27) And one for gui_x11.txt. - Patch for 'breakindent' option: repeat indent for wrapped line. (Vaclav Smilauer, 2004 Sep 13, fix Oct 31, update 2007 May 30) Version for latest MacVim: Tobia Conforto, 2009 Nov 23 More recent version: https://retracile.net/wiki/VimBreakIndent Posted to vim-dev by Taylor Hedberg, 2011 Nov 25 Update by Taylor Hedberg, 2013 May 30. Updated for Vim 7.4 by Ken Takata, 2013 Oct 5. ":cd" doesn't work when current directory path contains "**". finddir() has the same problem. (Yukihiro Nakadaira, 2012 Jan 10) Requires a rewrite of the file_file_in_path code. Should use has("browsefilter") in ftplugins. Requires patch 7.3.593. Update for vim2html.pl. (Tyru, 2013 Feb 22) Patch to sort functions starting with '<' after others. Omit dict functions, they can't be called. (Yasuhiro Matsumoto, 2011 Oct 11) Patch to pass list to or(), and() and xor(). (Yasuhiro Matsumoto, 2012 Feb 8) Patch to improve "it" and "at" text object matching. (Christian Brabandt, 2011 Nov 20) Patch to improve GUI find/replace dialog. (Christian Brabandt, 2012 May 26) Update Jun 2. `] moves to character after insert, instead of the last inserted character. (Yukihiro Nakadaira, 2011 Dec 9) Plugin for Modeleasy. (Massimiliano Tripoli, 2011 Nov 29) BufWinLeave triggers too late when quitting last window in a tab page. (Lech Lorens, 2012 Feb 21) Patch for 'transparency' option. (Sergiu Dotenco, 2011 Sep 17) Only for MS-Windows. No documentation. Do we want this? Patch to support cursor shape in Cygwin console. (Ben bgold, 2011 Dec 27) Patch to support UTF-8 for Hangul. (Shawn Y.H. Kim, 2011 May 1) Needs more work. Pinged 2012 Jan 4. Issue 64: when 'incsearch' is on can't paste LF on command line. On MS-Windows a temp dir with a & init causes system() to fail. (Ben Fritz, 2012 Jun 19) 'cursorline' is displayed too short when there are concealed characters and 'list' is set. (Dennis Preiser) Patch 7.3.116 was the wrong solution. Christian Brabandt has another incomplete patch. (2011 Jul 13) With concealed text mouse click doesn't put the cursor in the right position. (Herb Sitz) Fix by Christian Brabandt, 2011 Jun 16. Doesn't work properly, need to make the change in where RET_WIN_BUF_CHARTABSIZE() is called. Syntax region with 'concealends' and a 'cchar' value, 'conceallevel' set to 2, only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug 21, Ben Fritz, 2010 Sep 14) 'cursorline' works on a text line only. Add 'cursorscreenline' for highlighting the screen line. (Christian Brabandt, 2012 Mar 31) Win32: Patch to use task dialogs when available. (Sergiu Dotenco, 2011 Sep 17) New feature, requires testing. Made some remarks. Win32: Patch for alpha-blended icons and toolbar height. (Sergiu Dotenco, 2011 Sep 17) Asked for feedback from others. Win32: Cannot cd into a directory that starts with a space. (Andy Wokula, 2012 Jan 19) Need to escape $HOME on Windows? (ZyX, 2011 Jul 21, discussion 2013 Jul 4) Can't simply use a backslash, \$HOME has a different meaning already. Would be possible to use $$HOME where $HOME is to be used. "2" in 'formatoptions' not working in comments. (Christian Corneliussen, 2011 Oct 26) Bug in repeating Visual "u". (Lawrence Kesteloot, 2010 Dec 20) With "unamedplus" in 'clipboard' pasting in Visual mode causes error for empty register. (Michael Seiwald, 2011 Jun 28) I can't reproduce it. Windows keys not set properly on Windows 7? (cncyber, 2010 Aug 26) When using a Vim server, a # in the path causes an error message. (Jeff Lanzarotta, 2011 Feb 17) Setting $HOME on MS-Windows is not very well documented. Suggestion by Ben Fritz (2011 Oct 27). Bug: Windows 7 64 bit system freezes when 'clipboard' set to "unnamed" and doing ":g/test/d". Putting every delete on the clipboard? (Robert Chan, 2011 Jun 17) When there is a ">" in a line that "gq" wraps to the start of the next line, then the following line will pick it up as a leader. Should get the leader from the first line, not a wrapped line. (Matt Ackeret, 2012 Feb 27) Using ":break" or something else that stops executing commands inside a ":finally" does not rethrow a previously uncaught exception. (ZyX, 2010 Oct 15) Vim using lots of memory when joining lines. (John Little, 2010 Dec 3) BT regexp engine: After trying a \@> match and failing, submatches are not cleared. See test64. Changes to manpage plugin. (Elias Toivanen, 2011 Jul 25) Patch to make "z=" work when 'spell' is off. Does this have nasty side effects? (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12) Would also need to do this for spellbadword() and spellsuggest(). Patch for variable tabstops. On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a 64 bits value. Change all number options to use nropt_T and define it to the right type. string() can't parse back "inf" and "nan". Fix documentation or fix code? (ZyX, 2010 Aug 23) Make 'formatprg' global-local. (Sung Pae) When doing "redir => s:foo" in a script and then "redir END" somewhere else (e.g. in a function) it can't find s:foo. When a script contains "redir => s:foo" but doesn't end redirection, a following "redir" command gives an error for not being able to access s:foo. (ZyX, 2011 Mar 27) When setqflist() uses a filename that triggers a BufReadCmd autocommand Vim doesn't jump to the correct line with :cfirst. (ZyX, 2011 Sep 18) Behavior of i" and a" text objects isn't logical. (Ben Fritz, 2013 Nov 19) 7 Make "ga" show the digraph for a character, if it exists. Patch from Christian Brabandt, 2011 Aug 19. maparg() does not show the