119304SpeterList of things that should be added: 219304Speter=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 319304Speter 419304Speter+ X11 (Tk, Motif, Xaw) interface. 519304Speter+ Interpreted language (Perl, Scheme, Tcl/Rush, Python) 619304Speter+ Additional ports: Windows, Windows NT, MSDOS 719304Speter+ Forms editing package; use RE's to verify field contents. 819304Speter+ Internationalization, including wide character and multibyte support. 919304Speter+ Support for single line window editing, including full editing 1019304Speter capability on the vi colon command line. 1119304Speter+ Rob Pike's sam style RE's. 1219304Speter+ Right-to-left and bottom to top text support. 1319304Speter+ Quitall command, to leave all windows. A ! will force the quit. 1419304Speter 1519304SpeterList of suggested features: 1619304Speter=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 1719304Speter+ It would be nice to have the completion mechanism found in tcsh versions 1819304Speter >= 6.03. For instance, the completion for the `:cd' command will be 1919304Speter directories only. The completion for the `:set' command will be all 2019304Speter options not set at that moment, and for `:set un' will be all options 2119304Speter that are set at that moment. The completion for `:< count' will be the 2219304Speter flags. 2319304Speter 2419304Speter+ Add an command-line option to initially split the screen based on the 2519304Speter number of file arguments, e.g., "nvi -a file1 file2" would initialize 2619304Speter a two edit-buffer display. 2719304Speter 2819304Speter+ Add a "push" command that would push a file on the tags stack. 2919304Speter (Essentially make tags a special case of the stack, and make 3019304Speter the stack more general purpose.) 3119304Speter 3219304Speter+ Make :script just run a command and edit the output, and :interactive, 3319304Speter which allows interactive shell session, instead of just the current 3419304Speter :script. 3519304Speter 3619304Speter+ Add tagging information to the man page so that users can display 3719304Speter the part of the man page that discusses the command in which they're 3819304Speter interested. 3919304Speter 4019304Speter+ Add a zone option so that you can declare that top/bottom few lines 4119304Speter of the screen aren't filled except by accident, so that the text 4219304Speter you ask for is always concentrated in the center of the screen. 4319304Speter 4419304Speter+ Change 4519304Speter :di[splay] tags -> :tags 4619304Speter :di[splay] screens -> :screens 4719304Speter :di[splay] buffers -> :buffers 4819304Speter 4919304Speter+ A macro record function. Add the ability to record a sequence 5019304Speter of keystrokes into a named buffer for later use. Handy when 5119304Speter you're trying to build a semi-complex macro. 5219304Speter 5319304Speter+ The semantics of :split, :bg, and :fg aren't right. Someone needs to 5419304Speter rethink how they should interact. The main problem arises when users 5519304Speter want to get a window into a new file. Currently, the necessary sequence 5619304Speter is ":split newfile|^W|:bg". It would be nice if you could simply 5719304Speter background the current screen and edit a new one. 5819304Speter 5919304Speter+ An option to turn on a ``quarter plane'' model so that you can 6019304Speter go as far to the right or down as you wish. The File or the 6119304Speter current line is only extended if you actually put down a char at 6219304Speter the new location. Very handy for ascii graphics and tables. 6319304Speter 6419304Speter+ Some way of replacing the command bindings. For this to work 6519304Speter cleanly the notion of a command must be separate from that of a 6619304Speter key. (Simulate the Rand editor?) 6719304Speter 6819304Speter+ Vertical splitting, so you can see files side by side. 6919304Speter 7019304Speter+ Tracking. Two or more files are associated so that when one file 7119304Speter is scrolled up/down/left/right other files track by the same amount. 7219304Speter Tracking may be constrained such that two files only track vertically 7319304Speter or horizontally. This is relatively easy to implement. 7419304Speter 7519304Speter+ A status file so that the next time invocation of the editor returns 7619304Speter to the same place, with the same number of windows etc. In case of 7719304Speter change of the screen size, reasonable defaults are used. For each 7819304Speter window size and location of the window, name of the file and position 7919304Speter in it, any tab settings, any other settings for the window (such as 8019304Speter insert/overwrite mode, auto indent etc). Last search RE and maybe 8119304Speter direction. If a file does not exist the next time you invoke the 8219304Speter editor, its window is left in the same place but with some default 8319304Speter message. 84