#	@(#)README	8.135 (Berkeley) 5/18/96

This is the README for nex/nvi, a freely redistributable replacement for
the ex/vi text editors originally distributed as part of the Fourth
Berkeley Software Distribution (4BSD), by the University of California,
Berkeley.

The source code for nex/nvi can be retrieved by using anonymous ftp to
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
	bostic@cs.berkeley.edu

Keith Bostic

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
o This software is several years old and is the product of many folks' work.  

	This software was originally derived from software contributed to
	the University of California, Berkeley by Steve Kirkendall, the
	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
	Henry Spencer, for which I am *very* grateful.

	Elan Amir did the original 4BSD curses work that made it possible
	to support a full-screen editor using curses.

	George Neville-Neil added the Tcl interpreter, and the initial
	interpreter design was his.

	Sven Verdoolaege added the Perl5 interpreter.

o Many, many people provided enhancements, bug reports and testing, far too
  many to individually thank.

o From the original vi acknowledgements, by William Joy and Mark Horton:

	Bruce Englar encouraged the early development of this display
	editor.  Peter Kessler helped bring sanity to version 2's
	command layout.  Bill Joy wrote versions 1 and 2.0 through 2.7,
	and created the framework that users see in the present editor.
	Mark Horton added macros and other features and made the editor
	work on a large number of terminals and Unix systems.

o And...
	The financial support of UUNET Communications Services is gratefully
	acknowledged.

=-=-=-=-=-=-=-=-=-=-=
o Status:

This software is in beta test, and it's pretty stable.  Almost all of the
historic functionality in ex/vi is there, the only major missing pieces
are open mode and the lisp option.  (Also, the options hardtabs, optimize,
redraw, and slowopen are recognized, but ignored.)

Nvi is largely 8-bit clean.  This isn't difficult to fix, and was left in
during initial development to keep things simple.  Wide character support
will be integrated at the same time that it is made fully 8-bit clean.

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
(USD.doc/vi.ref/vi.ref.txt, USD.doc/vi.ref/vi.ref.ps) has more information.

=-=-=-=-=-=-=-=-=-=-=
o Debugging:

Code fixes are greatly appreciated, of course, but if you can't provide
them, please email me as much information as you can as to how I might
reproduce the bug, and I'll try to fix it locally.  Stack traces of core
dumps are only rarely helpful -- an example file with a set of keystrokes
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;

	o The version of nvi you're running (use :version to get it).
	o The row/column dimensions of the screen (80 x 32).
	o Unless you're confident that they're not part of the problem,
	  your startup files (.exrc, .nexrc) and the environment variable
	  (EXINIT, NEXINIT) values.  (Cutting and pasting the output
	  of ":set all" is usually sufficient.)

If you want to do your own debugging, recompile the program with DEBUG
defined.  (Configuring with --enable-debug will do this for you.)  This
turns on the additional command-line option -D, that takes either s or w
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
want to  recompile everything with "-DPURIFY" set in the CFLAGS.  This
initializes allocated pages in the DB code, and free's allocated memory
at the end of the nvi execution.
