Nvi

Last updated
nvi
Stable release
1.81.6 [1]   OOjs UI icon edit-ltr-progressive.svg / 18 November 2007
Repository repo.or.cz/nvi.git
License BSD-3-Clause [2]
Website sites.google.com/a/bostic.com/keithbostic/the-berkeley-vi-editor-home-page

nvi (new vi) is a re-implementation of the classic Berkeley text editor, ex/vi, traditionally distributed with BSD and, later, Unix systems. It was originally distributed as part of the Fourth Berkeley Software Distribution (4BSD).

Contents

Due to licensing disputes between AT&T and the Computer Systems Research Group (CSRG) at the University of California, Berkeley, the CSRG was required to replace all Unix-derived portions of BSD source with new and unencumbered code. nvi was one of many components rewritten, despite the fact that the original vi was from UC Berkeley. AT&T had a legal claim over the license.

Credits and distribution

nvi was written by Keith Bostic. It is the default vi on all major BSD systems (NetBSD, OpenBSD, and FreeBSD) as well as MINIX. [3]

It was originally derived from the first incarnation of elvis, written by Steve Kirkendall, as noted in the README file included in nvi's sources.

Sven Verdoolaege added support for Unicode in 2000. [4] He also has been developing a GTK+ front end for nvi, but this effort seems to have stalled. The aspects of nvi that are still marked preliminary or unimplemented are, for the time being, likely to remain that way.

BSD projects continue to use nvi version 1.79 due to licensing differences between Berkeley Database 1.85 and the later versions by Sleepycat Software. nvi is unusual because it uses a database to store the text as it is being edited. Sven Verdoolaege's changes after version 1.79 use locking features not available in the Berkeley DB 1.85 database. Reportedly, changes to nvi after 1.79 make it less vi-compatible.[ citation needed ]

nvi can vary subtly across the BSDs.

nvi is only available on POSIX/Unix platforms due to its reliance on the curses/ncurses library. [5]

An unmaintained, multilingual version by the late Jun-ichiro itojun Hagino is available as nvi-m17n. [6] [7]

A currently-maintained, multibyte version is available as nvi2, and is the default vi on DragonFly BSD. [8]

See also

Related Research Articles

Berkeley DB (BDB) is an embedded database software library for key/value data, historically significant in open source software. Berkeley DB is written in C with API bindings for many other programming languages. BDB stores arbitrary key/data pairs as byte arrays, and supports multiple data items for a single key. Berkeley DB is not a relational database, although it has database features including database transactions, multiversion concurrency control and write-ahead logging. BDB runs on a wide variety of operating systems including most Unix-like and Windows systems, and real-time operating systems.

<span class="mw-page-title-main">KornShell</span> Bourne shell backward compatible Unix shell created by David Korn

KornShell (ksh) is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14, 1983. The initial development was based on Bourne shell source code. Other early contributors were Bell Labs developers Mike Veach and Pat Sullivan, who wrote the Emacs and vi-style line editing modes' code, respectively. KornShell is backward-compatible with the Bourne shell and includes many features of the C shell, inspired by the requests of Bell Labs users.

ncurses Text-based user interface API

ncurses is a programming library providing an application programming interface (API) that allows the programmer to write text-based user interfaces (TUI) in a terminal-independent manner. It is a toolkit for developing "GUI-like" application software that runs under a terminal emulator. It also optimizes screen changes, in order to reduce the latency experienced when using remote shells.

<span class="mw-page-title-main">Vim (text editor)</span> Improved version of the Vi keyboard-oriented text editor

Vim is a free and open-source, screen-based text editor program. It is an improved clone of Bill Joy's vi. Vim's author, Bram Moolenaar, derived Vim from a port of the Stevie editor for Amiga and released a version to the public in 1991. Vim is designed for use both from a command-line interface and as a standalone application in a graphical user interface. Since its release for the Amiga, cross-platform development has made it available on many other systems. In 2018, it was voted the most popular editor amongst Linux Journal readers; in 2015 the Stack Overflow developer survey found it to be the third most popular text editor, and in 2019 the fifth most popular development environment.

vi (text editor) Keyboard-oriented text editor

vi is a screen-oriented text editor originally created for the Unix operating system. The portable subset of the behavior of vi and programs based on it, and the ex editor language supported within these programs, is described by the Single Unix Specification and POSIX.

<span class="mw-page-title-main">386BSD</span> Operating system

386BSD is a discontinued operating system based on the Berkeley Software Distribution (BSD) that was developed by couple Lynne and William Jolitz. Released on March 17, 1992, it was the first fully operational Unix operating system to be completely free and open source.

Revision Control System (RCS) is an early implementation of a version control system (VCS). It is a set of UNIX commands that allow multiple users to develop and maintain program code or documents. With RCS, users can make their own revisions of a document, commit changes, and merge them. RCS was originally developed for programs but is also useful for text documents or configuration files that are frequently revised.

<span class="mw-page-title-main">Acme (text editor)</span>

Acme is a text editor and graphical shell from the Plan 9 from Bell Labs operating system, designed and implemented by Rob Pike. It can use the Sam command language. The design of the interface was influenced by Oberon. It is different from other editing environments in that it acts as a 9P server. A distinctive element of the user interface is mouse chording.

curses (programming library) Terminal control library enabling construction of text user interfaces

curses is a terminal control library for Unix-like systems, enabling the construction of text user interface (TUI) applications.

<span class="mw-page-title-main">Computer Systems Research Group</span> Former American research group at University of California, Berkeley

The Computer Systems Research Group (CSRG) was a research group at the University of California, Berkeley that was dedicated to enhancing AT&T Unix operating system and funded by Defense Advanced Research Projects Agency.

<span class="mw-page-title-main">Keith Bostic (software engineer)</span> American software engineer

Keith Bostic is an American software engineer and one of the key people in the history of Berkeley Software Distribution (BSD) Unix and open-source software.

BSD/OS is a discontinued proprietary version of the BSD operating system developed by Berkeley Software Design, Inc. (BSDi).

<span class="mw-page-title-main">Berkeley Software Design</span>

Berkeley Software Design, Inc., was a corporation which developed, sold licenses for, and supported BSD/OS, a commercial and partially proprietary variant of the BSD Unix operating system for PC compatible computer systems. The name was chosen for its similarity to "Berkeley Software Distribution" the source of its primary product.

<span class="mw-page-title-main">Elvis (text editor)</span> Enhanced clone of the vi text editor

Elvis is an enhanced clone of the vi text editor, first released in January 1990. It introduced several new features, including syntax highlighting and built-in support for viewing nroff and HTML documents. Elvis is written by Steve Kirkendall and is distributed under the Clarified Artistic License (ClArtistic) which is used by Perl and is a GPL-compatible free software license.

<span class="mw-page-title-main">Version 6 Unix</span> 6th Edition of Research Unix alias UNIX Time-Sharing System

Sixth Edition Unix, also called Version 6 Unix or just V6, was the first version of the Unix operating system to see wide release outside Bell Labs. It was released in May 1975 and, like its direct predecessor, targeted the DEC PDP-11 family of minicomputers. It was superseded by Version 7 Unix in 1978/1979, although V6 systems remained in regular operation until at least 1985.

<span class="mw-page-title-main">Berkeley Software Distribution</span> Unix operating system

The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley. The term "BSD" commonly refers to its open-source descendants, including FreeBSD, OpenBSD, NetBSD, and DragonFly BSD.

BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD license was used for its namesake, the Berkeley Software Distribution (BSD), a Unix-like operating system. The original version has since been revised, and its descendants are referred to as modified BSD licenses.

<span class="mw-page-title-main">Unix filesystem</span> Directory structure used by a Unix-like operating system

In Unix and operating systems inspired by it, the file system is considered a central component of the operating system. It was also one of the first parts of the system to be designed and implemented by Ken Thompson in the first experimental version of Unix, dated 1969.

Michael J. (Mike) Karels is an American software engineer and one of the key people in history of BSD UNIX.

The History of the Berkeley Software Distribution begins in the 1970s.

References

  1. "nvi 1.81.6". 18 November 2007.
  2. Keith Bostic. "Update the license: we're going to standard BSD, copyright UC Berkeley".
  3. Lionel Sambuc. "Termcap update, replacing elvis by nvi".
  4. "nvi commitlog". Archived from the original on May 1, 2001.
  5. Thomas E. Dickey, "Types of library users", NCURSES Frequently Asked Questions (FAQ) , retrieved July 11, 2014
  6. Jun-ichiro itojun Hagino and Yoshitaka Tokugawa. "Multilingual vi clones: past, now and the future".
  7. Federico Biancuzzi (December 4, 2007). "The Man in the Machine". SecurityFocus.
  8. Zhihao Yuan (17 November 2022). "nvi2 git repo". GitHub .