📄 todo.txt
字号:
should not be used to trigger a menu (like the Win32 version).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: Athena, Amiga, Mac, VMS, BeOS.8 Commands to enable/disable menu entries. Patch in HierAssist. (Shah)8 Add menu separators for Athena, Amiga, Mac, RISCOS.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 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 the character cell of some fonts is different (ascent/descent), the cursor leaves an underline behind (Hiebert).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 compiled-in highlight defaults allocate colors, which will never be freed. Move them to a startup script? Only use bold and underline for the compiled-in defaults.7 The cursor in an inactive window should be hollow. Currently it's not visible.8 With wrapping lines, clicking below the scrollbar thumb moves more than a screenfull of lines. Adjust the thumb size when lines wrap.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.MSDOS/DJGPP: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 CSI codes to insert modifier mask in input stream? Make this work like in the GUI, but do handle a typed CSI. 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 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)8 DJGPP: ":mode" doesn't work for many modes. Fix "fast" text output functions?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 Makefile.bor can't compile xxd without editing the makefiles. Create a Makefile.bor for xxd.8 Check if with DJGPP 2.01 the problem of a path starting with a backslash is still present.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. Either disallow them or switch to system functions.MSDOS, OS/2 and Win32:8 OS/2: Add backtick expansion. Undefine NO_EXPANDPATH and use gen_expand_wildcards().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 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.Windows 95:8 Editing a file by it's short file name and writing it, makes the long file name disappear. Use Unix method for making a backup file? Better: make the way the backup file is made (copy or rename) an option, not a #define (also needed for OS/2, the icon goes to the backup file). Use FindFirstFile()->cAlternateFileName in fname_case() (George).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 proplems 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 (use ! 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 Add an option (command line?) not to switch console buffers. Required for telnetd (Ford). Change termcap_mode_start() and termcap_mode_end(). Test with ataman telnet daemon or Anzio Lite. Use 'conskey' and/or 'bioskey' options for this? Alternative: Use BIOS screen output like in os_msdos.c.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> modifer doesn't work? 5.3 was OK. (Garcia-Suarez/Guckes)9 Mapping <C-S-Tab> doesn't work correctly.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 When exiting, sends ^M^M^J to the console in raw mode (Webb).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?9 When using libcall() for a function that returns an invalid pointer, Vim crashes. Check for a bad pointer with isBadReadPtr(). (Zeitlin) Doesn't appear to work really, at least check for "1".Amiga: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 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) scrolling (CTRL-L cleans it up). (Benji Fisher)9 In mac_expandpath() check that handling of backslashes is done properly.9 Executable is called "vimPPC" instead of "gvim"? (Amerige)8 Standard Mac buttons and shortcuts are missing. No close button. (Amerige)8 An invocation of gvim hands over control to an existing gvim. (Amerige)8 Handling of non-fixed width fonts is wrong. (Amerige)8 StatusLine and StatusLineNC highlighting isn't right. (Amerige)VMS:9 Make a runtime archive for VMS.8 VMS: Inserts <NL> every 8291 bytes when writing. (Howie) 4.5 didn't have this problem. It's caused by the write() function, need to write() every line separately. It seems read() also returns a single line. Switch I/O to binary mode somehow?7 Lots of code in common with os_unix.c, but many fixes are missing. For example, usage of t_ts and t_fs."Small" problems: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 Viminfo file becomes corrupt when editing a file with a <NL> in the name. (file marks, buffer list, history of marks) (Alexander N.Benner, Wichert Akkerman, Weisselberg) Also problems with buffer menu.9 optwin.vim: Restoring a mapping for <Space> or <CR> is not correct for ":noremap". Add "mapcmd({string}, {mode})? Use code from ":mkexrc".8 When some features are disabled, the related commands cannot check for a following command: ":syntax", ":[id]jump", ":[id]search", "[id]list" and "[id]split". Add special function to check for a trailing argument when the feature is not included.9 When starting gvim in an xterm, Vim sends t_vi and t_ve to the terminal (cursor invisible/visible). Should not happen.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.9 When a library is added twice, it will add to the size of Vim. E.g. for "-lXt". Remove the first one?9 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?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. ":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.8 Buffers menu, when torn-off, disappears when being refreshed.8 Is calling msg_start() in main() really needed? Any printed message should include it already.8 When in Insert mode with 'scrolloff' set, inserting text at the end of the file, "!" lines will stay there while they could be used. (Park)8 When writing an encryption file the extra 12 bytes are not reported, but when reading they are. Be consistent! (Colombo)8 Unix in an xterm: Select something on the cmdline; go back to text; now <S-MiddleMouse> pastes the selection, but <MiddleMouse> doesn't. Xterm first tries getting the primary selection, and if that doesn't work it gets CUT_BUFFER0.8 When owning the PRIMARY selection, also get the CLIPBOARD selection. (Neil Bird) Use the "+ register to access the clipboard? (Bird) Use "unnamed", "clipboard" and "autoselect" in the 'clipboard' option. (Wall) Also copy text to CUT_BUFFER0, but don't do it too often (can be slow when there is a lot of text). Or just recommend xcb?8 When compiled with "xterm_clipboard", startup can be slower and might get error message for invalid $DISPLAY. Use an option to disable connecting to the X server, so that Vim doesn't have to be recompiled for this? Better: Try connecting to the X server in the background (forked), so that Vim starts up quicker.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 "fg" and "bg" don't work in an xterm. Get default colors from xterm with an ESC sequence. See ~/vim/patches/vikas.xtermcolors .8 Add term entries for function keys on xterm with alt and ctrl (new in pl 94). E.g., Control adds ";5" in "<Esc>[20;5~". Find a generic way to prepend a modifier in console mode, to avoid having to specify each individual modified key.8 When the builtin xterm termcap contains codes that are not wanted, need a way to avoid using the builtin termcap.8 '[ and '] should be set to start/end of line when using a linewise operator (e.g., ":w").8 CTRL-A can't handle big "long" numbers, they become negative. Check for
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -