version 1.1, 1995/10/18 08:46:33 |
version 1.2, 1996/05/22 11:33:14 |
|
|
# @(#)README 8.86 (Berkeley) 8/17/94 |
# @(#)README 8.135 (Berkeley) 5/18/96 |
|
|
This is the README for version 1.34 of nex/nvi, a freely redistributable |
This is the README for nex/nvi, a freely redistributable replacement for |
replacement for the Berkeley ex and vi text editors. The compressed or |
the ex/vi text editors originally distributed as part of the Fourth |
gzip'd archives for this and future versions, can be retrieved by using |
Berkeley Software Distribution (4BSD), by the University of California, |
anonymous ftp to ftp.cs.berkeley.edu, from the file ucb/4bsd/nvi.tar.Z, |
Berkeley. |
or ucb/4bsd/nvi.tar.gz. |
|
|
|
If you have any questions about nvi, or problems making it work, please |
The source code for nex/nvi can be retrieved by using anonymous ftp to |
contact me by electronic mail at one of the following addresses: |
ftp.cs.berkeley.edu. The files ucb/4bsd/nvi.tar.Z and ucb/4bsd/nvi.tar.gz |
|
are the compressed and gzip'd archives, respectively, of version 1.34 of |
|
nex/nvi. This version is believed to be stable and reasonably problem |
|
free. The file ucb/4bsd/nvi.ALPHA.1.66.tar.gz is a gzip'd archive of the |
|
current alpha-test release of nex/nvi, version 1.66. This version reflects |
|
the current development tree, and is more likely to have unanticipated |
|
problems. |
|
|
|
See the file build/README for information on building nvi. |
|
|
|
See the file LAYOUT for a description of where everything is. |
|
|
|
If you have any questions about nex/nvi, or problems making it work, |
|
please contact me by electronic mail at one of the following addresses: |
|
|
uunet!bostic |
uunet!bostic |
bostic@cs.berkeley.edu |
bostic@cs.berkeley.edu |
|
|
Keith Bostic |
Keith Bostic |
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
o Redistribution: |
o This software is several years old and is the product of many folks' work. |
|
|
This software is copyrighted by the The Regents of the University of |
This software was originally derived from software contributed to |
California, but may be freely redistributed (or sold, or used to line |
the University of California, Berkeley by Steve Kirkendall, the |
your birdcage) under the following conditions: |
author of the vi clone elvis. Without his work, this work would |
|
have been far more difficult. |
|
|
/*- |
IEEE POSIX 1003.2 style regular expression support is courtesy of |
* Copyright (c) 1991, 1992, 1993, 1994 |
Henry Spencer, for which I am *very* grateful. |
* The Regents of the University of California. All rights reserved. |
|
* |
|
* Redistribution and use in source and binary forms, with or without |
|
* modification, are permitted provided that the following conditions |
|
* are met: |
|
* 1. Redistributions of source code must retain the above copyright |
|
* notice, this list of conditions and the following disclaimer. |
|
* 2. Redistributions in binary form must reproduce the above copyright |
|
* notice, this list of conditions and the following disclaimer in the |
|
* documentation and/or other materials provided with the distribution. |
|
* 3. All advertising materials mentioning features or use of this software |
|
* must display the following acknowledgement: |
|
* This product includes software developed by the University of |
|
* California, Berkeley and its contributors. |
|
* 4. Neither the name of the University nor the names of its contributors |
|
* may be used to endorse or promote products derived from this software |
|
* without specific prior written permission. |
|
* |
|
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
* SUCH DAMAGE. |
|
*/ |
|
|
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
Elan Amir did the original 4BSD curses work that made it possible |
o Credit where it's due: |
to support a full-screen editor using curses. |
|
|
This software was originally derived from software contributed |
George Neville-Neil added the Tcl interpreter, and the initial |
to the University of California, Berkeley by Steve Kirkendall, |
interpreter design was his. |
the author of the vi clone elvis. Without his work, this work |
|
would have been far more difficult. |
|
|
|
POSIX 1003.2 style regular expression support is courtesy of |
Sven Verdoolaege added the Perl5 interpreter. |
Henry Spencer, for which I am *very* grateful. |
|
|
|
The curses library was originally done by Ken Arnold. Scrolling |
o Many, many people provided enhancements, bug reports and testing, far too |
and general reworking for 4.4BSD was done by Elan Amir. |
many to individually thank. |
|
|
o From the original vi acknowledgements, by William Joy and Mark Horton: |
o From the original vi acknowledgements, by William Joy and Mark Horton: |
|
|
|
|
=-=-=-=-=-=-=-=-=-=-= |
=-=-=-=-=-=-=-=-=-=-= |
o Status: |
o Status: |
|
|
This software is in beta test, and it's pretty stable. Almost all of |
This software is in beta test, and it's pretty stable. Almost all of the |
the historic functionality in ex/vi is there, the only major missing |
historic functionality in ex/vi is there, the only major missing pieces |
pieces are open mode and the lisp option. (Also, the options hardtabs, |
are open mode and the lisp option. (Also, the options hardtabs, optimize, |
optimize, redraw, and slowopen are recognized, but ignored.) |
redraw, and slowopen are recognized, but ignored.) |
|
|
Nvi is mostly 8-bit clean. This isn't difficult to fix, and was left |
Nvi is largely 8-bit clean. This isn't difficult to fix, and was left in |
in during initial development to keep things simple. Wide character |
during initial development to keep things simple. Wide character support |
support will be integrated at the same time that it is made fully 8-bit |
will be integrated at the same time that it is made fully 8-bit clean. |
clean. |
|
|
|
There aren't a lot of new features in nex/nvi, but there are a few things |
There aren't a lot of new features in nex/nvi, but there are a few things |
you might like. The "Additional Features" section of the reference page |
you might like. The "Additional Features" section of the reference page |
(USD.doc/vi.ref/vi.ref.txt, USD.doc/vi.ref/vi.ref.ps) has more information. |
(USD.doc/vi.ref/vi.ref.txt, USD.doc/vi.ref/vi.ref.ps) has more information. |
|
|
=-=-=-=-=-=-=-=-=-=-= |
=-=-=-=-=-=-=-=-=-=-= |
o Porting information: |
|
|
|
The directory "PORT" has directories for specific OS/machine combinations, |
|
including V7-style Makefiles, for building nex/nvi on different machines. |
|
See the file PORT/README for detailed information. |
|
|
|
=-=-=-=-=-=-=-=-=-=-= |
|
o Debugging: |
o Debugging: |
|
|
Code fixes are appreciated, of course, but if you can't provide them, |
Code fixes are greatly appreciated, of course, but if you can't provide |
please email me as much information as you can as to how to reproduce |
them, please email me as much information as you can as to how I might |
the bug, and I'll try to fix it locally. Stack traces of core dumps |
reproduce the bug, and I'll try to fix it locally. Stack traces of core |
are only rarely helpful -- an example file with a set of keystrokes that |
dumps are only rarely helpful -- an example file with a set of keystrokes |
causes the problem is almost invariably necessary. |
that causes the problem is almost invariably necessary. I know it's |
|
annoying, but simply playing with the bug until you can reproduce it at |
|
will with minimal keystrokes is immensely helpful to me. |
|
|
Please include the following in the bug report; |
Please include the following in the bug report; |
|
|
|
|
o The row/column dimensions of the screen (80 x 32). |
o The row/column dimensions of the screen (80 x 32). |
o Unless you're confident that they're not part of the problem, |
o Unless you're confident that they're not part of the problem, |
your startup files (.exrc, .nexrc) and the environment variable |
your startup files (.exrc, .nexrc) and the environment variable |
(EXININT, NEXINIT) values. (Cutting and pasting the output |
(EXINIT, NEXINIT) values. (Cutting and pasting the output |
of ":set all" is usually sufficient.) |
of ":set all" is usually sufficient.) |
|
|
If you're running a memory checker (e.g. Purify) on nvi, you will want |
If you want to do your own debugging, recompile the program with DEBUG |
to recompile everything with "-DPURIFY" in the CFLAGS, first. By |
defined. (Configuring with --enable-debug will do this for you.) This |
default, allocated pages are not initialized by the DB code, and they |
turns on the additional command-line option -D, that takes either s or w |
will show up as reads of uninitialized memory in the buffer write routines. |
as an argument. The option -Ds causes nvi to ignore the EXINIT and |
|
.exrc files on startup, and -Dw causes nvi to print out the process id |
|
and wait for you to enter a <carriage-return> to continue. |
|
|
=-=-=-=-=-=-=-=-=-=-= |
If you're running a memory checker (e.g. Purify) on nvi, you will first |
o Directory layout: |
want to recompile everything with "-DPURIFY" set in the CFLAGS. This |
|
initializes allocated pages in the DB code, and free's allocated memory |
nvi/USD.doc: |
at the end of the nvi execution. |
Ex/vi documentation, both historic and current. |
|
|
|
edit/ Roff source for "Edit: A tutorial", USD:14 in the |
|
4.3BSD manuals. |
|
ex/ Roff source for "Ex Reference Manual -- Version |
|
3.7", USD:16 in the 4.3BSD manuals. |
|
vi/ Roff source for "An Introduction to Display |
|
Editing with Vi", USD:15 in the 4.3BSD manuals. |
|
Includes the "Vi Quick Reference" card. |
|
vi.man/ Manual page for nex/nvi; an updated version of |
|
the document distributed with 4.4BSD-Lite. |
|
vi.ref/ Reference document for nex/nvi; an updated version |
|
of the document distributed with 4.4BSD-Lite. |
|
|
|
nvi/common: |
|
Source files for pieces of code that are shared by all the editors, |
|
like searching and logging code or code translating line numbers |
|
into requests to the dbopen(3) database code. It also has the |
|
interface code for modifying "records" in the underlying database. |
|
|
|
nvi/docs: |
|
Random nvi documentation: |
|
|
|
README -- Nvi main README file. |
|
bugs.current -- Major known bugs in the current nvi. |
|
changelog -- Log of changes from version to version. |
|
features -- Todo list, suggested features list. |
|
internals/ |
|
autowrite -- Vi autowrite option discussion. |
|
gdb.script -- GDB debugging scripts. |
|
input -- Vi maps, executable buffers, and input discussion. |
|
quoting -- Vi quoting discussion. |
|
structures -- Out-of-date nvi internal structure description. |
|
tutorial/ -- Historic vi tutorial(s), of unknown quality. |
|
|
|
nvi/ex: |
|
The ex source code. Because vi has the colon command, lots of |
|
this code is used by vi. Generally, if functionality is shared |
|
by both ex and vi, it's in nvi/ex. If it's vi only, it's in |
|
nvi/vi. Files are generally named by the command(s) they support, |
|
but occasionally with a name that describes their functionality. |
|
|
|
nvi/install: |
|
Things to install on the local system. |
|
|
|
recover.script -- Vi recovery script. |
|
|
|
nvi/PORT: |
|
Porting directories, one per OS/architecture combination. See |
|
nvi/PORT/README for porting information. |
|
|
|
curses/ -- 4.4BSD curses implementation |
|
db/ -- 4.4BSD DB routines. |
|
regex/ -- Henry Spencer's POSIX.2 RE support. |
|
|
|
nvi/sex: |
|
The screen support for the ex editor. |
|
|
|
nvi/svi: |
|
The screen support for a curses based vi editor. |
|
|
|
nvi/vi: |
|
The vi source code. |
|
|
|
nvi/xaw: |
|
Place reserved for an X11 (Athena Widget) screen. |
|