Vim documentation: todo
main help file
*todo.txt* For Vim version 6.0at. Last change: 2001 Aug 27
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
See |votes-for-changes| for a list of votes on desired changes in Vim.
See |develop.txt| for development plans.
*known-bugs*
GTK with Gnome: inputdialog() doesn't work, it always returns the default
text.
Client-server: When using "vim --remote-wait file" twice, one of the clients
will block forever.
Win32 console: There is a delay when exiting. Because of the client-server
code?
Vi incompatibility:
8 With undo/redo only marks in the changed lines should be changed. Other
marks should be kept. Vi keeps each mark at the same text, even when it
is deleted or restored. (Webb)
Also: A mark is lost after: make change, undo, redo and undo.
Example: "{d''"' then "u" then "d''"': deletes an extra line, because the ''
position is one line down. (Veselinovic)
8 When stdin is not a tty, and Vim reads commands from it, an error should
make Vim exit.
8 Unix Vim (not gvim): Typing CTRL-C in Ex mode should finish the line
(currently you can continue typing, but it's truncated later anyway).
8 When loading a file in the .exrc, Vi loads the argument anyway. Vim skips
loading the argument if there is a file already. When no file argument
given, Vi starts with an empty buffer, Vim keeps the loaded file. (Bearded)
8 In Insert mode, when using <BS> or <Del>, don't wipe out the text, but
only move back the cursor. Behaves like '$' in 'cpoptions'. Use a flag
in 'cpoptions' to switch this on/off.
8 When editing a file which is a symbolic link, and then opening another
symbolic link on the same file, Vim uses the name of the first one.
Adjust the file name in the buffer to the last one used? Use several file
names in one buffer???
Also: When first editing file "test", which is symlink to "test2", and
then editing "test2", you end up editing buffer "test" again. Change the
name of the buffer to the actual file, instead of using the name of the
symlink?
7 The ":undo" command works differently in Ex mode. Edit a file, make some
changes, "Q", "undo" and _all_ changes are undone, like editing the file
was one command.
7 The ":map" command output overwrites the command. Perhaps it should keep
the ":map" when it's used without arguments?
7 When interrupting reading a file, Vi considers the buffer modified. Add a
'cpoptions' flag for this (we don't want it modified always to be able to
do ":q")?
7 CTRL-L is not the end of a section? It is for Posix! Make it an option.
7 Implement 'prompt' option. Init to off when stdin is not a tty.
7 CTRL-T in Insert mode inserts 'shiftwidth' of spaces at the cursor. Add a
flag in 'cpoptions' for this.
7 Add a way to send an email for a crashed edit session. Create a file when
making changes (containing name of the swap file), delete it when writing
the file. Supply a program that can check for crashed sessions (either
all, for a system startup, or for one user, for in a .login file).
7 Vi doesn't do autoindenting when input is not from a tty (in Ex mode).
7 "z3<CR>" should still use the whole window, but only redisplay 3 lines.
7 ":tag xx" should move the cursor to the first non-blank. Or should it go
to the match with the tag? Option?
7 Implement 'autoprint'/'ap' option.
7 Add flag in 'cpoptions' that makes <BS> after a count work like <Del>
(Sayre).
7 Add flag in 'cpoptions' that makes operator (yank, filter) not move the
cursor, at least when canceled. (default vi compatible).
7 Make "5dd" on last-but-one-line not delete anything (Vi compatible).
Add flag in 'cpoptions' for this. When not present, "2dd" in the last
line should delete the last line.
7 This Vi-trick doesn't work: "Q" to go to Ex mode, then "g/pattern/visual".
In Vi you can edit in visual mode, and when doing "Q" you jump to the next
match. Nvi can do it too.
7 Support '\' for line continuation in Ex mode for these commands: (Luebking)
g/./a\ g/pattern1/ s/pattern2/rep1\\
line 1\ line 2\\
line 2\ line 3\\
. line4/
6 ":e /tmp/$tty" doesn't work. ":e $uid" does. Is $tty not set because of
the way the shell is started?
6 Vi compatibility (optional): make "ia<CR><ESC>10." do the same strange
thing. (only repeat insert for the first line).
GTK+ GUI known bugs:
- When using the file browser in GTK the absolute file name is used. Should
try to simplify it. (Lohner)
9 GTK GUI with Gnome: When $DISPLAY is wrong, ":gui" unexpectedly exits.
Without Gnome it does work.
Not all Gnome arguments get to gnome_init().
9 When logging out from KDE, vim is not told to save its files. Catching
the WM_SAVE_YOURSELF event doesn't work.
9 When selecting a font from the font selector with an embedded space it
cannot be found. (Tsirkin)
8 When a font is not fixed width, the message "not fixed-width" disappears
immediately. (Tsirkin)
Add some code to handle proportional fonts? Need to draw each character
separately (like xterm). Also for when a double-width font is not exactly
double-width. (Maeda)
9 Can't paste a Visual selection from GTK-gvim to vim in xterm when it is
longer than 4000 characters. Works OK from gvim to gvim and vim to vim.
Pasting through xterm (using the shift key) also works.
9 With the guifont "-*-clean-medium-r-*-*-8-*-*-*-*-80-*" bold characters
are drawn wrong. Try on C source code. The bold font is wider than the
medium font. Check bold font cellsize and use bold font trick if it's
wrong?
8 Font "7x14" has a bold version "7x14bold". Try to find the bold font by
appending "bold" when there are not 14 dashes.
8 When using "gvim -geom 40x30" or setting 'columns' in .gvimrc or with a
GUIEnter autocommand, the width is still set to fit the toolbar. Also
happens when changing the font. How to avoid that the toolbar specifies
the minimal window width?
Win32 GUI known bugs:
8 Windows NT: writing to aux.* makes Vim hang. (Acevedo)
8 When using two monitors, the code that checks/fixes the window size and
position (e.g. when a font changes) doesn't work properly. (George Reilly)
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
doesn't work properly.
8 The dialog boxes don't have an indication of which button is the default.
E.g., the dialog for a changed file. (Webb)
8 When Vim is minimized and when maximizing it a file-changed dialog pops
up, Vim isn't maximized. It should be done before the dialog, so that it
appears in the right position. (Webb)
8 When activating window with mouse click, don't move cursor to mouse click.
Catch WM_MOUSEACTIVATE. (Luevelsmeyer)
9 When selecting at the more-prompt or hit-enter-prompt, the right mouse
button doesn't give popup menu.
At the hit-enter prompt CTRL-Y doesn't work to copy the modeless
selection.
9 When there are more than 32767 lines, the scrollbar has a roundoff error.
Clicking the up or down error scrolls two lines or more. Looks like there
is an extra event that reports the new position of the scrollbar.
9 When file modified outside of Vim and Vim gets focus, redraw is wrong.
Put focus event in input buffer and let generic Vim code handle it.
Try this: ":set sw ts", get enter-prompt, then change the file and clock
"reload" in the dialog for the changed file: Window moves with the cursor!
8 When 'grepprg' doesn't execute, the error only flashes by, the
user can hardly see what is wrong. (Moore)
Could use vimrun with an "-nowait" argument to only wait when an error
occurs, but "command.com" doesn't return an error code.
8 When the 'shell' cannot be executed, should give an appropriate error msg.
Esp. for a filter command, currently it only complains the file could not
be read.
8 MessageBox used for error messages can be too big. There is no way to
scroll it, or even hit the OK button (but you can hit return).
Use a scrollable window.
7 Add an option to add one pixel column to the character width? Lucida
Console italic is wider than the normal font ("d" overlaps with next char).
7 At the hit-enter prompt scrolling now no longer works. Need to use the
keyboard to get around this. Pretend <CR> was hit when the user tries to
scroll?
7 'mousefocus' is disabled until the next mouse click, when trying to exit
by hitting the X in the title bar. (Webb)
7 Scrollbar width doesn't change when selecting other windows appearance.
Also background color of Toolbar and rectangle below vert. scrollbar.
7 "!start /min cmd" should run in a minimized window, instead of using
"/min" as the command name. (Rogall)
6 Drawing text transparantly doesn't seem to work (when drawing part cursor).
8 CTRL key doesn't always work in combination with ALT key. It does work
for function keys, not for alphabetic characters.
8 CTRL-@ doesn't work. Don't even get a message for it?
8 CTRL-- doesn't work for AZERTY, because it's CTRL-[ for QWERTY. How do we
know which keyboard is being used?
7 When scrolling, and a background color is dithered, the dither pattern
doesn't always join correctly between the scolled area and the new drawn
area (Koloseike).
8 Tear-off menu causes a crash when it contains many items (>100).
(Pedro Gomes) Probably because DLG_ALLOC_SIZE is a fixed number.
6 When Vim is minimized and has a changed file, closing Vim makes the dialog
appear in the left-upper corner of the screen. Should be in the middle.
Athena and Motif:
8 Perhaps use fontsets for everything?
6 When starting in English and switching the language to Japanese, setting
the locale with ":lang", 'guifontset' and "hi menu font=", deleting all
menus and setting them again, the menus don't use the new font. Most of
the tooltips work though...
Athena GUI:
9 When dragging the scrollbar thumb very fast, focus is only o