194 lines
7.5 KiB
Plaintext
194 lines
7.5 KiB
Plaintext
|
# @(#)README 8.42 (Berkeley) 1/23/94
|
||
|
|
||
|
This is the README for version 1.03 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.
|