Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Nvi
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Re-implementation of ex/vi}} {{Other uses|NVI (disambiguation){{!}}NVI}} {{lowercase}} {{infobox software | name = nvi | screenshot = OpenBSD vi Editor Ruby Hello World.png | caption = The [[Vi (text editor)|vi]] editor in [[OpenBSD]] (nvi), editing a small [[Hello world program|"Hello, world!"]] type [[Ruby (programming language)|Ruby]] program | latest release version = {{wikidata|property|preferred|references|edit|Q556171|P348|P548=Q2804309}} | latest release date = {{wikidata|qualifier|preferred|single|Q556171|P348|P548=Q2804309|P577}} | latest preview version = {{wikidata|property|preferred|references|edit|Q556171|P348|P548=Q51930650}} | latest preview date = {{wikidata|qualifier|preferred|single|Q556171|P348|P548=Q51930650|P577}} | repo = {{URL|http://repo.or.cz/nvi.git}} | license = [[BSD licenses|BSD-3-Clause]]<ref>{{cite web|url=http://repo.or.cz/w/nvi.git/commit/ff6492176fd3c47dbc5b3fbf8247adc571f1a63c|title=Update the license: we're going to standard BSD, copyright UC Berkeley|author=Keith Bostic|author-link=Keith Bostic (software engineer)}}</ref> | website = {{URL|https://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 [[Berkeley Software Distribution|BSD]] and, later, [[Unix]] systems. It was originally distributed as part of the Fourth Berkeley Software Distribution (4BSD). Due to [[USL v. BSDi|licensing disputes]] between [[Old AT&T|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 (software engineer)|Keith Bostic]]. It is the default [[vi (text editor)|vi]] on all major [[BSD]] systems ([[NetBSD]], [[OpenBSD]], and [[FreeBSD]]) as well as [[MINIX]].<ref>{{cite web|url=http://git.minix3.org/?p=minix.git;a=commit;h=3e1db26a5a6252fcff0898d4cb0c3fa16ccf561d|title=Termcap update, replacing elvis by nvi.|author=Lionel Sambuc}}</ref> It was originally derived from the first incarnation of [[Elvis (text editor)|elvis]], written by Steve Kirkendall, as noted in the README file included in nvi's sources. Sven Verdoolaege added support for [[Unicode]] in 2000.<ref>{{cite web |archiveurl=https://web.archive.org/web/20010501133542/http://www.kotnet.org/~skimo/nvi/commitlog |url=http://www.kotnet.org/~skimo/nvi/commitlog |archivedate=May 1, 2001 |title=nvi commitlog}}</ref> 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 DB|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 (text editor)|vi]]-compatible.{{Citation needed|date=August 2007}} nvi can vary subtly across the [[BSD]]s. nvi is only available on [[POSIX]]/Unix platforms due to its reliance on the [[curses (programming library)|curses]]/[[ncurses]] library.<ref>{{citation |url=http://invisible-island.net/ncurses/ncurses.faq.html#uses_of_library |title=NCURSES – Frequently Asked Questions (FAQ) |section=Types of library users |author=Thomas E. Dickey |accessdate=July 11, 2014}}</ref> An unmaintained, multilingual version by the late Jun-ichiro itojun Hagino is available as nvi-m17n. <ref>{{cite web|url=http://www.usenix.org/events/usenix99/full_papers/hagino/hagino.ps|title=Multilingual vi clones: past, now and the future|author=Jun-ichiro itojun Hagino and Yoshitaka Tokugawa}}</ref><ref>{{cite web |url=http://www.securityfocus.com/columnists/459 |title=The Man in the Machine |author=Federico Biancuzzi |publisher=SecurityFocus |date=December 4, 2007 }}</ref> A currently-maintained, multibyte version is available as nvi2, and is the default vi on [[DragonFly BSD]].<ref>{{cite web|url=https://github.com/lichray/nvi2|title=nvi2 git repo|author=Zhihao Yuan|website=[[GitHub]] |date=17 November 2022 }}</ref> == See also == {{Portal|Free and open-source software}} *[[Vile (text editor)|vile]] *[[Vim (text editor)|vim]] *{{slink|vi (text editor)|Ports and clones}} ==References== {{Reflist}} ==External links== *[https://man.openbsd.org/vi.1 the (n)vi man page] via [[OpenBSD]] [[Category:Unix text editors]] [[Category:Curses (programming library)]] [[Category:Vi]] [[Category:Software using the BSD license]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Lowercase
(
edit
)
Template:Main other
(
edit
)
Template:Other uses
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Slink
(
edit
)
Template:Template other
(
edit
)