diff --git a/usr.bin/vi/README b/usr.bin/vi/README new file mode 100644 index 00000000000..5bece992908 --- /dev/null +++ b/usr.bin/vi/README @@ -0,0 +1,200 @@ +# @(#)README 8.84 (Berkeley) 8/15/94 + +This is the README for version 1.32 of nex/nvi, a freely redistributable +replacement for the Berkeley ex and vi text editors. The compressed or +gzip'd archive, for this and future versions, can be retrieved by using +anonymous ftp to ftp.cs.berkeley.edu, from the file ucb/4bsd/nvi.tar.Z, +or ucb/4bsd/nvi.tar.gz. + +If you have any questions about 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 Redistribution: + +This software is copyrighted by the The Regents of the University of +California, but may be freely redistributed (or sold, or used to line +your birdcage) under the following conditions: + +/*- + * Copyright (c) 1991, 1992, 1993, 1994 + * 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. + */ + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +o Credit where it's due: + + 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. + + POSIX 1003.2 style regular expression support is courtesy of + Henry Spencer, for which I am *very* grateful. + + The curses library was originally done by Ken Arnold. Scrolling + and general reworking for 4.4BSD was done by Elan Amir. + +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 mostly 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 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: + +Code fixes are appreciated, of course, but if you can't provide them, +please email me as much information as you can as to how to 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. + +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 + (EXININT, NEXINIT) values. (Cutting and pasting the output + of ":set all" is usually sufficient.) + +If you're running a memory checker (e.g. Purify) on nvi, you will want +to recompile everything with "-DPURIFY" in the CFLAGS, first. By +default, allocated pages are not initialized by the DB code, and they +will show up as reads of uninitialized memory in the buffer write routines. + +=-=-=-=-=-=-=-=-=-=-= +o Directory layout: + +nvi/USD.doc: + 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.