summaryrefslogtreecommitdiffstats
path: root/runtime/doc/todo.txt
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc/todo.txt')
-rw-r--r--runtime/doc/todo.txt3441
1 files changed, 3441 insertions, 0 deletions
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
new file mode 100644
index 0000000000..c8b9576f66
--- /dev/null
+++ b/runtime/doc/todo.txt
@@ -0,0 +1,3441 @@
+*todo.txt* For Vim version 7.0aa. Last change: 2004 Jun 13
+
+
+ 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|.
+
+ *known-bugs*
+-------------------- Known bugs and current work -----------------------
+
+GTK2: font dialog uses font size zero when 'guifont' is "Courier". Patch from
+Yasuhiro Matsumoto, 2004 June 8.
+
+Python indent: # aser: still adds extra indent.
+
+
+For version 7.0:
+- Include many PATCHES:
+ - Include the kvim patch. http://freenux.org/vim/ (Mickael Marchand)
+ Do not add Qtopia yet, it doesn't work very well.
+- new DATA TYPES: lists, dictionaries and function references.
+ Add type checking? See ~/vim/ideas.txt.
+- Add SPELLCHECKER, with easy to add support for many languages.
+- REFACTORING: The main() function is very long. Move parts to separate
+ functions, especially loops. Ideas from Walter Briscoe (2003 Apr 3, 2004
+ Feb 9).
+- Store messages to allow SCROLLING BACK for all commands. And other "less"
+ like commands.
+- "INTELLISENSE". First cleanup the Insert-mode completion.
+ http://www.vim.org/scripts/script.php?script_id=747
+ http://sourceforge.net/projects/insenvim
+- PERSISTENT UNDO: store undo in a file.
+ Support multiple threads. Show the list of changes in a window to be able
+ to select a version.
+7 SWAP FILE CHANGE: When a dos format file was edited with ":e ++ff=unix",
+ Vim is killed and trying to recover the file, 'ff' will be dos. Same for
+ non-default fileencoding. (Miroslaw Dobrzanski-Neumann, Jul 17)
+ Should store the values in block 0 of the swap file, but that is an
+ incompatible change.
+7 Support WINDOW TABS. Works like several pages, each with their own
+ split windows. Patch for GTK 1.2 from Christian Michon, 2004 Jan 6.
+ Also for the console!
+- EMBEDDING: Make it possible to run Vim inside a window of another program.
+ For Xwindows this can be done with XReparentWindow().
+ For GTK Neil Bird has a patch to use Vim like a widget.
+- Add COLUMN NUMBERS to ":" commands ":line1,line2[col1,col2]cmd". Block
+ can be selected with CTRL-V. Allow '$' (end of line) for col2.
+- Add DEBUGGER INTERFACE. Implementation for gdb by Xavier de Gaye,
+ assisted by Mikolaj Machowski. Should work like an IDE. Try to keep it
+ generic. Also found here: http://skawina.eu.org/mikolaj/vimgdb
+ To be able to start the debugger from inside Vim: For GUI run a program
+ with a netbeans connection; for console: start a program that splits the
+ terminal, runs the debugger in one window and reconnect Vim I/O to the
+ other window.
+ Wishes for NetBeans commands:
+ - make it possible to have 'defineAnnoType' also handle terminal colors.
+ - send 'balloonText' events for the cursor position (using CursorHold ?)
+ in terminal mode.
+- 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.
+
+
+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 ":change" in a single-line file adds an empty line. When the file used to
+ be longer a "~" line is displayed, but there really is an empty line.
+ (Haakon Riiser, 2003 Dec 3 and Dec 16)
+8 ":append" and ":insert" in an empty file add an extra empty line. (Haakon
+ Riiser, 2003 Dec 3) Test for ML_EMPTY.
+8 When stdin is not a tty, and Vim reads commands from it, an error should
+ make Vim exit.
+7 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).
+ Requires a way to make CTRL-C interrupt select() when in cooked input.
+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)
+6 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. It's not
+ logical that the name that was first used sticks with the buffer.
+7 The ":undo" command works differently in Ex mode. Edit a file, make some
+ changes, "Q", "undo" and _all_ changes are undone, like the ":visual"
+ command was one command.
+7 The ":map" command output overwrites the command. Perhaps it should keep
+ the ":map" when it's used without arguments?
+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 cancelled. (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. Patch from greenx 2002 Apr 11.
+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+ 1 (OK in GTK 2):
+8 When menus are disabled, 'm' removed from 'guioptions', Alt-F still pops
+ up the File menu. Cannot reproduce this: gives a warning for a NULL
+ pointer if the menu was never displayed.
+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?
+8 When using a theme with different scrollbars (gtkstep), the scrollbars can
+ be too narrow. (Drazen Kacar)
+8 Font "7x14" has a bold version "7x14bold". Try to find the bold font by
+ appending "bold" when there are not 14 dashes.
+
+GTK+ GUI known bugs:
+8 GTK 2: Combining UTF-8 characters not displayed properly in menus (Mikolaj
+ Machowski) They are displayed as separate characters. Problem in
+ creating a label?
+9 Can't paste a Visual selection from GTK-gvim to vim in xterm or Motif gvim
+ 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.
+ It starts working after GTK gvim loses the selection and gains it again.
+7 DND doesn't work with KDE (also with GTK 1).
+
+
+Win32 GUI known bugs:
+8 On Windows 98 the unicows library is needed to support functions with UCS2
+ file names. Can we load unicows.dll dynamically?
+8 The -P argument doesn't work very well with many MDI applications.
+ The last argument of CreateWindowEx() should be used, see MSDN docs.
+ Tutorial: http://win32assembly.online.fr/tut32.html
+8 In eval.c, io.h is included when MSWIN32 is defined. Shouldn't this be
+ WIN32? Or can including io.h be moved to vim.h? (Dan Sharp)
+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").
+6 Win32 GUI: With "-u NONE -U NONE" and doing "CTRL-W v" "CTRL-W o", the ":"
+ of ":only" is highlighted like the cursor. (Lipelis)
+7 When font smoothing is enabled, redrawing can become very slow. The reason
+ appears to be drawing with a transparent background. Would it be possible
+ to use an opaque background in most places?
+8 Use another default for 'termencoding': the active codepage. Means that
+ when 'encoding' is changed typing characters still works properly.
+ Alternative: use the Unicode functions to obtain typed characters.
+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.
+7 The cursor color indicating IME mode doesn't work properly. (Shizhu Pan,
+ 2004 May 9)
+8 Win32: When clicking on the gvim title bar, which gives it focus, produces
+ a file-changed dialog, after clicking on a button in that dialog the gvim
+ window follows the mouse. The button-up event is lost. Only with
+ MS-Windows 98?
+ Try this: ":set sw ts", get enter-prompt, then change the file in a
+ console, go back to Vim and click "reload" in the dialog for the changed
+ file: Window moves with the cursor!
+ Put focus event in input buffer and let generic Vim code handle it?
+8 When activating the Vim window with mouse click, don't move cursor to
+ mouse position. Catch WM_MOUSEACTIVATE. (Luevelsmeyer)
+9 The print dialog uses a font which doesn't display multi-byte messages.
+ Include patch from Vipin Aravind? Update from Yasuhiro Matsumoto.
+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
+ doesn't work properly.
+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)
+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.
+ On the command line, don't get a popup menu for the right mouse button.
+ Let the middle button paste selected text (not the clipboard but the
+ non-Visual selection)? Otherwise CTRL-Y has to be used to copy the text.
+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).
+ Opposite of 'linespace': 'columnspace'.
+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? Need to be able to get out of hit-enter prompt with the mouse
+ anyway.
+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 transparently 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. Perhaps this is because
+ CTRL-ALT is used by Windows as AltGr?
+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 scrolled area and the new drawn
+ area (Koloseike).
+8 When gui_init_font() is called with "*", p_guifont is freed while it might
+ still be used somewhere. This is too tricky, do the font selection first,
+ then set the new font by name (requires putting all logfont parameters in
+ the font name).
+
+
+Athena and Motif:
+9 Can configure be changed to disable netbeans if the Xpm library is
+ required and it's missing?
+8 When using the resource "Vim*borderwidth 2" the widgets are positioned
+ wrong.
+9 XIM is disabled by default for SGI/IRIX. Fix XIM so that 'imdisable' can
+ be off by default.
+9 XIM doesn't work properly for Athena/Motif. (Yasuhiro Matsumoto) For now,
+ keep XIM active at all times when the input method has the preediting
+ flag.
+8 X11: A menu that contains an umlaut is truncated at that character.
+ Happens when the locale is "C", which uses ASCII instead of IS0-8859-1.
+ Is there a way to use latin1 by default? Gnome_init() seems to do this.
+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...
+7 Motif: when using a file selection dialog, the specified file name is not
+ always used (when specifying a filter or another directory).
+8 When 'encoding' is different from the current locale (e.g., utf-8) the
+ menu strings don't work. Requires conversion from 'encoding' to the
+ current locale. Workaround: set 'langmenu'.
+
+
+Athena GUI:
+9 When dragging the scrollbar thumb very fast, focus is only obtained in
+ the scrollbar itself. And the thumb is no longer updated when moving
+ through files.
+7 The file selector is not resizable. With a big font it is difficult to
+ read long file names. (Schroeder)
+4 Re-write the widget attachments and code so that we will not have to go
+ through and calculate the absolute position of every widget every time the
+ window is refreshed/changes size. This will help the "flashing-widgets"
+ problem during a refresh.
+5 When starting gvim with all the default colors and then typing
+ ":hi Menu guibg=cyan", the menus change color but the background of the
+ pullright pixmap doesn't change colors.
+ If you type ":hi Menu guibg=cyan font=anyfont", then the pixmap changes
+ colors as it should.
+ Allocating a new pixmap and setting the resource doesn't change the
+ pullright pixmap's colors. Why? Possible Athena bug?
+
+
+Motif GUI:
+8 Popup menu ordering is wrong.
+8 Accelerators don't work in a dialog. Include patch from Martin Dalecki
+ (Jan 3, tested by David Harrison). Should work with Alt-o then.
+7 Use accelerators for the Motif file selection dialog. Patch from Martin
+ Dalecki 2002 Jan 11.
+7 Use XmStringCreateLocalized() instead of XmStringCreateSimple()?
+ David Harrison says it's OK (it exists in Motif 1.2).
+8 The texts in the find/replace dialog don't use the right font.
+8 Lesstif: When deleting a menu that's torn off, the torn off menu becomes
+ very small instead of disappearing. When closing it, Vim crashes.
+ (Phillipps)
+
+
+GUI:
+9 On Solaris, creating the popup menu causes the right mouse button no
+ longer to work for extending the selection. (Halevy)
+9 When running an external program, it can't always be killed with CTRL-C.
+ e.g. on Solaris 5.5, when using "K" (Keech). Other 'guipty' problems on
+ Solaris 2.6. (Marley)
+9 On Solaris: Using a "-geometry" argument, bigger than the window where Vim
+ is started from, causes empty lines below the cmdline. (raf)
+8 X11 GUI: When menu is disabled by excluding 'm' from 'guioptions', ALT key
+ should not be used to trigger a menu (like the Win32 version).
+8 When setting 'langmenu', it should be effective immediately. Store both
+ the English and the translated text in the menu structure. Re-generate
+ the translation when 'langmenu' has changed.
+8 Basic flaw in the GUI code: NextScreen is updated before calling
+ gui_write(), but the GUI code relies on NextScreen to represent the state
+ of where it is processing the output.
+ Need better separation of Vim core and GUI code.
+8 When fontset support is enabled, setting 'guifont' to a single font
+ doesn't work.
+8 Menu priority for sub-menus for: Amiga, BeOS.
+8 Add menu separators for Amiga, RISCOS.
+8 Add a few more command names. Patch from Jiri Brezina (28 feb 2002).
+8 Add way to specify the file filter for the browse dialog. At least for
+ browse().
+8 Add dialog for search/replace to other GUIs? Tk has something for this,
+ use that code? Or use console dialog.
+8 When selecting a font with the font dialog and the font is invalid, the
+ error message disappears too quick.
+8 gui_check_colors() is not called at the right moment. Do it much later,
+ to avoid problems.
+8 gui_update_cursor() is called for a cursor shape change, even when there
+ are mappings to be processed. Only do something when going to wait for
+ input. Or maybe every 100 ms?
+8 X11: When the window size is reduced to fit on screen, there are blank
+ lines below the text and bottom scrollbar. "gvim -geometry 80x78+0+0".
+ When the "+0+0" is omitted it works.
+8 When starting an external command, and 'guipty' set, BS and DEL are mixed
+ up. Set erase character somehow?
+8 A dead circumflex followed by a space should give the '^' character
+ (Rommel). Look how xterm does this.
+ Also: Bednar has some code for dead key handling.
+ Also: Nedit 5.0.2 with USE_XMIM does it right. (Gaya)
+8 The compose key doesn't work properly (Cepas). Both for Win32 and X11.
+7 The cursor in an inactive window should be hollow. Currently it's not
+ visible.
+7 GUI on Solaris 2.5.1, using /usr/dt/..: When gvim starts, cursor is
+ hollow, after window lowered/raised it's OK. (Godfrey)
+7 When starting GUI with ":gui", and window is made smaller because it
+ doesn't fit on the screen, there is an extra redraw.
+8 When setting font with .Xdefaults, there is an extra empty line at the
+ bottom, which disappears when using ":set guifont=<Tab>". (Chadzelek)
+8 When font shape changes, but not the size, doing ":set font=" does not
+ redraw the screen with the new font. Also for Win32.
+ When the size changes, on Solaris 2.5 there isn't a redraw for the
+ remaining part of the window (Phillipps).
+- Flashes really badly in certain cases when running remotely from a Sun.
+4 Re-write the code so that the highlighting isn't changed multiple times
+ when doing a ":hi clear". The color changes happen three or more times
+ currently. This is very obvious on a 66Mhz 486.
+
+
+MSDOS/DJGPP:
+9 Pressing CTRL-C often crashes the console Vim runs in. (Ken Liao)
+ When 'bioskey' isn't set it doesn't happen. Could be a problem with the
+ BIOS emulation of the console. Version 5.6 already had this problem.
+8 DJGPP: "cd c:" can take us to a directory that no longer exists.
+ change_drive() doesn't check this. How to check for this error?
+9 The 16 bit version runs out of memory very quickly. Should find unused
+ code and reduce static data.
+9 Crash when running on Windows 98 in a console window and pressing CTRL-C.
+ Happens now and then. When debugging Vim in gdb this also happens. Since
+ the console crashes, might be a bug in the DOS console. Resetting
+ 'bioskey' avoids it, but then CTRL-C doesn't work.
+9 DOS: Make CTRL-Fx and ALT-Fx work.
+ CTRL-F1 = CE-5E, CTRL-F2 = CE-5F, .., CTRL-F10 = CE-67
+ ALT-F1 = CE-68, ALT-F2 = CE-69, .., ALT-F10 = CE-71
+ Shifted cursor keys produce same codes as unshifted keys. Use bioskey(2)
+ to get modifier mask for <S-C-M-Fx>.
+ Use K_SPECIAL/KS_MODIFIER codes to insert modifier mask in input stream?
+ Make this work like in Win32 console.
+ Mapping things like <M-A> doesn't work, because it generates an extended
+ key code. Use a translation table?
+9 Can't read an opened swap file when the "share" command has not been used.
+ At least ignore the swap files that Vim has opened itself.
+8 Use DJGPP 2.03.
+8 The Dos32 version (DJGPP) can't use long file names on Windows NT.
+ Check if new package can be used (v2misc/ntlfn08[bs].zip).
+8 setlocale() is bogus.
+8 Vim busy waits for new characters or mouse clicks. Should put in some
+ sort of sleep, to avoid eating 50% of the CPU time. Test on an unpatched
+ Windows 95 system!
+8 DJGPP: when shell is bash, make fails. (Donahoe)
+7 Hitting CTRL-P twice quickly (e.g. in keyword completion) on a 8088
+ machine, starts printer echo! (John Mullin).
+7 MSDOS 16 bit version can't work with COMSPEC that has an argument, e.g.:
+ COMSPEC=C:\WINDOWS\COMMAND.COM /E:4096 (Bradley)
+ Caused by BCC system() function (Borland "make" has the same problem).
+8 Mouse: handle left&right button pressed as middle button pressed. Add
+ modifier keys shift, ctrl and alt.
+7 When too many files are open (depends on FILES), strange things happen.
+ The Dos16 version runs out of memory, in the Dos32 version "!ls" causes a
+ crash. Another symptom: .swp files are not deleted, existing files are
+ "[New file]".
+7 DJGPP version doesn't work with graphics display mode. Switch to a mode
+ that is supported?
+8 DJGPP: ":mode" doesn't work for many modes. Disable them.
+8 DJGPP: When starting in Ex mode, shouldn't clear the screen. (Walter
+ Briscoe)
+
+
+MSDOS, OS/2 and Win32:
+8 OS/2: Add backtick expansion. Undefine NO_EXPANDPATH and use
+ gen_expand_wildcards().
+8 OS/2: Add clipboard support? See example clipbrd.exe from Alexander
+ Wagner.
+8 OS/2: Add Extended Attributes support and define HAVE_ACL.
+8 OS/2: When editing a file name "foo.txt" that is actually called FOO.txt,
+ writing uses "foo.txt". Should obtain the real file name.
+8 Should $USERPROFILE be used instead of $HOMEDRIVE/$HOMEPATH?
+8 Win32 console: <M-Up> and <M-Down> don't work. (Geddes) We don't have
+ special keys for these. Should use modifier + key.
+8 Win32 console: caps-lock makes non-alpha keys work like with shift.
+ Should work like in the GUI version.
+8 Environment variables in DOS are not case sensitive. Make a define for
+ STRCMP_ENV(), and use it when comparing environment var names.
+8 Setting 'shellslash' has no immediate effect. Change all file names when
+ it is set/reset? Or only use it when actually executing a shell command?
+8 When editing a file on a Samba server, case might matter. ":e file"
+ followed by ":e FILE" will edit "file" again, even though "FILE" might be
+ another one. Set last used name in buflist_new()? Fix do_ecmd(), etc.
+8 ":mksession" generates a "cd" command where "aa\#bb" means directory "#bb"
+ in "aa", but it's used as "aa#bb". (Ronald Hoellwarth)
+8 When a buffer is editing a file like "ftp://mach/file", which is not going
+ to be used like a normal file name, don't change the slashes to
+ backslashes. (Ronald Hoellwarth)
+
+
+Windows 95:
+8 Editing a file by it's short file name and writing it, makes the long file
+ name disappear. Setting 'backupcopy' helps.
+ Use FindFirstFile()->cAlternateFileName in fname_case() (George Reilly).
+8 Doing wildcard expansion, will match the short filename, but result in the
+ long filename (both DJGPP and Win32).
+
+
+Win32 console:
+9 When editing a file by its short file name, it should be expanded into its
+ long file name, to avoid problems like these: (Mccollister)
+ 1) Create a file called ".bashrc" using some other editor.
+ 2) Drag that file onto a shortcut or the actual executable.
+ 3) Note that the file name is something like BASHRC~1
+ 4) Go to File->Save As menu item and type ".bashrc" as the file name.
+ 5) Press "Yes" to indicate that I want to overwrite the file.
+ 6) Note that the message "File exists (add ! to override)" is displayed
+ and the file is not saved.
+ Use FindFirstFile() to expand a file name and directory in the path to its
+ long name.
+8 Also implement 'conskey' option for the Win32 console version? Look at
+ how Xvi does console I/O under Windows NT.
+7 Re-install the use of $TERM and support the use of different terminals,
+ besides the console.
+8 Use of <altgr> modifier doesn't work? 5.3 was OK. (Garcia-Suarez/Guckes)
+9 Mapping <C-S-Tab> doesn't work correctly. How to see the difference with
+ <C-S-i>?
+9 tmpnam() uses file in root of file system: "\asdf". That doesn't work on
+ a Netware network drive. Use same function as for Win32 GUI?
+8 In os_win32.h, HAVE_STRICMP and HAVE_STRNICMP are defined only if __GNUC__
+ is not defined. Shouldn't that be the other way around?
+8 ":winpos" doesn't work. Patch from Vipin Aravind.
+7 Use SetConsoleCP() and SetConsoleOutputCP() to implement 'termencoding'?
+ Avoids that input and output work differently. Need to be restored when
+ exiting.
+
+
+Amiga:
+8 In mch_inchar() should use convert_input_safe() to handle incomplete byte
+ sequences.
+9 In mch_expandpath() a "*" is to be expanded, but "\*" isn't. Remove
+ backslashes in result.
+8 Executing a shell, only one option for 'shell' is separated. Should do
+ all options, using white space separation.
+
+
+Macintosh:
+9 Mac: The motion type is not stored on the clipboard. Using ":set
+ clipboard=unnamed" makes "yyp" work characterwise. (Michael DeMoney)
+7 Loading the Perl library only works on OS/X 10.2 or 10.3, never on both.
+ Load the Perl library dynamically see Python sources file dynload_mac
+ (Jack)
+ dynamic linking: http://developer.apple.com/technotes/tn2002/tn2064.html
+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 Patch to add 'transparency' option. Disadvantage: it's slow. (Eckehard
+ Berns, 2004 May 9) http://ecki.to/vim-icns/TransBack.diff
+8 Patches from "Rain Dog" Cucka:
+ - guifont selector (2002 Dec 15)
+ - scrollbar (2002 Dec 8)
+ - Quartz fonts (2002 Dec 8)
+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.
+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
+ scrolling (CTRL-L cleans it up). (Benji Fisher)
+9 On G3 Mac, OS version 8, variable-speed scrolling doesn't work, after two
+ seconds of scrolling the screen freezes. (Benji Fisher)
+9 In mac_expandpath() check that handling of backslashes is done properly.
+8 Standard Mac shortcuts are missing. (Amerige)
+8 Handling of non-fixed width fonts is wrong. (Amerige)
+
+
+"Small" problems:
+8 When an ":edit" is inside a try command and the ATTENTION prompt is used,
+ the :catch commands are always executed, also when the file is edited
+ normally. Should reset did_emsg and undo side effects. Also make sure
+ the ATTENTION message shows up.
+9 When using ":e ++enc=foo file" and the file is already loaded with
+ 'fileencoding' set to "bar", then do_ecmd() uses that buffer, even though
+ the fileencoding differs. Reload the buffer in this situation? Need to
+ check for the buffer to be unmodified.
+8 ":g//" gives "Pattern not found error" with E486. Should not use the
+ error number, it's not a regular error message.
+7 Vimtutor leaves escape sequence in terminal. This is the xterm response to
+ requesting the version number. (Yasuhiro Matsumoto)
+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 After running "make test" the window title is sometimes not restored.
+ Mostly sticks at "test3.in", but not always. Appears to happen more often
+ when compiled with Python (threading).
+7 The messages for "vim --help" and "vim --version" don't use
+ 'termencoding'.
+7 ATTENTION dialog choices are more logical when "Delete it' appears before
+ "Quit". Patch by Robert Webb, 2004 May 3.
+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
+ using the horizontal scrollbar.
+7 VisVim can only open one file. Hard to solve: each opened file is passed
+ with a separate invocation, would need to use timestamps to know the
+ invocations belong together.
+8 When giving a ":bwipeout" command a file-changed dialog may popup for this
+ buffer, which is pointless. (Mike Williams)
+8 On MS-Windows ":make" doesn't show output while it is working. Use the
+ tee.exe from http://unxutils.sourceforge.net/ ? About 16 Kbyte in the
+ UnxUtils.zip archive.
+ Alternate one: http://www.pramodx.20m.com/tee_for_win32.htm, but Walter
+ Briscoe says it's not as good.
+8 'fillchars' doesn't work for multi-byte characters.
+9 Editing a XML file with a long line is extremely slow. Example file from
+ Randy Parker (Dec 13). Editing the dictionaries for engspchk plugin with
+ syntax highlighting is also very slow.
+ Limit the searching for items to a few hundred characters?
+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:
+ use "~/" when possible.
+8 After using diff mode, ":set nodiff" doesn't restore the old foldmethod.
+ (Thomas S. Urban)
+7 mb_off2cells() doesn't work correctly on the tail byte of a double-byte
+ character. (Yasuhiro Matsumoto) It should return 1 when used on a tail
+ byte, like for utf-8. Store second byte of double-byte in ScreenLines2[]
+ (like for DBCS_JPNU) and put a zero in the second byte (like for UTF-8).
+8 'backupdir' and 'directory' should use $TMPDIR, $TMP and/or $TEMP when
+ defined.
+7 Inside a function with "perl <<EOF" a line with "$i++" is recognized as an
+ ":insert" command, causing the following "endfunction" not to be found.
+ Add skipping this perl construction inside function definitions.
+7 When 'ttimeoutlen' is 10 and 'timeoutlen' is 1000, there is a keycode
+ "<Esc>a" and a mapping <Esc>x", when typing "<Esc>a" with half a second
+ delay should not be interpreted as a keycode. (Hans Ginzel)
+7 ":botright 1 new" twice causes all window heights to be changed. Make the
+ bottom window only bigger as much as needed.
+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":
+ "-keepcontext". Do replace <SID>, so that a function in the defining
+ script can be called.
+8 The Japanese message translations for MS-Windows are called ja.sjis.po,
+ but they use encoding cp932. Rename the file and check that it still
+ works.
+9 When a syntax region does not use "keepend" and a contained item does use
+ "extend", this makes the outer region stop at the end of the contained
+ region. (Lutz Eymers) Another example Nov 14 2002.
+8 A very long message in confirm() can't be quit. Make this possible with
+ CTRL-C.
+7 clip_x11_own_selection() uses CurrentTime, that is not allowed. VNC X
+ server has a problem with this. (Mark Waggoner) Remembering the timestamp
+ of events isn't always possible. We don't get them in an xterm. GTK
+ doesn't obtain the selection again when the timestamp differs, thus it
+ won't work for GTK anyway.
+8 When the clipboard isn't supported: ":yank*" gives a confusing error
+ message. Specifically mention that the register name is invalid.
+8 "gf" always excludes trailing punctuation characters. file_name_in_line()
+ is currently fixed to use ".,:;!". Add an option to make this
+ configurable?
+8 'hkmap' should probably be global-local.
+9 When "$" is in 'cpoptions' and folding is active, a "C" command changes
+ the folds and resets w_lines_valid. The display updating doesn't work
+ then. (Pritesh Mistry)
+8 ":s!from!to!" works, but ":smagic!from!to!" doesn't. It sees the "!" as a
+ 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 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,
+ nothing is deleted. Should delete the letter and preceding white space.
+9 When getting focus while writing a large file, could warn for this file
+ being changed outside of Vim. Avoid checking this while the file is being
+ written.
+9 The "Error detected while processing modelines" message should have an
+ error number.
+7 The message in bt_dontwrite_msg() could be clearer.
+8 Unix: When libcall() fails there is no clear error message. Johannes
+ Zellner has a patch for this.
+8 The script ID that is stored with an option and displayed with ":verbose
+ set" isn't reset when the option is set internally. For example when
+ 'foldlevel' is set from 'foldlevelstart'.
+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
+ swap file. Then using ":write" (without making any changes) doesn't give
+ a warning either. Should check for an existing swap file without creating
+ one.
+7 On MS-DOS or MS-Windows, when editing the same file over a network, the
+ drive letter is different, thus an existing swap file doesn't generate a
+ warning. Use some flag to indicate the swap file is in the same directory
+ as the original file? Could make b0_fname[] start with a special
+ character like ">".
+7 When 'showbreak' is set, the amount of space a Tab occupies changes.
+ Should work like 'showbreak' is inserted without changing the Tabs.
+7 When there is a "help.txt" window in a session file, restoring that
+ session will not get the "LOCAL ADDITIONS" back.
+7 When 'mousefocus' is set and switching to another window with a typed
+ command, the mouse pointer may be moved to a part of the window that's
+ covered by another window and we lose focus. Only move in the y
+ direction, not horizontally?
+8 When using CTRL-D after ":help", restrict the number of matches to a
+ thousand, otherwise using CTRL-D without an argument takes too long.
+8 ":hardcopy":
+ - Patch to append CTRL-D to PostScript output (Mike Williams, 2004 Jun 11)
+ - Using the cterm_color[] table is wrong when t_colors is > 16.
+ - Need to handle unprintable characters.
+ - Win32: On a B&W printer syntax highlighting isn't visible. Perform
+ dithering to make grey text?
+ - support printing multi-byte characters. Patch from Motonobu Ichimura.
+ New (better) patch from Mike Williams (2004 Jan 20)
+ - Add a flag in 'printoptions' to add an empty page to make the total
+ number even. "addempty"? (Mike Williams)
+ - Should interpreted CTRL-L as a page break.
+ - Grey line numbers are not always readable. Add field in 'printoptions'.
+ Default to black when no syntax highlighting.
+ - Be able to print a window in diff mode.
+ - Be able to specify a colorscheme to use for printing. And a separate
+ one for B&W printing (if that can be detected).
+8 In Visual block mode with 'lbr' set, a change command doesn't insert the
+ text in following lines where the linebreak changes.
+9 dosinst.c: The DJGPP version can't uninstall the Uninstall registry key on
+ Windows NT. How to install a .inf file on Windows NT and how to detect
+ that Windows NT is being used?
+8 When opening the same file on Unix and on MS-Windows, there is no
+ ATTENTION message, because the path in the swap file is different. Using
+ a relative path name will cause no ATTENTION for Vim 5.8.
+ Somehow add a flag that the swap file is in the same dir as the file?
+8 When 'virtualedit' is "block,insert" and encoding is "utf-8", selecting a
+ block of one double-wide character, then "d" deletes only half of it.
+8 When 'virtualedit' is set, should "I" in blockwise visual mode also insert
+ in lines that don't extend into the block?
+8 With 'virtualedit' set, in Insert mode just after the end of line, CTRL-O
+ yh does not yank the last character of the line. (Pavel Papushev)
+ Doing "hl" first appears to make it work.
+8 With 'virtualedit' set it's possible to move into the blank area from
+ 'linebreak'.
+8 With 'virtualedit' set and 'selection' "exclusive", a Visual selection
+ that ends in or after a tab, "d" doesn't delete (part of) the tab.
+ (Helmut Stiegler)
+8 With 'virtualedit' set, a blockwise Visual selection that starts and ends
+ in a tab, "<" shifts too much. (Helmut Stiegler)
+9 When jumping to a tag, the search pattern is put in the history. When
+ 'magic' is on, the pattern may not work. Translate the pattern depending
+ on p_magic when putting it in the history? Alternative: Store value of
+ 'magic' in history. (Margo)
+9 optwin.vim: Restoring a mapping for <Space> or <CR> is not correct for
+ ":noremap". Add "mapcmd({string}, {mode})? Use code from ":mkexrc".
+9 incsearch is incorrect for "/that/<Return>/this/;//" (last search pattern
+ isn't updated).
+9 term_console is used before it is set (msdos, Amiga).
+9 Get out-of-memory for ":g/^/,$s//@/" on 1000 lines, this is not handled
+ correctly. Get many error messages while redrawing the screen, which
+ cause another redraw, etc.
+8 [<C-I> doesn't work when '*' is in 'iskeyword'. find_pattern_in_path()
+ must escape special characters in the pattern.
+8 Vim can overwrite a read-only file with ":w!". ":w" can't overwrite an
+ existing file, "w!" can, but perhaps not a read-only file? Then use
+ ":w!!" for that.
+ Or ask for permission to overwrite it (if file can be made writable) and
+ restore file to readonly afterwards.
+7 When compiled with "xterm_clipboard", startup can be slower and might get
+ error message for invalid $DISPLAY. Try connecting to the X server in the
+ background (forked), so that Vim starts up quicker? Connect as soon as
+ the clipboard is to be used (Visual select mode starts, paste from
+ clipboard)
+7 X11: Some people prefer to use CLIPBOARD instead of PRIMARY for the normal
+ selection. Add an "xclipboard" argument to the 'clipboard' option? (Mark
+ Waggoner)
+8 For xterm need to open a connection to the X server to get the window
+ title, which can be slow. Can also get the title with "<Esc>[21t", no
+ need to use X11 calls. This returns "<Esc>]l{title}<Esc>\".
+8 Wh