summaryrefslogtreecommitdiff
path: root/runtime/doc/todo.txt
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc/todo.txt')
-rw-r--r--runtime/doc/todo.txt632
1 files changed, 585 insertions, 47 deletions
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 13016f6c6..a1c85f2fc 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 7.0. Last change: 2006 May 07
+*todo.txt* For Vim version 7.1a. Last change: 2007 May 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,9 +30,476 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
+Patch to make virtcol([123, '$']) do the right thing. (Michael Schaap)
+
+Insert mode completion: CTRL-N and CTRL-P work differently and they both don't
+work as expected. (Bernhard Walle, 2007 Feb 27)
+
+glob() doesn't work correctly with single quotes and 'shell' set to /bin/sh.
+(Adri Verhoef, Charles Campbell 2007 Mar 26)
+
+Splitting quickfix window messes up window layout. (Marius Gedminas, 2007 Apr
+25)
+
+Replace ccomplete.vim by cppcomplete.vim from www.vim.org? script 1520
+(Martin Stubenschrott)
+ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
+
+Making the German sharp s uppercase doesn't work properly: one character less
+is uppercased in "gUe".
+Also: latin2 has the same character but it isn't uppercased there.
+
+Mac: After a ":vsplit" the left scrollbar doesn't appear until 'columns' is
+changed or the window is resized.
+
+Mac: Patch for Mac GUI tabline. (Nicolas Weber, 2006 Jul 18, Update 2007 Feb)
+ New update v6 ~/tmp/guitab.v6.diff (Kyle Wheeler)
+
+When 'virtualedit' is set a "p" of a block just past the end of the line
+inserts before the cursor. (Engelke)
+
+Using Aap to build Vim: add remarks about how to set personal preferences.
+Example on http://www.calmar.ws/tmp/aap.html
+
+GTK: 'bsdir' doesn't work. Sometimes get a "gtk critical error".
+Moved some code to append file name to further down in gui_gtk.c
+gui_mch_browse(), but "last" value of 'bsdir' still doesn't work.
+
+C syntax: "#define x {" The macro should terminate at the end of the line,
+not continue in the next line. (Kelvin Lee, 2006 May 24)
+
+C syntax: {} inside () causes following {} to be highlighted as error.
+(Michalis Giannakidis, 2006 Jun 1)
+
+Gnome improvements: Edward Catmur, 2007 Jan 7
+ Also use Save/Discard for other GUIs
+
+New PHP syntax file, use it? (Peter Hodge)
+
+'foldcolumn' in modeline applied to wrong window when using a session. (Teemu
+Likonen, March 19)
+
+Syntax highlighting wrong for transparent region. (Doug Kearns, 2007 Feb 26)
+
+More AmigaOS4 patches. (Peter Bengtsson, Nov 9)
+
+Add v:searchforward variable. Patch by Yakov Lerner, 2006 Nov 18.
+
+Redraw problem in loop. (Yakov Lerner, 2006 Sep 7)
+
+Add option settings to help ftplugin. (David Eggum, 2006 Dec 18)
+
+Use new dutch wordlist for spelling? http://www.opentaal.org/
+See remarks from Adri, 2007 Feb 9.
+
+When opening quickfix window, disable spell checking?
+
+Win32: When 'encoding' is "latin1" 'ignorecase' doesn't work for characters
+with umlaut. (Joachim Hofmann) toupper_tab[] and tolower_tab[] are not filled
+properly?
+
+Completion: Scanning for tags doesn't check for typed key now and then?
+Hangs for about 5 seconds. Appears to be caused by finding include files with
+"foo/**" in 'path'. (Kalisiak, 2006 July 15)
+
+Completion: When 'completeopt' has "longest" and there is one match the
+message is "back at original" and typing a char doesn't leave completion mode.
+(Igor Prischepoff, 2006 Oct 5)
+
+Completion: When using CTRL-X O and there is only "struct." before the cursor,
+typing one char to reduce the matches, then BS completion stops. Should keep
+completion if still no less than what we started with.
+
+Completion: don't stop completion when typing a space when completing full
+lines? Also when completing file names? Only stop completion when there are
+no matches?
+After using BS completion only stops when typing a space. Many people want to
+stop at non-word characters, e.g., '('. Add an option for this? Or check
+vim_iswordc() before calling ins_compl_addleader()?
+
+searchpos() doesn't use match under cursor at start of line. (Viktor
+Kojouharov, 2006 Nov 16)
+
+When FEAT_BYTEOFF is defined but FEAT_NETBEANS_INTG is not compiling fails.
+Add FEAT_BYTEOFF to the check at line 1180 in feature.h
+
+Color for cUserLabel should differ from case label, so that a mistake in a
+switch list is noticed:
+ switch (i)
+ {
+ case 1:
+ foobar:
+ }
+
+":s" command removes combining characters. (Ron Aaron, 2006 May 17, 2006 Dec 7)
+
+Look at http://www.gtk-server.org/ . It has a Vim script implementation.
+
+Changes for Win32 makefile. (Mike Williams, 2007 Jan 22, Alexei Alexandrov,
+2007 Feb 8)
+
+Patch for Win32 clipboard under Cygwin. (Frodak Baksik, Feb 15)
+ Sutcliffe says it works well.
+
+Win32: Patch for convert_filterW(). (Taro Muraoka, 2007 Mar 2)
+
+Win32: XPM support only works with path without spaces. Patch by Mathias
+Michaelis, 2006 Jun 9. Another patch for more path names, 2006 May 31.
+New version: http://members.tcnet.ch/michaelis/vim/patches.zip (also for other
+patches by Mathias, see mail Feb 22)
+
+Win32: compiling with normal features and OLE fails. Patch by Mathias
+Michaelis, 2006 Jun 4.
+
+Win32: echo doesn't work for gvim.exe.mnf. Use inline file. Patch by Mathias
+Michaelis. http://groups.yahoo.com/group/vimdev/message/43765
+Patch that includes this and does more by George Reilly, 2007 Feb 12
+
+Win16: include patches to make Win16 version work. (Vince Negri, 2006 May 22)
+
+Win32: after "[I" showing matches, scroll wheel messes up screen. (Tsakiridis,
+2007 Feb 18)
+
+Win32: using CTRL-S in Insert mode doesn't remove the "+" from the tab pages
+label. (Tsakiridis, 2007 Feb 18)
+
+Win32: remote editing doesn't work when the current directory name contains
+"[]". (Ivan Tishchenko, 2007 March 1)
+
+Win64: diff.exe crashes on Win64. (Julianne Bailey, 2006 Dec 12)
+Build another diff.exe somehow?
+
+Win64: Seek error in swap file for a very big file (3 Gbyte). Check storing
+pointer in long and seek offset in 64 bit var.
+
+When doing "gvim --remote-tab foo" while gvim is minimized the tab pages line
+only shows the current label, not the others.
+
+Problem finding swap file for recovery. (Gautam Iyer, 2006 May 16)
+
+When setting 'keymap' twice the b:keymap_name variable isn't set. (Milan
+Berta, 2007 Mar 9) Has something to do with 'iminsert'.
+
+Problem with CursorHoldI? (Max Dyckhoff, 2006 Nov 10)
+
+UTF-8: mapping a multi-byte key where the second byte is 0x80 doesn't appear
+to work. (Tony Mechelynck, 2007 March 2)
+
+The str2special() function doesn't handle multi-byte characters properly.
+Patch from Vladimir Vichniakov, 2007 Apr 24.
+find_special_key() also has this problem.
+
+In debug mode, using CTRL-R = to evaluate a function causes stepping through
+the function. (Hari Krishna Dara, 2006 Jun 28)
+
+":let &shiftwidth = 'asdf'" doesn't produce an error message.
+
+C++ indenting wrong with "=". (James Kanze, 2007 Jan 26)
+
+"zug" reports wrong file. problem with Namebuff? (Lawrence Kesteloot, 2006 Sep
+10)
+
+":lockvar" should use copyID to avoid endless loop.
+
+Gvim: dialog for closing Vim should check if Vim is busy writing a file. Then
+use a different dialog: "busy saving, really quit? yes / no".
+
+Win32: editing remote file d:\a[1]\aa.txt doesn't work. (Liu Yubao, 2006 May
+29)
+
+"zw" doesn't appear to work. (Luis A Florit, 2006 Jun 23, 24)
+
+"dw" in a line with one character deletes the line. Vi and nvi don't do this.
+Is it intentional or not? (Kjell Arne Rekaa)
+
+Check other interfaces for changing curbuf in a wrong way. Patch like for
+if_ruby.c.
+
+Spell checking in popup menu: If the only problem is the case of the first
+character, don't offer "ignore" and "add to word list".
+
+":helpgrep" should use the directory from 'helpfile'.
+
+The need_fileinfo flag is messy. Instead make the message right away and put
+it in keep_msg?
+
+More-prompt is skipped when doing this; (Randall W. Morris, Jun 17)
+ :au
+ <Space>
+ b
+ <Space>
+
+Editing a file remotely that matches 'wildignore' results in a "no match"
+error. Should only happen when there are wildards, not when giving the file
+name literally, and esp. if there is only one name.
+
+When 'expandtab' is set then a Tab copied for 'copyindent' is expanded to
+spaces, even when 'preserveindent' is set. (Alexei Alexandrov, Mar 7)
+
Test 61 fails sometimes. This is a timing problem: "sleep 2" sometimes takes
longer than 2 seconds.
+VMS: while editing a file found in complex, Vim will save file into the first
+directory of the path and not to the original location of the file.
+(Zoltan Arpadffy)
+
+input() completion should not insert a backslash to escape a space in a file
+name?
+
+getpos()/setpos() don't include curswant. getpos() could return a fifth
+element. setpos() could accept an optional fifth element.
+
+Ruby completion is insecure. Can this be fixed?
+
+":confirm w" does give a prompt when 'readonly' is set, but not when the file
+permissions are read-only. Both can be overruled by ":w!" thus it would be
+logical to get a prompt for both. (Michael Schaap)
+
+When 'backupskip' is set from $TEMP special characters need to be escaped.
+(patch by Grembowietz, 2007 Feb 26, not quite right)
+Another problem is that file_pat_to_reg_pat() doesn't recognize "\\", so "\\("
+will be seen as a path separator plus "\(".
+
+":python os.chdir('/tmp')" makes short buffer names invalid. (Xavier de Gaye)
+Check directory and call shorten_fnames()?
+
+aucmd_prepbuf() should also use a window in another tab page.
+
+Substituting an area with a line break with almost the same area does change
+the Visual area. Can this be fixed? (James Vega, 2006 Sept 15)
+
+Windows installer could add a "open in new tab of existing Vim" menu entry.
+
+:s/e/E/l not only lists but also shows line number. Is that right?
+(Yakov Lerner, 2006 Jul 27)
+
+GUI: When combining fg en bg make sure they are not equal.
+
+Use different pt_br dictionary for spell checking. (Jackson A. Aquino, 2006
+Jun 5)
+
+Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
+
+When 'bomb' is set or reset the file should be considered modified. (Tony
+Mechelynck) Handle like 'endofline'.
+
+Add an option to specify the character to use when a double-width character is
+moved to the next line. Default '>', set to a space to blank it out. Check
+that char is single width when it's set (compare with 'listchars').
+
+Update main.aap for installing on the Mac.
+
+The generated vim.bat can avoid the loop for NT. (Carl Zmola, 2006 Sep 3)
+
+Session file creation: 'autochdir' causes trouble. Keep it off until after
+loading all files.
+
+C completion: doesn't work after aa[0]->, where aa is an array of structures.
+(W. de Hoog, 2006 Aug 12)
+
+The spellfile plugin checks for a writable "spell" directory. A user may have
+a writable runtime directory without a "spell" directory, it could be created
+then.
+
+These two abbreviations don't give the same result:
+ let asdfasdf = "xyz\<Left>"
+ cabbr XXX <C-R>=asdfasdf<CR>
+ cabbr YYY xyz<Left>
+
+Michael Dietrich: maximized gvim sometimes displays output of external command
+partly. (2006 Dec 7)
+
+In FileChangedShell command it's no longer allowed to switch to another
+buffer. But the changed buffer may differ from the current buffer, how to
+reload it then?
+
+New syntax files for fstab and resolv from Radu Dineiu, David Necas did
+previous version.
+
+For Aap: include a config.arg.example file with hints how to use config.arg.
+
+Linux distributions:
+- Suggest compiling xterm with --enable-tcap-query, so that nr of colors is
+ known to Vim. 88 colors instead of 16 works better. See ":help
+ xfree-xterm".
+- Suggest including bare "vi" and "vim" with X11, syntax, etc.
+
+Completion menu: For a wrapping line, completing a long file name, only the
+start of the path is shown in the menu. Should move the menu to the right to
+show more text of the completions. Shorten the items that don't fit in the
+middle?
+
+When running inside screen it's possible to kill the X server and restart it
+(using pty's the program can keep on running). Vim dies because it looses the
+connection to the X server. Can Vim simply quit using the X server instead of
+dying? Also relevant when running in a console.
+
+Accessing file#var in a function should not need the g: prepended.
+
+When ":cn" moves to an error in the same line the message isn't shortened.
+Only skip shortening for ":cc"?
+
+Win32: The matchparen plugin doesn't update the match when scrolling with the
+mouse wheel. (Ilya Bobir, 2006 Jun 27)
+
+Write "making vim work better" for the docs (mostly pointers): *nice*
+ - sourcing $VIMRUNTIME/vimrc_example.vim
+ - setting 'mouse' to "a"
+ - getting colors in xterm
+ - compiling Vim with X11, GUI, etc.
+
+Problem with ":call" and dictionary function. Hari Krishna Dara, Charles
+Campbell 2006 Jul 06.
+
+Syntax HL error caused by "containedin". (Peter Hodge, 2006 Oct 6)
+
+GTK: When maximizing Vim the result is slightly smaller, the filler border is
+not there, and the "maximize" button is still there. Clicking it again does
+give a maximized window. (Darren Hiebert)
+Problem is that gui_mch_set_text_area_pos() is invoked to change the text area
+size, which causes the toplevel window to resize. When doing this while the
+size is already right the filler remains there.
+Detect using the maximize button (GdkWindowState bit
+GDK_WINDOW_STATE_MAXIMIZED) and set it again?
+
+Another resizing problem when setting 'columns' and 'lines' to a very large
+number. (Tony Mechelynck, 2007 Feb 6)
+
+Mutt files are not always recognized. Change pattern to include
+non-alphanumeric characters. (Gary Johnson, 2006 Jul 25)
+
+Problem with using :redir in user command completion function? (Hari Krishna
+Dara, 2006 June 21)
+
+After starting Vim, using '0 to jump somewhere in a file, ":sp" doesn't center
+the cursor line. It works OK after some other commands.
+
+Screen redrawing when continuously updating the buffer and resizing the
+terminal. (Yakov Lerner, 2006 Sept 7)
+
+Win32: Is it possible to have both postscript and Win32 printing?
+Does multi-byte printing with ":hardcopy" work? Add remark in documentation
+about this.
+
+'thesaurus' doesn't work when 'infercase' is set. (Mohsin, 2006 May 30)
+
+There should be something about spell checking in the user manual.
+
+Check: Running Vim in a console and still having connect to the X server for
+copy/paste: is stopping the X server handled gracefully? Should catch the X
+error and stop using the connection to the server.
+
+Problem with 'cdpath' on MS-Windows when a directory is equal to $HOME. (2006
+Jul 26, Gary Johnson)
+
+In the Netbeans interface add a "vimeval" function, so that the other side can
+check the result of has("patch13").
+
+":py" asks for an argument, ":py asd" then gives the error that ":py" isn't
+implemented. Should already happen for ":py".
+
+Add command modifier that skips wildcard expansion, so that you don't need to
+put backslashes before special chars, only for white space.
+
+Win32 GUI: confirm() with zero default should not have a choice selected.
+
+Win32: When the GUI tab pages line is displayed Vim jumps from the secondary
+to the primary monitor. (Afton Lewis, 2007 Mar 9) Old resizing problem?
+
+GTK GUI: When the completion popup menu is used scrolling another window by
+the scrollbar is OK, but using the scroll wheel it behaves line <Enter>.
+
+"cit" used on <foo></foo> deletes <foo>. Should not delete anything and start
+insertion, like "ci'" does on "". (Michal Bozon)
+
+Allow more than 3 ":match" items.
+
+The magic clipboard format "VimClipboard2" appears in several places. Should
+be only one.
+
+It's difficult to debug numbered functions (function in a Dictionary). Print
+the function name before resolving it to a number?
+ let d = {}
+ fun! d.foo()
+ echo "here"
+ endfun
+ call d.foo(9)
+
+Add a mark for the other end of the Visual area (VIsual pos). '< and '> are
+only set after Visual moded is ended.
+
+Small problem displaying diff filler line when opening windows with a script.
+(David Luyer, 2007 Mar 1 ~/Mail/oldmail/mool/in.15872 )
+
+When pattern for ":sort" is empty, use last search pattern. Allows trying out
+the pattern first. (Brian McKee)
+
+Is it allowed that 'backupext' is empty? Problems when backup is in same dir
+as original file? If it's OK don't compare with 'patchmode'. (Thierry Closen)
+
+Patch for supporting count before CR in quickfix window. (AOYAMA Shotaro, 2007
+Jan 1)
+
+Patch for adding ":lscscope". (Navdeep Parhar, 2007 Apr 26; update Apr 28)
+
+Patch for improving regexp speed by not freeing memory. (Alexei Alexandrov,
+2007 Feb 6)
+
+xterm should be able to pass focus changes to Vim, so that Vim can check for
+buffers that changed. Perhaps in misc.c, function selectwindow().
+Xterm 224 supports it!
+
+Omni completion takes the wrong structure for variable arguments. (Bill
+McCarthy, 2007 Feb 18)
+
+When completing from another file that uses a different encoding completion
+text has the wrong encoding. E.g., when 'encoding' is utf-8 and file is
+latin1. Example from Gombault Damien, 2007 Mar 24.
+
+Completing ":echohl" argument should include "None". (Ori Avtalion)
+
+
+Vim 7.2:
+- Search offset doesn't work for multibyte character. Patch from Yukihiro
+ Nakadaira, 2006 Jul 18.
+ Changes the offset from counting bytes to counting characters.
+- Rename the tutor files from tutor.gr.* to tutor.el.*. Greece vs Greek.
+ Make all tutor files available in utf-8.
+- Remove ! for ":cgetfile" and ":lgetfile". (patch from Yegappan Lakshmanan,
+ 2007 Mar 9)
+- Add blowfish encryption. Openssl has an implementation. Also by Paul
+ Kocher (LGPL), close to original. Mohsin also has some ideas.
+ Take four bytes and turn them into unsigned to avoid byte-order problems.
+ Need to buffer up to 7 bytes to align on 8 byte boundaries.
+- Rename doc/sql.vim doc/ft_sql.vim.
+- Change "command-line" to "[Command Line]" for the command line buffer
+ name in ex_window().
+- Move including fcntl.h to vim.h, before O_NOFOLLOW, and remove it from all
+ .c files.
+- ":{range}source": source the lines from the file.
+ You can already yank lines and use :@" to execute them.
+ Most of do_source() would not be used, need a new function.
+ It's easy when not doing breakpoints or profiling.
+
+
+Patches:
+- Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3)
+- Argument for feedkeys() to prepend to typeahead (Yakov Lerner, 2006 Oct
+ 21)
+- Load intl.dll too, not only libintl.dll. (Mike Williams, 2006 May 9, docs
+ patch May 10)
+- Extra argument to strtrans() to translate special keys to their name (Eric
+ Arnold, 2006 May 22)
+- 'threglookexp' option: only match with first word in thesaurus file.
+ (Jakson A. Aquino, 2006 Jun 14)
+- Mac: indicate whether a buffer was modified. (Nicolas Weber, 2006 Jun 30)
+- Allow negative 'nrwidth' for left aligning. (Nathan Laredo, 2006 Aug 16)
+- ml_append_string(): efficiently append to an existing line. (Brad
+ Beveridge, 2006 Aug 26) Use in some situations, e.g., when pasting a
+ character at a time?
+- gettabvar() and settabvar() functions. (Yegappan Lakshmanan, 2006 Sep 8)
+- recognize hex numbers better. (Mark Manning, 2006 Sep 13)
+
Awaiting updated patches:
9 Mac unicode patch (Da Woon Jung, Eckehard Berns):
@@ -44,6 +511,8 @@ Awaiting updated patches:
- With 'nopaste' pasting is wrong, with 'paste' Command-V doesn't work.
(Alan Schmitt)
- remove 'macatsui' option when this has been fixed.
+ - when 'macatsui' is off should we always convert to "macroman" and ignore
+ 'termencoding'?
9 HTML indenting can be slow. Caused by using searchpair(). Can search()
be used instead?
8 Win32: Add minidump generation. (George Reilly, 2006 Apr 24)
@@ -89,6 +558,8 @@ Awaiting updated patches:
(2003 May 13)
raisewin() raise gvim window (see HierAssist patch for
Tcl implementation ~/vim/HierAssist/ )
+ taglist() add argument to specify maximum number of matches.
+ useful for interactive things or completion.
7 Make globpath() also work with upwards search. (Brian Medley)
7 Add patch from Benoit Cerrina to integrate Vim and Perl functions
better. Now also works for Ruby (2001 Nov 10)
@@ -211,6 +682,8 @@ GTK+ GUI known bugs:
Win32 GUI known bugs:
- Win32: tearoff menu window should have a scrollbar when it's taller than
the screen.
+8 non-ASCII font names don't work. Need to convert from 'encoding' and use
+ the wide functions.
8 On Windows 98 the unicows library is needed to support functions with UCS2
file names. Can we load unicows.dll dynamically?
8 When the primary monitor is below or right of the secondary monitor and
@@ -252,7 +725,6 @@ Win32 GUI known bugs:
mouse position. Catch WM_MOUSEACTIVATE. (Luevelsmeyer)
8 Win32: When mouse is hidden and in the toolbar, moving it won't make it
appear. (Sami Salonen)
-8 Windows NT: writing to aux.* makes Vim hang. (Acevedo)
8 Win32 GUI: With maximized window, ":set go-=r" doesn't use the space that
comes available. (Poucet) It works OK on Win 98 but doesn't work on Win
NT 4.0. Leaves a grey area where the scrollbar was. ":set go+=r" also
@@ -569,12 +1041,16 @@ Macintosh:
8 Inputting Unicode characters does not work in the terminal. They appear
to arrive as upper and lower bytes. (David Brown, 2004 April 17)
8 Typing Unicode characters doesn't work at all in the GUI.
+8 inputdialog() doesn't resize when giving more text lines. (David Fishburn,
+ 2006 Sept 28)
9 Problems in Carbon version for OS X: (Benji Fisher)
- keyboard shortcuts in the menus get lost.
8 The Vim/About menu doesn't work.
8 ":gui" doesn't fork. Enabling the code in gui.c to fork causes a SEGV.
8 Define vim_mkdir() for Macintosh.
8 Define mch_writable() for Macintosh.
+8 Some file systems are case-sensitive, some are not. Turn
+ CASE_INSENSITIVE_FILENAME into an option, at least for completion.
9 When DiskLock is running, using a swap file causes a crash. Appears to be
a problem with writing a file that starts with a dot. (Giacalone)
9 On G3 Mac, OS version 8, control strip causes characters messed up when
@@ -587,6 +1063,10 @@ Macintosh:
"Small" problems:
+- When using e_secure in do_one_cmd() mention the command being executed,
+ otherwise it's not clear where it comes from.
+8 When disabling FEAT_CMDL_COMPL compilation fails. Would need to avoid
+ using parse_compl_arg() in eval.c and uc_scan_attr().
9 For Turkish vim_tolower() and vim_toupper() also need to use utf_
functions for characters below 0x80. (Sertacyildiz)
9 When the last edited file is a help file, using '0 in a new Vim doesn't
@@ -606,11 +1086,10 @@ Macintosh:
8 When redirecting and using ":silent" the current column for displaying and
redirection can be different. Use a separate variable to hold the column
for redirection.
-7 There is no way to change directory and go back without changing the local
- and/or global directory. Add a way to find out if the current window uses
- a local directory. Add cdcmd() that returns ":cd" or ":lcd"?
7 The messages for "vim --help" and "vim --version" don't use
'termencoding'.
+- Could the hit-enter prompt be avoided when a message only overlaps the
+ 'showcmd' area? Clear that area when the next cmd is typed.
8 When 'scrollbind' is set, a window won't scroll horizontally if the cursor
line is too short. Add a word in 'scrollopt' to allow moving the cursor
to longer line that is visible. A similar thing is done for the GUI when
@@ -629,6 +1108,7 @@ Macintosh:
8 When doing Insert mode completion a mapping cannot recursively call
edit(), because the completion information is global. Put everything in
an allocated structure?
+6 Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
8 Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
7 Output for ":scriptnames" and ":breaklist" should shorten the file names:
@@ -650,9 +1130,6 @@ Macintosh:
7 "[p" doesn't work in Visual mode. (David Brown)
7 The Cygwin and MingW makefiles define "PC", but it's not used anywhere.
Remove? (Dan Sharp)
-9 The argument <f-args> of a user command doesn't handle backslashes
- properly. "Cmd \ e" is one argument, "Cmd \\ e" still is one argument.
- "Cmd \ e" is two arguments, first one ending in space. (Kontra Gergely)
9 User commands use the context of the script they were defined in. This
causes a "s:var" argument to unexpectedly use a variable in the defining
script, not the calling script. Add an argument to ":command":
@@ -684,6 +1161,8 @@ Macintosh:
flag to to the command. Same for ":snomagic". (Johan Spetz)
8 Using ":s" in a function changes the previous replacement string. Save
"old_sub" in save_search_patterns()?
+8 Should allow multi-byte characters for the delimiter: ":s+a+b+" where "+"
+ is a multi-byte character.
8 When appending to a file and 'patchmode' isn't empty, a backup file is
always written, even when the original file already exists.
7 When using "daw" on the last word in a file and this is a single letter,
@@ -699,6 +1178,8 @@ Macintosh:
'foldlevel' is set from 'foldlevelstart'.
8 Also store the line number with the script ID and use it for ":verbose",
so that "set nocompatible" is found when it changes other option values.
+ When an option is set indirectly mention the command? E.g. when
+ ":diffsplit" sets 'foldmethod'.
8 In the fileformat dialog, "Cancel" isn't translated. Add a global
variable for this. (Eduardo Fernandez)
9 When editing a file with 'readonly' set, there is no check for an existing
@@ -831,6 +1312,8 @@ Macintosh:
8 Dragging the status line doesn't scroll but redraw.
9 Evaluating 'statusline' in build_stl_str_hl() does not properly check for
reaching the end of the available buffer.
+ Patch to dynamically allocate the buffer for % items. (Eric Arnold, 2006
+ May 14)
8 When performing incremental search, should abort searching as soon as a
character is typed.
8 When the value of $MAKE contains a path, configure can't handle this.
@@ -890,6 +1373,7 @@ Problems that will (probably) not be solved:
XtOpenDisplay() prints this directly, there is no way to avoid it.
- X windows: Setting 'guifontset' to an illegal value sometimes crashes Vim.
This is caused by a fault in a X library function, can't be solved in Vim.
+- Win32 tcl: has("tcl") hangs when the tcl84.dll is from cygwin.
- Motif: When adding a menu item "Find this &Symbol", the "s" in "this" will
be underlined, instead of in "Symbol". Motif doesn't let us specify which
character gets the highlighting.
@@ -987,6 +1471,7 @@ Didn't make it into Vim 7.0:
198 standard http://www.jcp.org/en/jsr/detail?id=198.
Eclim does it: http://eclim.sourceforge.net/ (Eric Van Dewoestine)
Plugin that uses a terminal emulator: http://vimplugin.sf.net
+ And another one: http://www.satokar.com/viplugin/index.php
- STICKY CURSOR: Add a way of scrolling that leaves the cursor where it is.
Especially when using the scrollbar. Typing a cursor-movement command
scrolls back to where the cursor is.
@@ -1003,6 +1488,8 @@ Didn't make it into Vim 7.0:
Documentation:
+8 List of Vim runtime directories. dotvim.txt from Charles Campbell, 2007
+ Feb 20.
8 The GUI help should explain the Find and Find/Replace dialogs. Add a link
to it from ":promptrepl" and ":promptfind".
8 List of options should mention whether environment variables are expanded
@@ -1084,6 +1571,10 @@ User Friendlier:
Tab pages:
9 GUI implementation for the tab pages line for other systems.
+7 GUI: Control over the appearance of the text in the labels (bold, color,
+ font, etc.)
+9 Make it possible to drag a tab page label to another position with the
+ mouse.
8 Make GUI menu in tab pages line configurable. Like the popup menu.
8 balloons for the tab page labels that are shortened to show the full path.
8 :tabmove +N move tab page N pages forward
@@ -1095,15 +1586,27 @@ Tab pages:
8 Add local options for each tab page? E.g., 'diffopt' could differ between
tab pages.
7 Add local highlighting for each tab page?
+7 Add local directory for tab pages? How would this interfere with
+ window-local directories?
Spell checking:
+- Support more regions? Caolan McNamara argues it's needed for es_XX.
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=219777
+- Unicode defines another quote character: 0x2019. Use it as an equivalent
+ of a single quote, thus use it as a word character like a quote and match
+ with words, replacing the curly quote with a single quote.
+- Could filter &eacute; things for HTML before doing spell checking.
+ Similarly for TeX.
- The Hungarian spell file uses four extra characters in the FOL/UPP/LOW
items than other spell files with the ISO-8859-2 encoding, that causes
problem when changing 'spelllang'. There is no obvious way to fix this.
- Considering Hunspell 1.1.4:
What does MAXNGRAMSUGS do?
Is COMPLEXPREFIXES necessary when we have flags for affixes?
+- There is no Finnish spell checking file. For openoffic Voikko is now
+ used, which is based on Malaga: http://home.arcor.de/bjoern-beutel/malaga/
+ (Teemu Likonen)
8 ":mkspell" still takes much too long in Hungarian dictionary from
hunspell. Only solution appears to be to postpone secondary suffixes.
8 Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG.
@@ -1190,7 +1693,11 @@ Diff mode:
Folding:
(commands still available: zI zJ zK zp zP zq zQ zV zy zY;
secondary: zB zS zT zZ, z=)
+8 Vertical folds: looks like vertically split windows, but the cursor moves
+ through the vertical separator, separator moves when scrolling.
8 Add "z/" and "z?" for searching in not folded text only.
+9 Add search pattern item to only match in closed or open fold and/or fold
+ with certain level. Allows doing ":g/pat/cmd" to work on closed folds.
8 Add different highlighting for a fold line depending on the fold level.
(Noel Henson)
7 Use "++--", "+++--" for different levels instead of "+---" "+----".
@@ -1292,6 +1799,7 @@ Multi-byte characters:
7 In "-- INSERT (lang) --" show the name of the keymap used instead of
"lang". (Ilya Dogolazky)
- Make 'langmap' accept multi-byte characters.
+ Patch from Konstantin Korikov, 2006 Oct 15.
- Make 'breakat' accept multi-byte characters. Problem: can't use a lookup
table anymore (breakat_flags[]).
Simplistic solution: when 'formatoptions' contains "m" also break a line
@@ -1317,8 +1825,8 @@ Printing:
- Win32: when 'printfont' is empty use 'guifont'.
- Unix: Use some dialog box to do the obvious settings (paper size, printer
name, portrait/landscape, etc).
-- PostScript: only works for 7-bit ASCII and EBCDIC. Should support
- different 'encoding' values somehow.
+- PostScript: Only works for text that can be converted to an 8-bit
+ character set. How to support Unicode fully?
- Allow specifying the paper size, instead of using a standard size. Same
units as for the margins.
- Support right-to-left text?
@@ -1338,6 +1846,9 @@ Syntax highlighting:
8 When editing a new file without a name and giving it a name (by writing
it) and 'filetype' is not set, detect the filetype. Avoid doing it for
":wq file".
+7 For "nextgroup" we have skipwhite, skipnl and skipempty. It would be
+ really nice to be able to skip with a pattern. Or skip with a syntax
+ group. (Nikolai Weibull, 2007 Feb 27)
8 Make conversion to HTML faster (Write it in C or pre-compile the script).
9 There is still a redraw bug somewhere. Probably because a cached state is
used in a wrong way. I can't reproduce it...
@@ -1415,6 +1926,9 @@ Syntax highlighting:
8 When using a regexp for "contains=", should delay matching with it until
redrawing happens. Set a flag when a group is added, check this flag when
highlighting starts.
+8 Some terminals can display colors like the GUI. Add some setting to use
+ GUI colors for the terminal? With something to define the escape
+ sequence.
7 It's possible for an item to be transparent, so that the colors of an item
lower on the stack is used. Also do this with highlighting, so that the
user can set transparent highlighting? E.g. a number in a C comment would
@@ -1483,24 +1997,14 @@ Syntax highlighting:
Built-in script language:
-9 Autoload: Add a Vim script in $VIMRUNTIME/tools that takes a file with a
- list of script names and a help file and produces a script that can be
- sourced to install the scripts in the user's directories.
- Use findfile(), so that only file names need to be given:
- script plugin/myscript.vim
- script autoload/mylib.vim
- script autoload/yourlib.vim
- helpfile doc/myscript.txt
- For the "helpfile" item ":helptags" is run.
7 Execute a function with standard option values. No need to save and
restore option values. Especially useful for new options. Problem: how
to avoid a performance penalty (esp. for string options)?
8 Add referring to key options with "&t_xx". Both for "echo &t_xx" and
":let &t_xx =". Useful for making portable mappings.
-- Add "{range}source": execute lines from a buffer.
- Alternative: Allow range for ":exec", pass it on to the executed command.
- (Webb)
- You can already yank lines and use :@" to execute them.
+- Add ":let var ?= value", conditional assignment. Patch by Dave Eggum,
+ 2006 Dec 11.
+- range for ":exec", pass it on to the executed command. (Webb)
7 ":include" command: just like ":source" but doesn't start a new scriptID?
Will be tricky for the list of script names.
8 Have a look at VSEL. Would it be useful to include? (Bigham)
@@ -1523,7 +2027,16 @@ Built-in script language:
file belongs to a sourced script?
7 Add argument to winwidth() to subtract the space taken by 'foldcolumn',
signs and/or 'number'.
+6 Add ++ and -- operators? They only work on variables (lvals), how to
+ implement this?
8 Add functions:
+ has(":command") Check if ":command" works. compare function
+ with "ex_ni". E.g. for ":simalt".
+ system() With a List argument. Bypasses the shell, use
+ exec() directly. (Bob Hiestand)
+ escape() Add argument to specify what to escape with.
+ modestack() Instead of just the current mode return the
+ stack of Insert / CTRL-O / :normal things.
realname() Get user name (first, last, full)
user_fullname() patch by Nikolai Weibull, Nov
3 2002
@@ -1561,7 +2074,8 @@ Built-in script language:
column and line number? col("'0") currently returns zero.
8 argc() returns 0 when using "vim -t tag". How to detect that no file was
specified in any way? To be able to jump to the last edited file.
-8 Pass the executable name to the Vim scripts in some way. As v:argv0?
+8 Pass the command line arguments to Vim scripts in some way. As v:args
+ List? Or extra parameter to argv()?
8 Add command arguments with three dashes, passed on to Vim scripts.
7 Add optional arguments to user functions:
:func myFunc(arg1, arg2, arg3 = "blah", arg4 = 17)
@@ -1571,6 +2085,7 @@ Built-in script language:
8 The "= register should be writable, if followed by the name of a variable,
option or environment variable.
8 ":let &option" should list the value of the option.
+8 ":let Func().foo = value" should work, also when "foo" doesn't exist.
7 Add synIDlist(), making the whole list of syntax items on the syntax stack
available as a List.
8 Add autocommand-event for when a variable is changed:
@@ -1606,6 +2121,9 @@ Robustness:
Performance:
7 For strings up to 3 bytes don't allocate memory, use v_list itself as a
character array. Use VAR_SSTRING (short string).
+8 Instead of loading rgb.txt every time a color wasn't recognized load it
+ once and keep it in memory. Move the code to a common place to avoid
+ repeating it in various system files.
8 Turn b_syn_ic and b_syn_containedin into b_syn_flags.
9 Loading menu.vim still takes quite a bit of time. How to make it faster?
8 in_id_list() takes much time for syntax highlighting. Cache the result?
@@ -1719,6 +2237,8 @@ Messages:
- Delete message after new command has been entered and have waited for key.
Perhaps after ten seconds?
- Make message history available in "msg" variables: msg1, msg2, .. msg9.
+8 When reading from stdin allow suppressing the "reading from stdin"
+ message.
9 Check handling of overwriting of messages and delays:
Very wrong: errors while redrawing cause endless loop.
When switching to another file and screen scrolls because of the long
@@ -1840,6 +2360,9 @@ Tags:
before the previous ":tag" command. (Webb)
- When doing "[^I" or "[^D" add position to tag stack.
- Add command to put current position to tag stack: ":tpush".
+- Add functions to save and restore the tag stack? Or a command to switch
+ to another tag stack? So that you can do something else and come back to
+ what you were working on.
7 When using CTRL-] on someClass::someMethod, separate class from method and
use ":ta class:someClass someMethod".
Include C++ tags changes (Bertin). Change "class::func" tag into "func"
@@ -2000,6 +2523,8 @@ Autocommands:
8 Autocommand for when modified files have been found, when getting input
focus again (e.g., FileChangedFocus).
Check when: getting focus, jumping to another buffer, ...
+7 Autocommand for when an option is changed. Match buffer name or option
+ name?
8 Autocommands should not change registers. And marks? And the jumplist?
And anything else? Add a command to save and restore these things.
8 Add autocommands, user functions and user commands to ":mkvimrc".
@@ -2029,6 +2554,7 @@ Autocommands:
*Leave - Leaving a mode (in pair with the above *Enter)
VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled
when exiting isn't a good idea.
+ CursorHoldC - CursorHold while command-line editing
WinMoved - when windows have been moved around, e.g, ":wincmd J"
CmdUndefined - Like FuncUndefined but for user commands.
SearchPost - After doing a search command (e.g. to do "M")
@@ -2053,7 +2579,10 @@ Autocommands:
the position and number of inserted/deleted lines, so
that marks can be updated. HierAssist has patch to add
BufChangePre, BufChangePost and RevertBuf. (Shah)
- WinResized - When a window has been resized
+ ViewChanged - triggered when the text scrolls and when the window size
+ changes.
+ WinResized - After a window has been resized
+ WinClose - Just before closing a window
- Write the file now and then ('autosave'):
*'autosave'* *'as'* *'noautosave'* *'noas'*
'autosave' 'aw' number (default 0)
@@ -2070,8 +2599,6 @@ Omni completion:
Should work for Java (Eclipse does this), Python, Tcl, etc.
Richard Emberson mentioned working on an interface to Java.
- Check Readline for its completion interface.
- - Use ctags for other languages. Writing a file could trigger running
- ctags, merging the tags of the changed file.
- Ideas from others:
http://www.wholetomato.com/
http://www.vim.org/scripts/script.php?script_id=747
@@ -2106,6 +2633,12 @@ Insert mode completion/expansion:
8 Add option to set different behavior for Insert mode completion:
- ignore/match case
- different characters than 'iskeyword'
+8 Add option 'isexpand', containing characters when doing expansion (so that
+ "." and "\" can be included, without changing 'iskeyword'). (Goldfarb)
+ Also: 'istagword': characters used for CTRL-].
+ When 'isexpand' or 'istagword' are empty, use 'iskeyword'.
+ Alternative: Use a pattern so that start and end of a keyword can be
+ defined, only allow dash in the middle, etc.
8 Add a command to undo the completion, go back to the original text.
7 Completion of an abbreviation: Can leave letters out, like what Instant
text does: www.textware.com
@@ -2136,10 +2669,6 @@ Insert mode completion/expansion:
- CTRL-X CTRL-F: Use 'path' to find completions.
- CTRL-X CTRL-F: Option to use forward slashes on MS-Windows?
- CTRL-X CTRL-F: Don't replace "$VIM" with the actual value. (Kelly)
-8 Add option 'isexpand', containing characters when doing expansion (so that
- "." and "\" can be included, without changing 'iskeyword'). (Goldfarb)
- Also: 'istagword': characters used for CTRL-].
- When 'isexpand' or 'istagword' are empty, use 'iskeyword'.
- Allow listing all matches in some way (and picking one from the list).
@@ -2255,6 +2784,7 @@ Insert mode:
'cindent', 'smartindent':
+8 Lisp indenting: "\\" confuses the indenter. (Dorai Sitaram, 2006 May 17)
8 Java: Inside an anonymous class, after an "else" or "try" the indent is
too small. (Vincent Bergbauer)
Problem of using {} inside (), 'cindent' doesn't work then.
@@ -2265,6 +2795,11 @@ Insert mode:
"asdf"
}
);
+6 Add 'cino' flag for this function argument layout: (Spencer Collyer)
+ func( arg1
+ , arg2
+ , arg3
+ );
7 Add separate "(0" option into inside/outside a function (Zellner):
func(
int x) // indent like "(4"
@@ -2439,7 +2974,6 @@ Visual mode:
6 In non-Block mode, "I" should insert the same text in front of each line,
before the first non-blank, "gI" in column 1.
6 In non-Block mode, "A" should append the same text after each line.
-6 ":'<,'>source" should read the selected lines and ":source" them.
6 When in blockwise visual selection (CTRL-V), allow cursor to be placed
right of the line. Could also allow cursor to be placed anywhere on a TAB
or other special character.
@@ -2549,7 +3083,9 @@ Incsearch:
Searching:
8 Add "g/" and "gb" to search for a pattern in the Visually selected text?
"g?" is already used for rot13.
+ The vis.vim script has a ":S" command that does something like this.
Can use "g/" in Normal mode, uses the '< to '> area.
+ Use "&/" for searching the text in the Visual area?
8 Add a mechanism for recursiveness: "\@(([^()]*\@g[^()]*)\)". \@g stands
for "go recursive here" and \@( \) marks the recursive part.
Perl does it this way:
@@ -2557,6 +3093,9 @@ Searching:
Here $paren is evaluated when it's encountered. This is like a regexp
inside a regexp. In the above terms it would be:
\@((\([^()]\|\@g\)*)\)
+8 Show the progress every second. Could use the code that checks for CTRL-C
+ to find out how much time has passed. Or use SIGALRM. Where to show the
+ number?
7 Support for approximate-regexps to find similar words (agrep
http://www.tgries.de/agrep/ tre: http://laurikari.net/tre/index.html).
8 Add an item for a big character range, so that one can search for a
@@ -2661,6 +3200,13 @@ Searching:
Undo:
+8 Undo tree: visually show the tree somehow (Damian Conway)
+ Show only the leaves, indicating how many changed from the branch and the
+ timestamp?
+ Put branch with most recent change on the left, older changes get more
+ indent?
+8 Search for pattern in undo tree, showing when it happened and the text
+ state, so that you can jump to it.
- Persistent undo: store undo in a file.
Use timestamps, so that a version a certain time ago can be found and info
before some time/date can be flushed. 'undopersist' gives maximum time to
@@ -3033,8 +3579,13 @@ Various improvements:
next <li>, ]< to next </li>, [< to previous </li>.
8 Add ":rename" command: rename the file of the current buffer and rename
the buffer. Buffer may be modified.
+7 Instead of filtering errors with a shell script it should be possible to
+ do this with Vim script. A function that filters the raw text that comes
+ from the 'makeprg'?
- Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh
Govindachar)
+7 Add a command that goes back to the position from before jumping to the
+ first quickfix location. ":cbefore"?
6 In the quickfix window statusline add the command used to get the list of
errors, e.g. ":make foo", ":grep something *.c".
6 Python interface: add vim.message() function. (Michal Vitecek, 2002 Nov 5)
@@ -3047,7 +3598,6 @@ Various improvements:
to manipulate text without changing the window layout.
8 Add a command to revert to the saved version of file; undo or redo until
all changes are gone.
-7 Add a ":cpfile", go in the other direction as ":cnfile".
6 "vim -q -" should read the list of errors from stdin. (Gautam Mudunuri)
8 Add "--remote-fail": When contacting the server fails, exit Vim.
Add "--remote-self": When contacting the server fails, do it in this Vim.
@@ -3068,7 +3618,6 @@ Various improvements:
etc. Combinations of Alt, Ctrl and Shift are also possible. Recognize
these to avoid inserting the raw byte sequence, handle like the key
without modifier (unless mapped).
-8 Add ":breakdel *": delete all breakpoints.
7 Support ":browse edit" in console, using explorer.vim?
6 Add "gG": like what "gj" is to "j": go to the N'th window line.
8 Add command like ":normal" that accepts <Key> notation like ":map".
@@ -3107,13 +3656,6 @@ Various improvements:
7 Have a look at viH (Hellenic or Greek version of Vim). But a solution
outside of Vim might be satisfactory (Haritsis).
3 Make "2d%" work like "d%d%" instead of "d2%"?
-8 Make "more" prompt accept command characters, like "hit-enter" prompt?
- Or extend it with more commands, like "less": 'b' for back, 'j' for one
- line down, etc.
-8 For the "--more--" prompt, support the 'b'ack command for more commands.
- Possible implementation: Do it at a very low level, caching the lines that
- are on the screen (with highlight attributes). Avoids that changes have
- to be made for all functions that list something.
7 "g CTRL-O" jumps back to last used buffer. Skip CTRL-O jumps in the same
buffer. Make jumplist remember the last ten accessed buffers?
- Keep a list of most recently used files for each window, use "[o" to go
@@ -3146,8 +3688,6 @@ Various improvements:
of the files. Only check when an event occurs (e.g., character typed,
mouse moved). Useful for non-GUI versions where keyboard focus isn't
noticeable.
-9 When using ":w <fname>" it's possible that this file is loaded in another
- buffer. Give a warning right away, don't wait for a shell command.
- Make 'smartcase' work even though 'ic' isn't set (Webb).
7 When formatting text, allow to break the line at a number of characters.
Use an option for this: 'breakchars'? Useful for formatting Fortran code.
@@ -3156,8 +3696,8 @@ Various improvements:
paragraphs). Complements the '2' flag. Use '>' flag when larger indent
starts a new paragraph, use '<' flag when smaller indent starts a new
paragraph. Both start a new paragraph on any indent change.
-7 Add a way to define an item list with a pattern in 'formatoptions'. The
- 'n' flag doesn't work for "6.3" or "6a.".
+8 The 'a' flag in 'formatoptions' is too dangerous. In some way only do
+ auto-formatting in specific regions, e.g. defined by syntax highlighting.
8 Allow using a trailing space to signal a paragraph that continues on the
next line (MIME text/plain; format=flowed, RFC 2646). Can be used for
continuous formatting. Could use 'autoformat' option, which specifies a
@@ -3358,8 +3898,6 @@ Various improvements:
- Amiga: test for 'w' flag when reading a file.
- :table command (Webb)
- Add new operator: clear, make area white (replace with spaces): "g ".
-- Make it possible for a user to define a new operator. Implementation with
- internal scripting language or Perl?
- Add command to ":read" a file at a certain column (blockwise read?).
- Add sort of replace mode where case is taken from the old text (Goldfarb).
- Allow multiple arguments for ":read", read all the files.