diff options
Diffstat (limited to 'usr.bin/vi/README')
| -rw-r--r-- | usr.bin/vi/README | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/usr.bin/vi/README b/usr.bin/vi/README new file mode 100644 index 000000000000..a33bfc6f04c3 --- /dev/null +++ b/usr.bin/vi/README @@ -0,0 +1,193 @@ +# @(#)README 8.40 (Berkeley) 1/12/94 + +This is the README for version 1.01 of nvi, a freely redistributable +replacement for the vi and ex text editors. It can be retrieved via +anonymous ftp from ftp.uu.net, or from ftp.cs.berkeley.edu. In the +latter, it is in the directory ucb/4bsd, and is named nvi.tar.Z. + +If you have any questions or problems with nvi, please send them to +me by electronic mail at one of the following addresses: + + uunet!bostic + bostic@cs.berkeley.edu + +Keith Bostic + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +o Redistribution: + +Nvi is copyrighted by the The Regents of the University of California, +but may be freely redistributed (or used to line your birdcage) under +the following conditions: + +/*- + * Copyright (c) 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 Comments: + +This software is beta software, although it's pretty stable. Almost +of the necessary functionality for ex/vi is in it, the only missing +pieces are fairly obscure. + +Code fixes are very much appreciated, of course, but if you can't +provide them, please send me as much information as you can as to how +to reproduce the bug, and I'll try to fix it here. In particular, the +screen routines are nasty stuff, and you probably don't want to mess +with them. Stack traces of core dumps are sometimes helpful, but an +example file with a set of keystrokes that causes the problem is far +better. + +Nvi is mostly 8-bit clean. This isn't difficult to fix, and was left in +during initial development to make things easier. Wide character support +will be integrated at the same time it is made fully 8-bit clean. + +=-=-=-=-=-=-=-=-=-=-= +o New features: + +There aren't a lot of new features in nex/nvi, but there are a few things +you might like: + + o 8-bit clean data, practically infinite lines/files. + ^Vx[0-9A-Fa-f]* in input mode will insert any + legal character value. + o Split screens: + :sp[lit] [file ...] splits the screen. + ^W switches between screens. + :resize count grows/shrinks the current screen. + o Background/foreground screens + :bg backgrounds the current screen. + :di[splay] s[creens] lists the hidden screens. + :fg [file] foregrounds the specified (or next) screen. + o Shell screens: + :sc[ript] [file ...] runs a shell in the screen. + Carriage return sends a line to the shell. + o Buffer, screens, tags display: + :di[splay] b[uffers] displays the current cut buffers. + :di[splay] s[creens] displays the hidden screen names. + :di[splay] t[ags] displays the current tags stack. + o Tag stacks: + ^T returns to previous tag location. + :tagpop [number | file] returns to previous tag location, + or, optionally tag #N, or the tag in a specific file. + :tagtop returns to first tag location. + o Infinite undo: + A '.' command immediately after a 'u' command continues + either forward or backward depending on whether the 'u' + command was an undo or a redo. + o Usage information: + :exu[sage] [cmd] for ex commands. + :viu[sage] [key] for vi commands. + :help + o Extended RE expressions: + :set extended turns on extended RE's, so you can + do "/in|or" and search for the next occurrence of + more than one expression. + o Word search: + ^A searches for the word referenced by the cursor. + o Number increment: + # increments the number referenced by the cursor. + o Previous file: + :prev[ious][!] edits the previous file from the + argument list. + +=-=-=-=-=-=-=-=-=-=-= +o Porting information: + +The directory PORT has directories per machine/OS combination, with +V7-style Makefiles which build nvi. See the file PORT/README for +more detailed information. + +=-=-=-=-=-=-=-=-=-=-= +o Directories: + +The main directory, nvi, contains 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 code for adding, deleting, and changing "records" in +the underlying database. + +nvi/docs: + The nvi/docs directory has technical information about data + structures and some of the trickier parts of vi like quoting, + key mapping, input queues, and executing buffers, and a + description of how nvi does edit session recovery. + +nvi/ex: + The nvi/ex directory is 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/sex: + The nvi/sex directory is the screen support for the ex editor. + +nvi/svi: + The nvi/svi directory is the screen support for a curses based + vi editor. + +nvi/vi: + The nvi/vi directory is the vi source code. + +nvi/xaw: + Place reserved for an X11 (Athena Widget) screen. |
