Contents:
Author and History
Important Command-Line Arguments
Online Help and Other Documentation
Initialization
Multiwindow Editing
GUI Interfaces
Extended Regular Expressions
Improvements for Editing
Programming Assistance
Interesting Features
Sources and Supported Operating Systems
nvi is short for "new vi." It was developed initially at the University of California at Berkeley (UCB), home of the famous BSD (Berkeley Software Distribution) versions of UNIX. It was used for writing this chapter.
The original vi was developed at UCB in the late 1970s by Bill Joy, then a computer science graduate student, and now a founder and vice president of Sun Microsystems.
Bill Joy first built ex, starting with and heavily enhancing the Sixth Edition ed editor. The first enhancement was open mode, done with Chuck Haley. Between 1976 and 1979 ex evolved into vi. Mark Horton then came to Berkeley, added macros "and other features,"[1] and did much of the work on vi to make it work on a large number of terminals and UNIX systems. By 4.1BSD (1981), the editor already had essentially all of the features described in Part I of this book.
[1] From the nvi reference manual. Unfortunately, it does not say which features.
Despite all of the changes, vi's core was (and is) the original UNIX ed editor. As such, it was code that could not be freely distributed. By the early 1990s, when they were working on 4.4BSD, the BSD developers wanted a version of vi that could be freely distributed in source code form.
Keith Bostic of UCB started with elvis 1.8,[2] which was a freely distributable vi clone, and began turning it into a "bug for bug compatible" clone of vi. nvi also complies with the POSIX Command Language and Utilities Standard (IEEE P1003.2) where it makes sense to do so.
[2] Although little or no original elvis code is left.
Although no longer affiliated with UCB, Keith Bostic continues to maintain, enhance, and distribute nvi. The version current at the time of this writing is nvi 1.79.
nvi is important because it is the "official" Berkeley version of vi. It is part of 4.4BSD-Lite II, and is the vi version used on the various popular BSD variants such as NetBSD and FreeBSD.