set V_RCM_SET for ^ and -, so that any command motion is preserved
[nvi.git] / README
blob3d8df2fa7e15e8227dc944068cf9721bc8ffa4cd
1 #       $Id: README,v 8.38 1994/01/08 16:55:20 bostic Exp $ (Berkeley) $Date: 1994/01/08 16:55:20 $
3 This is the README for version 1.00 of nex/nvi, a (soon to be) freely
4 redistributable replacement for the vi/ex text editors.
6 This is still ALPHA software, please do not redistribute it without
7 talking to me first.  It can be retrieved via anonymous ftp from
8 vangogh.cs.berkeley.edu:~ftp/hidden/nvi.tar.Z.
10 A BETA version will be released RSN, and it will be redistributable
11 as you choose.  The beta version and future versions of this software
12 will be available by anonymous ftp from ftp.cs.berkeley.edu, in the
13 file ucb/4bsd/nvi.tar.Z, or from ftp.uu.net.
15 If you have any questions or problems with nvi, please send them to
16 me by email at one of the following email addresses:
18         uunet!bostic
19         bostic@cs.berkeley.edu
21 Keith Bostic
22 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
24 o Credit where it's due:
26         This software was originally derived from software contributed
27         to the University of California, Berkeley by Steve Kirkendall,
28         the author of the vi clone elvis.  Without his work, this work
29         would have been far more difficult.
31         POSIX 1003.2 style regular expression support is courtesy of
32         Henry Spencer, for which I am *very* grateful.
34         The reworked 4BSD curses implementation was done by Elan Amir
35         while at the University of California, Berkeley.
37 o From the original vi acknowledgements, by William Joy and Mark Horton:
39         Bruce Englar encouraged the early development of this display
40         editor.  Peter Kessler helped bring sanity to version 2's
41         command layout.  Bill Joy wrote versions 1 and 2.0 through 2.7,
42         and created the framework that users see in the present editor.
43         Mark Horton added macros and other features and made the editor
44         work on a large number of terminals and Unix systems.
46 o And...
48         The financial support of UUNET Communications Services is
49         gratefully acknowledged.
51 =-=-=-=-=-=-=-=-=-=-=
52 o Comments:
54 This software is alpha software, although it's pretty stable.  I believe
55 that almost all of the necessary functionality for ex/vi is in it, now.
57 Code fixes are, of course, very much appreciated, but if you don't have
58 time, please send me as much information as you can as to how to
59 reproduce the bug, and I'll fix it here.  In particular, the screen
60 routines are nasty stuff, and you probably don't want to mess with them.
61 Stack traces of core dumps are helpful, but an example file with a set
62 of keystrokes is far better.
64 Nvi is mostly 8-bit clean.  This isn't difficult to fix, and was left in
65 during initial development to make things easier.  Wide character support
66 will be integrated at the same time it is made fully 8-bit clean.
68 =-=-=-=-=-=-=-=-=-=-=
69 o New features:
71 There aren't a lot of new features in nex/nvi, but there are a few
72 things you might like:
74         o 8-bit clean data, practically infinite lines/files.
75                 ^Vx[0-9A-Fa-f]* in input mode will insert any
76                 legal character value.
77         o Split screens:
78                 :sp[lit] [file ...] splits the screen.
79                 ^W switches between screens.
80                 :resize count grows/shrinks the current screen.
81         o Background/foreground screens
82                 :bg backgrounds the current screen.
83                 :di[splay] s[creens] lists the hidden screens.
84                 :fg [file] foregrounds the specified (or next) screen.
85         o Shell screens:
86                 :sc[ript] [file ...] runs a shell in the screen.
87                 Carriage return sends a line to the shell.
88         o Buffer, screens, tags display:
89                 :di[splay] b[uffers] displays the current cut buffers.
90                 :di[splay] s[creens] displays the hidden screen names.
91                 :di[splay] t[ags] displays the current tags stack.
92         o Tag stacks:
93                 ^T returns to previous tag location.
94                 :tagpop [number | file] returns to previous tag location,
95                      or, optionally tag #N, or the tag in a specific file.
96                 :tagtop returns to first tag location.
97         o Infinite undo:
98                 :set nundo toggles this behavior.
99                 u un-does the previous operation.
100                 U re-does the next operation.
101         o Usage information:
102                 :exu[sage] [cmd] for ex commands.
103                 :viu[sage] [key] for vi commands.
104                 :help
105         o Extended RE expressions:
106                 :set extended turns on extended RE's, so you can
107                     do "/in|or" and search for the next occurrence of
108                     more than one expression.
109         o Word search:
110                 ^A searches for the word referenced by the cursor.
111         o Number increment:
112                 # increments the number referenced by the cursor.
113         o Previous file:
114                 :prev[ious][!] edits the previous file from the
115                 argument list.
117 =-=-=-=-=-=-=-=-=-=-=
118 o Porting information:
120 The directory PORT has directories per machine/OS combination, with
121 old-style Makefiles which build nvi.  See the file PORT/README for
122 more detailed information.
124 =-=-=-=-=-=-=-=-=-=-=
125 o Directories:
127 The main directory, nvi, contains source files for pieces of code that
128 are shared by all the editors, like searching and logging code or code
129 translating line numbers into requests to the dbopen(3) database code.
130 It also has the code for adding, deleting, and changing "records" in
131 the underlying database.
133 nvi/docs:
134         The nvi/docs directory has technical information about data
135         structures and some of the trickier parts of vi like quoting,
136         key mapping, input queues, and executing buffers, and a
137         description of how nvi does edit session recovery.
139 nvi/ex:
140         The nvi/ex directory is the ex source code.  Because vi has the
141         colon command, lots of this code is used by vi.  Generally, if
142         functionality is shared by both ex and vi, it's in nvi/ex, if
143         it's vi only, it's in nvi/vi.  Files are generally named by the
144         command(s) they support, but occasionally with a name that
145         describes their functionality.
147 nvi/sex:
148         The nvi/sex directory is the screen support for the ex editor.
150 nvi/svi:
151         The nvi/svi directory is the screen support for a curses based
152         vi editor.
154 nvi/vi:
155         The nvi/vi directory is the vi source code.
157 nvi/xaw:
158         Place reserved for an X11 (Athena Widget) screen.