summaryrefslogtreecommitdiff
path: root/usr.bin/vi/docs/features
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/vi/docs/features')
-rw-r--r--usr.bin/vi/docs/features87
1 files changed, 87 insertions, 0 deletions
diff --git a/usr.bin/vi/docs/features b/usr.bin/vi/docs/features
new file mode 100644
index 00000000000..ed785644a10
--- /dev/null
+++ b/usr.bin/vi/docs/features
@@ -0,0 +1,87 @@
+List of things that should be added:
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
++ X11 (Tk, Motif, Xaw) interface.
++ Interpreted language (Perl5, Scheme, Tcl)
++ Ports: Windows, Windows NT, MSDOS
++ Message catalogs.
++ Forms editing package; use RE's to verify field contents.
++ Internationalization, including wide character support.
++ Support for single line window editing, including full editing
+ capability on the vi colon command line.
++ Rob Pike's sam style RE's.
+
+List of suggested features:
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++ Filename completion. While on the subject of completion, it would be
+ nice to have the completion mechanism found in tcsh version >= 6.03.
+ For instance, the completion for the `:cd' command will be directories
+ only. The completion for the `:set' command will be all options not
+ set at that moment, and for `:set un' will be all options that are set
+ at that moment. The completion for `:< count' will be the flags.
+
++ Add a "push" command that would push a file on the tags stack.
+ (Essentially make tags a special case of the stack, and make
+ the stack more general purpose.)
+
++ Make :script just run a command and edit the output, and :interactive,
+ which allows interactive shell session, instead of just the current
+ :script.
+
++ Add versioning based on a "set version" variable, that would
+ create backup copies when the file was written back, i.e. the
+ ":w" and autowrite's would copy the original.
+
++ Add tagging information to the man page so that users can display
+ the part of the man page that discusses the command in which they're
+ interested.
+
++ Add a zone option so that you can declare that top/bottom few lines
+ of the screen aren't filled except by accident, so that the text
+ you ask for is always concentrated in the center of the screen.
+
++ Add "set searchdir" for a list of directories to look in for
+ files to edit. The semantic is that ":e foo" is replaced with
+ the file name that is found, so there's no confusion as to
+ which file is written.
+
++ Change
+ :di[splay] tags -> :tags
+ :di[splay] screens -> :screens
+ :di[splay] buffers -> :buffers
+
++ A macro record function. Add the ability to record a sequence
+ of keystrokes into a named buffer for later use. Handy when
+ you're trying to build a semi-complex macro.
+
++ The semantics of :split, :bg, and :fg aren't right. Someone needs to
+ rethink how they should interact. The main problem arises when users
+ want to get a window into a new file. Currently, the necessary sequence
+ is ":split newfile|^W|:bg". It would be nice if you could simply
+ background the current screen and edit a new one.
+
++ An option to turn on a ``quarter plane'' model so that you can
+ go as far to the right or down as you wish. The File or the
+ current line is only extended if you actually put down a char at
+ the new location. Very handy for ascii graphics and tables.
+
++ Some way of replacing the command bindings. For this to work
+ cleanly the notion of a command must be separate from that of a
+ key. (Simulate the Rand editor?)
+
++ Vertical splitting, so you can see files side by side.
+
++ Tracking. Two or more files are associated so that when one file
+ is scrolled up/down/left/right other files track by the same amount.
+ Tracking may be constrained such that two files only track vertically
+ or horizontally. This is relatively easy to implement.
+
++ A status file so that the next time invocation of the editor returns
+ to the same place, with the same number of windows etc. In case of
+ change of the screen size, reasonable defaults are used. For each
+ window size and location of the window, name of the file and position
+ in it, any tab settings, any other settings for the window (such as
+ insert/overwrite mode, auto indent etc). Last search RE and maybe
+ direction. If a file does not exist the next time you invoke the
+ editor, its window is left in the same place but with some default
+ message.