Vi

Last updated

vi
NetBSD 6.1 vi C Hello World.png
vi editing a Hello World program in C. Tildes signify lines not present in the file.
Developer(s) Bill Joy
Initial release1976;43 years ago (1976)
Repository Blue pencil.svg
Written in C
Operating system Unix-like
Type Text editor
License BSD License or CDDL
Website ex-vi.sourceforge.net

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 (and thus standardized by) the Single Unix Specification and POSIX. [1]

Text editor Software to modify text documents

A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software, following the naming of Microsoft Notepad. Text editors are provided with operating systems and software development packages, and can be used to change files such as configuration files, documentation files and programming language source code.

Unix family of computer operating systems that derive from the original AT&T Unix

Unix is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, development starting in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others.

ex, short for EXtended, is a line editor for Unix systems originally written by Bill Joy in 1976, beginning with an earlier program written by Charles Haley. Multiple implementations of the program exist; they are standardized by POSIX.

Contents

The original code for vi was written by Bill Joy in 1976, as the visual mode for a line editor called ex that Joy had written with Chuck Haley. [2] Bill Joy's ex 1.1 was released as part of the first Berkeley Software Distribution (BSD) Unix release in March 1978. It was not until version 2.0 of ex, released as part of Second BSD in May 1979 that the editor was installed under the name "vi" (which took users straight into ex's visual mode), [3] and the name by which it is known today. Some current implementations of vi can trace their source code ancestry to Bill Joy; others are completely new, largely compatible reimplementations.

Bill Joy American computer scientist

William Nelson Joy is an American computer engineer. He co-founded Sun Microsystems in 1982 along with Vinod Khosla, Scott McNealy, and Andy Bechtolsheim, and served as chief scientist at the company until 2003. He played an integral role in the early development of BSD UNIX while a graduate student at Berkeley, and he is the original author of the vi text editor. He also wrote the 2000 essay Why The Future Doesn't Need Us, in which he expressed deep concerns over the development of modern technologies.

In computing, a line editor is a text editor in which each editing command applies to one or more complete lines of text designated by the user. Line editors predate screen-based text editors and originated in an era when a computer operator typically interacted with a teleprinter, with no video display, and no ability to move a cursor interactively within a document. Line editors were also a feature of many home computers, avoiding the need for a more memory-intensive full-screen editor.

The Berkeley Software Distribution (BSD) was an operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley. Today, "BSD" often refers to its descendants, such as FreeBSD, OpenBSD, NetBSD, or DragonFly BSD.

The name "vi" is derived from the shortest unambiguous abbreviation for the ex command visual, which switches the ex line editor to visual mode. The name is pronounced /ˈvˈ/ (the English letters v and i). [4] [5]

A visual editor, or full-screen editor is computer software for editing text files using a textual or graphical user interface which displays the content (text) in an easy to look at and good view; that is, it displays a portion of the opened file and updates it in real time. By definition, all visual editors require a re-fresh-able display device and all editors with a GUI are visual. Editors that are running through a command-line interpreter, however, may or may not be.

In addition to various non–free software variants of vi distributed with proprietary implementations of Unix, vi was opensourced with OpenSolaris, and several free and open source software vi clones exist. A 2009 survey of Linux Journal readers found that vi was the most widely used text editor among respondents, beating gedit, the second most widely used editor, by nearly a factor of two (36% to 19%). [6]

Free software software licensed to preserve user freedoms

Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, not price: users—individually or in cooperation with computer programmers—are free to do what they want with their copies of a free software regardless of how much is paid to obtain the program. Computer programs are deemed free insofar as they give users ultimate control over the first, thereby allowing them to control what their devices are programmed to do.

OpenSolaris Open source operating system from Sun Microsystems based on Solaris

OpenSolaris is a discontinued, open source computer operating system based on Solaris created by Sun Microsystems. It was also the name of the project initiated by Sun to build a developer and user community around the software. After the acquisition of Sun Microsystems in 2010, Oracle decided to discontinue open development of the core software, and replaced the OpenSolaris distribution model with the proprietary Solaris Express.

<i>Linux Journal</i> magazine

Linux Journal is a monthly technology magazine published by Linux Journal, LLC.. It focuses specifically on Linux, allowing the content to be a highly specialized source of information for open source enthusiasts.

History

Creation

Bill Joy, the original creator of the vi editor Bill Joy at World Economic Forum (Davos), 2003-01 (cropped).jpg
Bill Joy, the original creator of the vi editor

vi was derived from a sequence of UNIX command line editors, starting with ed, which was a line editor designed to work well on teleprinters, rather than display terminals. Within AT&T Corporation, where ed originated, people seemed to be happy with an editor as basic and unfriendly as ed, George Coulouris recalls: [7]

ed (text editor) line editor for the Unix operating system

ed is a line editor for Unix and Unix-like operating systems. It was one of the first parts of the Unix operating system that was developed, in August 1969. It remains part of the POSIX and Open Group standards for Unix-based operating systems, alongside the more sophisticated full-screen editor vi.

Teleprinter device for transmitting messages in written form by electrical signals

A teleprinter is an electromechanical device that can be used to send and receive typed messages through various communications channels, in both point-to-point and point-to-multipoint configurations. Initially they were used in telegraphy, which developed in the late 1830s and 1840s as the first use of electrical engineering. The machines were adapted to provide a user interface to early mainframe computers and minicomputers, sending typed data to the computer and printing the response. Some models could also be used to create punched tape for data storage and to read back such tape for local printing or transmission.

AT&T Corporation Subsidiary of AT&T that provides voice, video, data, and Internet telecommunications

AT&T Corp., originally the American Telephone and Telegraph Company, is the subsidiary of AT&T that provides voice, video, data, and Internet telecommunications and professional services to businesses, consumers, and government agencies.

[...] for many years, they had no suitable terminals. They carried on with TTYs and other printing terminals for a long time, and when they did buy screens for everyone, they got Tektronix 4014s. These were large storage tube displays. You can't run a screen editor on a storage-tube display as the picture can't be updated. Thus it had to fall to someone else to pioneer screen editing for Unix, and that was us initially, and we continued to do so for many years.

Direct-view bistable storage tube

Direct-view bistable storage tube (DVBST) was an acronym used by Tektronix to describe their line of storage tubes. These were cathode ray tubes (CRT) that stored information written to them using an analog technique inherent in the CRT and based upon the secondary emission of electrons from the phosphor screen itself. The resulting image was visible in the continuously glowing patterns on the face of the CRT.

Coulouris considered the cryptic commands of ed to be only suitable for "immortals", and thus in February 1976, he enhanced ed (using Ken Thompson's ed source as a starting point) to make em (the "editor for mortals" [8] ) while acting as a lecturer at Queen Mary College. [7] The em editor was designed for display terminals and was a single-line-at-a-time visual editor. It was one of the first programs on Unix to make heavy use of "raw terminal input mode", in which the running program, rather than the terminal device driver, handled all keystrokes. When Coulouris visited UC Berkeley in the summer of 1976, he brought a DECtape containing em, and showed the editor to various people. Some people considered this new kind of editor to be a potential resource hog, but others, including Bill Joy, were impressed. [7]

Inspired by em, and by their own tweaks to ed, [2] Bill Joy and Chuck Haley, both graduate students at UC Berkeley, took code from em to make en, [2] [9] and then "extended" en to create ex version 0.1. [2] After Haley's departure, Bruce Englar encouraged Joy to redesign the editor, [10] which he did June through October 1977 adding a full-screen visual mode to ex. [11]

Many of the ideas in ex's visual mode (a.k.a. vi) were taken from other software that existed at the time. According to Bill Joy, [2] inspiration for vi's visual mode came from the Bravo editor, which was a bimodal editor. In an interview about vi's origins, Joy said: [2]

A lot of the ideas for the screen editing mode were stolen from a Bravo manual I surreptitiously looked at and copied. Dot is really the double-escape from Bravo, the redo command. Most of the stuff was stolen. There were some things stolen from ed—we got a manual page for the Toronto version of ed, which I think Rob Pike had something to do with. We took some of the regular expression extensions out of that.

ADM-3A terminal keyboard layout KB Terminal ADM3A.svg
ADM-3A terminal keyboard layout

Joy used a Lear Siegler ADM-3A terminal. On this terminal, the Escape key was at the location now occupied by the Tab key on the widely used IBM PC keyboard (on the left side of the alphabetic part of the keyboard, one row above the middle row). This made it a convenient choice for switching vi modes. Also, the keys h,j,k,l served double duty as cursor movement keys and were inscribed with arrows, which is why vi uses them in that way. The ADM-3A had no other cursor keys. Joy explained that the terse, single character commands and the ability to type ahead of the display were a result of the slow 300 baud modem he used when developing the software and that he wanted to be productive when the screen was painting slower than he could think. [9]

Distribution

Joy was responsible for creating the first BSD Unix release in March, 1978, and included ex 1.1 (dated 1 February 1978) [12] in the distribution, thereby exposing his editor to an audience beyond UC Berkeley. [13] From that release of BSD Unix onwards, the only editors that came with the Unix system were ed and ex. In a 1984 interview, Joy attributed much of the success of vi to the fact that it was bundled for free, whereas other editors, such as Emacs, could cost hundreds of dollars. [2]

Eventually it was observed that most ex users were spending all their time in visual mode,[ citation needed ] and thus in ex 2.0 (released as part of Second Berkeley Software Distribution in May, 1979), Joy created vi as a hard link to ex, [14] such that when invoked as vi, ex would automatically start up in its visual mode. Thus, vi is not the evolution of ex, vi is ex.

Joy described ex 2.0 (vi) as a very large program, barely able to fit in the memory of a PDP-11/70, [15] thus although vi may be regarded as a small, lightweight, program today, it was not seen that way early in its history. By version 3.1, shipped with 3BSD in December 1979, the full version of vi was no longer able to fit in the memory of a PDP-11; [16] the editor would be also too big to run on PC/IX for the IBM PC in 1984. [17]

Joy continued to be lead developer for vi until version 2.7 in June 1979, [10] [18] and made occasional contributions to vi's development until at least version 3.5 in August 1980. [18] In discussing the origins of vi and why he discontinued development, Joy said: [2]

I wish we hadn't used all the keys on the keyboard. I think one of the interesting things is that vi is really a mode-based editor. I think as mode-based editors go, it's pretty good. One of the good things about EMACS, though, is its programmability and the modelessness. Those are two ideas which never occurred to me. I also wasn't very good at optimizing code when I wrote vi. I think the redisplay module of the editor is almost intractable. It does a really good job for what it does, but when you're writing programs as you're learning... That's why I stopped working on it.

What actually happened was that I was in the process of adding multiwindows to vi when we installed our VAX, which would have been in December of '78. We didn't have any backups and the tape drive broke. I continued to work even without being able to do backups. And then the source code got scrunched and I didn't have a complete listing. I had almost rewritten all of the display code for windows, and that was when I gave up. After that, I went back to the previous version and just documented the code, finished the manual and closed it off. If that scrunch had not happened, vi would have multiple windows, and I might have put in some programmability—but I don't know.

The fundamental problem with vi is that it doesn't have a mouse and therefore you've got all these commands. In some sense, its backwards from the kind of thing you'd get from a mouse-oriented thing. I think multiple levels of undo would be wonderful, too. But fundamentally, vi is still ed inside. You can't really fool it.

It's like one of those pinatas—things that have candy inside but has layer after layer of paper mache on top. It doesn't really have a unified concept. I think if I were going to go back—I wouldn't go back, but start over again.

In 1979, [2] Mark Horton took on responsibility for vi. Horton added support for arrow and function keys, macros, and improved performance by replacing termcap with terminfo. [10] [19]

Ports and clones

The vi editor in OpenBSD (nvi) on startup, editing a temporary empty file OpenBSD vi Editor.png
The vi editor in OpenBSD ( nvi ) on startup, editing a temporary empty file
The vi editor in OpenBSD, editing a small "Hello, world!" type Ruby program OpenBSD vi Editor Ruby Hello World.png
The vi editor in OpenBSD, editing a small "Hello, world!" type Ruby program

Up to version 3.7 of vi, created in October 1981, [18] UC Berkeley was the development home for vi, but with Bill Joy's departure in early 1982, to join Sun Microsystems, and AT&T's UNIX System V (January 1983) adopting vi, [20] changes to the vi codebase happened more slowly and in a more dispersed and mutually incompatible way. At UC Berkeley, changes were made but the version number was never updated beyond 3.7. Commercial Unix vendors, such as Sun, HP, DEC, and IBM each received copies of the vi source, and their operating systems, Solaris, HP-UX, Tru64 UNIX, and AIX, today continue to maintain versions of vi directly descended from the 3.7 release, but with added features, such as adjustable key mappings, encryption, and wide character support.

While commercial vendors could work with Bill Joy's codebase (and continue to use it today), many people could not. Because Joy had begun with Ken Thompson's ed editor, ex and vi were derivative works and could not be distributed except to people who had an AT&T source license. People looking for a free Unix-style editor would have to look elsewhere. By 1985, a version of Emacs (MicroEMACS) was available for a variety of platforms, but it was not until June 1987 that STEVIE (ST Editor for VI Enthusiasts), a limited vi clone, appeared. [21] [22] In early January 1990, Steve Kirkendall posted a new clone of vi, Elvis , to the Usenet newsgroup comp.os.minix, aiming for a more complete and more faithful clone of vi than STEVIE. [23] It quickly attracted considerable interest in a number of enthusiast communities. [24] Andrew Tanenbaum quickly asked the community to decide on one of these two editors to be the vi clone in Minix; [25] Elvis was chosen, and remains the vi clone for Minix today.

In 1989 Lynne Jolitz and William Jolitz began porting BSD Unix to run on 386 class processors, but to create a free distribution they needed to avoid any AT&T-contaminated code, including Joy's vi. To fill the void left by removing vi, their 1992 386BSD distribution adopted Elvis as its vi replacement. 386BSD's descendants, FreeBSD and NetBSD, followed suit. But at UC Berkeley, Keith Bostic wanted a "bug for bug compatible" replacement for Joy's vi for BSD 4.4 Lite. Using Kirkendall's Elvis (version 1.8) as a starting point, Bostic created nvi, releasing it in the northern spring of 1994. [26] When FreeBSD and NetBSD resynchronized the 4.4-Lite2 codebase, they too switched over to Bostic's nvi, which they continue to use today. [26]

Despite the existence of vi clones with enhanced featuresets, sometime before June 2000, [27] Gunnar Ritter ported Joy's vi codebase (taken from 2.11BSD, February 1992) to modern Unix-based operating systems, such as Linux and FreeBSD. Initially, his work was technically illegal to distribute without an AT&T source license, but, in January 2002, those licensing rules were relaxed, [28] allowing legal distribution as an open-source project. Ritter continued to make small enhancements to the vi codebase similar to those done by commercial Unix vendors still using Joy's codebase, including changes required by the POSIX.2 standard for vi. His work is available as Traditional Vi, and runs today on a variety of systems.

But although Joy's vi was now once again available for BSD Unix, it arrived after the various BSD flavors had committed themselves to nvi, which provides a number of enhancements over traditional vi, and drops some of its legacy features (such as open mode for editing one line at a time). It is in some sense, a strange inversion that BSD Unix, where Joy's vi codebase began, no longer uses it, and the AT&T-derived Unixes, which in the early days lacked Joy's editor, are the ones that now use and maintain modified versions of his code.

Impact

Over the years since its creation, vi became the de facto standard Unix editor and a hacker favorite outside of MIT until the rise of Emacs after about 1984. [29] The Single UNIX Specification specifies vi, so every conforming system must have it.

vi is still widely used by users of the Unix family of operating systems. About half the respondents in a 1991 USENET poll preferred vi. [30] In 1999, Tim O'Reilly, founder of the eponymous computer book publishing company, stated that his company sold more copies of its vi book than its emacs book. [31]

Interface

The vi editor employed minimal logic that would aid the user. This included trivial aids such as how to join two lines together and maintain reasonable usage of whitespace. Vi source code join line logic.png
The vi editor employed minimal logic that would aid the user. This included trivial aids such as how to join two lines together and maintain reasonable usage of whitespace.
The vi editor has a number of revisions; however, the primary purpose was to allow a user to enjoy the full "visual" screen mode of modern terminals. XPG6 vi editing its own source code on a serial terminal.png
The vi editor has a number of revisions; however, the primary purpose was to allow a user to enjoy the full "visual" screen mode of modern terminals.

vi is a modal editor: it operates in either insert mode (where typed text becomes part of the document) or command mode (where keystrokes are interpreted as commands that control the edit session). For example, typing i while in command mode switches the editor to insert mode, but typing i again at this point places an "i" character in the document. From insert mode, pressing ESC switches the editor back to command mode. A perceived advantage of vi's separation of text entry and command modes is that both text editing and command operations can be performed without requiring the removal of the user's hands from the home row. As non-modal editors usually have to reserve all keys with letters and symbols for the printing of characters, any special commands for actions other than adding text to the buffer must be assigned to keys that do not produce characters, such as function keys, or combinations of modifier keys such as Ctrl, and Alt with regular keys. Vi has the property that most ordinary keys are connected to some kind of command for positioning, altering text, searching and so forth, either singly or in key combinations. Many commands can be touch typed without the use of Ctrl or Alt. Other types of editors generally require the user to move their hands from the home row when touch typing:

For instance, in vi, replacing a word is cwreplacement textEscape, which is a combination of two independent commands (change and word-motion) together with a transition into and out of insert mode. Text between the cursor position and the end of the word is overwritten by the replacement text. The operation can be repeated at some other location by typing ., the effect being that the word starting that location will be replaced with the same replacement text.

A human-computer interaction textbook notes on its first page that "One of the classic UI foibles—told and re-told by HCI educators around the world—is the vi editor’s lack of feedback when switching between modes. Many a user made the mistake of providing input while in command mode or entering a command while in input mode." [32]

Contemporary derivatives and clones

Compared to most of its many clones, the original vi is a rather small program (~120 KB code on i386) just with its extremely powerful editing interface, but lacking fancy features like multiple undo, multiple screens or syntax highlighting. In other words, it is a typical Unix program that does exactly what it should and nothing more.

The startup screen of vi clone vim Vim splash screen.png
The startup screen of vi clone vim

See also

Related Research Articles

The editor war is the rivalry between users of the Emacs and vi text editors. The rivalry has become a lasting part of hacker culture and the free software community.

MINIX Unix-like operating system

MINIX is a POSIX-compliant, Unix-like operating system based on a microkernel architecture.

Vim (text editor) Improved version of the Vi keyboard-oriented text editor

Vim is a clone, with additions, of Bill Joy's vi text editor program for Unix. Vim's author, Bram Moolenaar, based it upon source code for a port of the Stevie editor to the 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. Vim is free and open-source software and is released under a license that includes some charityware clauses, encouraging users who enjoy the software to consider donating to children in Uganda. The license is compatible with the GNU General Public License through a special clause allowing distribution of modified copies "under the GNU GPL version 2 or any later version".

Text-based user interface type of interface based on outputting to or controlling a text display

Text-based user interface (TUI), also called textual user interface or terminal user interface, is a retronym coined sometime after the invention of graphical user interfaces (GUI). TUIs display computer graphics in text mode. An advanced TUI may, like GUIs, use the entire screen area and accept mouse and other inputs.

Ctags is a programming tool that generates an index file of names found in source and header files of various programming languages. Depending on the language, functions, variables, class members, macros and so on may be indexed. These tags allow definitions to be quickly and easily located by a text editor or other utility. Alternatively, there is also an output mode that generates a cross reference file, listing information about various names found in a set of language files in human-readable form.

nvi text editor

nvi 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).

vile is a text editor that attempts to combine the best aspects of the popular Emacs and vi editors. These editors are traditionally located on opposing sides of the editor wars, as users of Emacs and vi tend to have strong sentiments against the editor they do not use; however, vile at least attempts to reconcile these positions.

This article provides basic comparisons for common text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.

Elvis (text editor) powerful vi/ex clone

Elvis is a vi/ex clone, i.e. it closely resembles the Unix text editor "vi", but adds quite a few commands and features. Elvis is written by Steve Kirkendall and is distributed under the Clarified Artistic License which is used by Perl and is a GPL-compatible free software license.

Joes Own Editor

JOE or Joe's Own Editor is an ncurses-based text editor for Unix systems, available under the GPL. It is designed to be easy to use.

Tanenbaum–Torvalds debate debate between Andrew S. Tanenbaum and Linus Torvalds

The Tanenbaum–Torvalds debate was a debate between Andrew S. Tanenbaum and Linus Torvalds, regarding the Linux kernel and kernel architecture in general. Tanenbaum began the debate in 1992 on the Usenet discussion group comp.os.minix, arguing that microkernels are superior to monolithic kernels and therefore Linux was, even in 1992, obsolete. Linux kernel developers Peter MacDonald, David S. Miller and Theodore Ts'o also joined the debate.

JED (text editor) text editor

JED is a text editor that makes extensive use of the S-Lang library. It is highly cross-platform compatible; JED runs on Windows and all flavors on Linux and Unix. Older versions are available for DOS. It is also very lightweight, which makes it an ideal editor for older systems, embedded systems, etc. JED's Emacs mode is one of the most faithful emulations available.

Vimperator was a discontinued Firefox extension forked from the original Firefox extension version of Conkeror and designed to provide a more efficient user interface for keyboard-fluent users. The design is heavily inspired by the Vim text editor, and the authors try to maintain consistency with it wherever possible.

ne (text editor) fast, small, powerful and simple text editor.  It has a simple scripting language where scripts can be easily generated and played.

ne is a console text editor for POSIX computer operating systems such as Linux or Mac OS X. It uses the terminfo library, but it can also be compiled using a bundled copy of the GNU termcap implementation. There is also a Cygwin version. It was developed by Sebastiano Vigna of the University of Milan.

GNU Emacs GNU version of the Emacs text editor

GNU Emacs is the most popular and most ported Emacs text editor. It was created by GNU Project founder Richard Stallman. In common with other varieties of Emacs, GNU Emacs is extensible using a Turing complete programming language. GNU Emacs has been called "the most powerful text editor available today". With proper support from the underlying system, GNU Emacs is able to display files in multiple character sets, and has been able to simultaneously display most human languages since at least 1999. Throughout its history, GNU Emacs has been a central component of the GNU project, and a flagship of the free software movement. GNU Emacs is sometimes abbreviated as GNUMACS, especially to differentiate it from other EMACS variants. The tag line for GNU Emacs is "the extensible self-documenting text editor".

Emacs Family of text editors

Emacsor EMACS is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, and work on its direct descendant, GNU Emacs, continues actively as of 2019.

Unix-like operating system that behaves in a manner similar to a Unix system

A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-like application is one that behaves like the corresponding Unix command or shell. There is no standard for defining the term, and some difference of opinion is possible as to the degree to which a given operating system or application is "Unix-like".

STEVIE, ST Editor for VI Enthusiasts, was a clone of Bill Joy's vi editor created by Tim Thompson for the Atari ST in 1987. It later became the basis for Vim, released in 1991.

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

References

  1. The IEEE & The Open Group (2013). ""vi — screen-oriented (visual) display editor", The Open Group Base Specifications Issue 7; IEEE Std 1003.1, 2013 Edition" . Retrieved 15 July 2013.
  2. 1 2 3 4 5 6 7 8 9 "Interview with Bill Joy". Archived from the original on 10 February 2012. Retrieved 3 June 2017.
  3. "Second Berkeley Software Distriution Manual". roguel ife.org. Retrieved 27 March 2018.
  4. Joy, William; Horton, Mark. "An Introduction to Display Editing with Vi" (PDF). freebsd.org. Retrieved 6 February 2019.
  5. "The Jargon Lexicon". Hacker's Dictionary 4.3.0. 30 April 2001. Retrieved 6 February 2019.
  6. Gray, James (1 June 2009). "Readers' Choice Awards 2009". Linux Journal . Retrieved 22 January 2010.
  7. 1 2 3 A Quarter Century of UNIX, by Peter H. Salus, Addison-Wesley 1994, pages 139–142. (excerpt available online)
  8. "Source code for em". coulouris.net. February 1976.
  9. 1 2 Vance, Ashlee (11 September 2003). "Bill Joy's greatest gift to man – the vi editor". The Register . Archived from the original on 1 July 2012. Retrieved 30 June 2012.
  10. 1 2 3 Joy, Bill. "ex Reference Manual" (roff source). 4.4 BSD (encumbered, not Lite). CSRG, UC Berkeley. (see Acknowlegments section at end of file)
  11. "See dates in copyright headers, ex 1.1 source code". minnie.tuhs.org.
  12. "version.c, ex 1.1 source code". minnie.tuhs.org.
  13. "1BSD/READ_ME" (roff source). Formatted: "Berkeley UNIX Software Tape" (PDF).
  14. "makefile, ex 2.0 source code". minnie.tuhs.org.
  15. "READ_ME". ex 2.0 source code.
  16. "ex 3.1 source code".
  17. McMahon, Marilyn; Putnam, Robert (2 April 1984). "A First Look at PC-IX". InfoWorld. pp. 39–42. Retrieved 25 February 2016.
  18. 1 2 3 "Change log for vi, versions 2.1–3.7". minnie.tuhs.org.
  19. Joy, Bill. "vi Reference Manual" (roff source). 4.4 BSD (encumbered, not Lite). CSRG, UC Berkeley. (see Acknowlegments section at end of file)
  20. Kenneth H. Rosen; Douglas A. Host; Rachel Klee (2006). UNIX: the complete reference. McGraw-Hill Osborne Media. p. 10. ISBN   978-0-07-226336-7 . Retrieved 7 December 2010.
  21. Thompson, Tim (26 March 2000). "Stevie" . Retrieved 29 December 2010.
  22. Tim Thompson (28 June 1987). "A mini-vi for the ST". Newsgroup:  comp.sys.atari.st. Usenet:   129@glimmer.UUCP . Retrieved 29 December 2010.
  23. Steve Kirkendall (20 April 1990). "A new clone of vi is coming soon: ELVIS". Newsgroup:  comp.editors. Usenet:   2719@psueea.UUCP . Retrieved 29 December 2010. (discusses January comp.os.minix posting, and design goals)
  24. Usenet, various newsgroups (comp.editors, comp.sys.*, comp.os.*), 1990
  25. Andrew S. Tanenbaum (18 January 1990). "Elvis vs. stevie". Newsgroup:  comp.os.minix. Usenet:   5133@ast.cs.vu.nl . Retrieved 29 December 2010.
  26. 1 2 3 Robbins, Arnold; Hannah, Elbert; Lamb, Linda (2008). "Chapter 16: nvi: New vi". Learning the vi and vim editors (7th ed.). O'Reilly Media, Inc. pp. 307–308. ISBN   0-596-52983-X . Retrieved 29 December 2010.
  27. Changes file, from Traditional Vi by Gunnar Ritter
  28. "Caldera License for 32-bit 32V UNIX and 16 bit UNIX Versions 1, 2, 3, 4, 5, 6, 7" (PDF). mckusick.com.
  29. Smith, T. J. (4 December 2001). "EMACS vs. vi: The endless geek 'holy war'". Linux.com. Retrieved 30 January 2018.
  30. Raymond, Eric S., ed. (1996). The New Hacker's Dictionary (3rd ed.). MIT Press. ISBN   0-262-68092-0.
  31. "Ask Tim Archive". O'Reilly. 21 June 1999.
  32. I. Scott MacKenzie (2013). Human-Computer Interaction: An Empirical Research Perspective. Morgan Kaufmann, an imprint of Elsevier. p. 1. ISBN   978-0-12-405865-1.
  33. "CVS Info for project ex-vi". ex-vi.cvs.sourceforge.net. Retrieved 27 March 2018.
  34. "Traditional ex/vi". FreshMeat.net. Retrieved 31 December 2010.
  35. "editors/2bsd-vi". FreshPorts.org. Retrieved 31 December 2010.
  36. "editors/traditional-vi". OpenBSD ports.
  37. "Portfile for ex-vi". MacPorts.org. Retrieved 31 December 2010.
  38. "ex-vi package". OpenPKG Foundation e.V. Archived from the original on 12 July 2010. Retrieved 31 December 2010.
  39. Vugt, Sander van (21 November 2015). Beginning the Linux Command Line. Apress. p. 75. ISBN   9781430268291.
  40. "Vim documentation: options". vim.net/sourceforge.net. Retrieved 30 January 2009.
  41. "Vim documentation: starting". vim.net/sourceforge.net. Retrieved 30 January 2009.
  42. Bram Moolenaa (18 April 2005). "Interview: Bram Moolenaar". LinuxEXPRES (Interview) (in Czech). Interviewed by Lukáš Zapletal. pp. 21–22. Retrieved 5 February 2015.
    English translation: "Interview: Bram Moolenaar". Moolenaar.net. Archived from the original on 19 September 2012. Is VIM derivate of other VI clone or you started from scratch? I started with Stevie. This was a Vi clone for the Atari ST computer, ported to the Amiga. It had quite a lot of problems and could not do everything that Vi could, but since the source code was available I could fix that myself.
  43. Verdoolaege, Sven. "Development versions of nvi" . Retrieved 1 January 2011.
  44. Bostic, Keith. "Berkeley Vi Editor Home Page" . Retrieved 1 January 2011.
  45. "The Advent of Void: Day 21: neatvi". voidlinux.org. Retrieved 20 July 2018.

Further reading