Elvis (text editor)
Encyclopedia
Elvis is a powerful vi
/ex clone, i.e. it resembles the Unix
text editor
"vi" very much 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
.
Elvis is the version of vi that comes with Slackware
, Frugalware
, KateOS, and MINIX 3
.
until about 1997.
It was the first to provide color syntax highlighting
(and to generalize syntax highlighting to multiple filetypes),
first to provide highlighted selections via keyboard.
Elvis's built-in nroff (early) and (later) html displays gave it unusual WYSIWYG features.
Elvis recognizes binary files, as well and provides a split screen for editing them.
jelvis, a Japanese variant, is available, based on work by Jun-ichiro itojun Hagino up until 1998.
His more recent work in this area has been distributed as patches
against nvi
. A Korean variant helvis is also available, originally by Park Chong-Dae.
These variants were modifications of elvis 1.8 (July 10, 1994).
The nvi
editor is based on an older version of elvis 1.5 (April 2, 1992).
. In this section we examine the version history of Elvis almost exclusively.
Steve Kirkendall posted the first version of Elvis to the Usenet
newsgroup comp.os.minix in early January, 1990, intending it to be a more complete and faithful clone of Vi
than Tim Thompson's Stevie (ST editor for VI enthusiasts), released three years previously.
Kirkendall outlined several ways in which Elvis was different from Stevie, namely:
In addition, Elvis almost all ex/vi commands worked (except :@, :abbr, and :preserve in ex mode and @ in visual mode and appending to named buffers).
It quickly attracted considerable interest in a number of enthusiast communities.
Andrew Tanenbaum
quickly asked the community to decide one of these two editors to be the vi clone in Minix
; 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. 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 Spring of 1994.
In August 1994, Kirkendall announced that he was working on a major rewrite of Elvis, and in October 1996, it was ready for release. The new version had a number of new features, including
In December, 1998, Kirkendall released Elvis 2.1, with added features, including name completion, via the key, network protocols (allowing can reading/writing via Web URLs), and a "tex" display mode.
Kirkendall maintained the 2.1 release with bugfixes and minor enhancements as 2.1_1, 2.1_2, 2.1_3, and culminating in 2.1_4, released in October 1999.
In October, 2003, four years after the previous release, Kirkendall released Elvis 2.2, which added a number of new features, including a built-in context-sensitive spell checker, text folding, region highlighting, and user-definable URL protocols. In addition, it adopted a number of ideas from Vim
.
At the time of writing, January, 2011, there has been no new release of Elvis since 2.2.
Vi
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.The original code for vi...
/ex clone, i.e. it resembles the Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
text editor
Text editor
A text editor is a type of program used for editing plain text files.Text editors are often provided with operating systems or software development packages, and can be used to change configuration files and programming language source code....
"vi" very much but adds quite a few commands and features. Elvis is written by Steve Kirkendall and is distributed under the Clarified Artistic License
Artistic License
The Artistic License refers most commonly to the original Artistic License , a software license used for certain free and open source software packages, most notably the standard Perl implementation and most CPAN modules, which are dual-licensed under the Artistic License and the GNU General Public...
which is used by Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
.
Elvis is the version of vi that comes with Slackware
Slackware
Slackware is a free and open source Linux-based operating system. It was one of the earliest operating systems to be built on top of the Linux kernel and is the oldest currently being maintained. Slackware was created by Patrick Volkerding of Slackware Linux, Inc. in 1993...
, Frugalware
Frugalware
Frugalware Linux is a general-purpose Linux distribution designed for intermediate users who are familiar with command-line operations. Early versions were based on Slackware, but it is now an independently-developed distribution...
, KateOS, and MINIX 3
MINIX 3
MINIX 3 is a project to create a small, highly reliable and functional Unix-like operating system. It is published under the BSD license.The main goal of the project is for the system to be fault-tolerant by detecting and repairing its own faults on the fly, without user intervention...
.
Comments
Elvis was the pioneering vi clone, widely admired in the 1990s for its conciseness, and many features. It influenced the development of VimVim (text editor)
Vim is a text editor written by Bram Moolenaar and first released publicly in 1991. Based on the vi editor common to Unix-like systems, Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface...
until about 1997.
It was the first to provide color syntax highlighting
(and to generalize syntax highlighting to multiple filetypes),
first to provide highlighted selections via keyboard.
Elvis's built-in nroff (early) and (later) html displays gave it unusual WYSIWYG features.
Elvis recognizes binary files, as well and provides a split screen for editing them.
jelvis, a Japanese variant, is available, based on work by Jun-ichiro itojun Hagino up until 1998.
His more recent work in this area has been distributed as patches
Patch (computing)
A patch is a piece of software designed to fix problems with, or update a computer program or its supporting data. This includes fixing security vulnerabilities and other bugs, and improving the usability or performance...
against nvi
Nvi
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 ....
. A Korean variant helvis is also available, originally by Park Chong-Dae.
These variants were modifications of elvis 1.8 (July 10, 1994).
The nvi
Nvi
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 ....
editor is based on an older version of elvis 1.5 (April 2, 1992).
History
Elvis is an enhanced clone of vi. To understand the full context in which Elvis was created, readers should consider the history of viVi
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.The original code for vi...
. In this section we examine the version history of Elvis almost exclusively.
Steve Kirkendall posted the first version of Elvis to the Usenet
Usenet
Usenet is a worldwide distributed Internet discussion system. It developed from the general purpose UUCP architecture of the same name.Duke University graduate students Tom Truscott and Jim Ellis conceived the idea in 1979 and it was established in 1980...
newsgroup comp.os.minix in early January, 1990, intending it to be a more complete and faithful clone of Vi
Vi
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.The original code for vi...
than Tim Thompson's Stevie (ST editor for VI enthusiasts), released three years previously.
Kirkendall outlined several ways in which Elvis was different from Stevie, namely:
- The text is stored in a temporary file, just like the real vi
Vivi 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.The original code for vi...
, and unlike stevie. Because of this, you can edit files that are larger than a single process' data space. Also, you can recover your file after a crash or power failure.- Arrow keys work in input mode. In fact, if you invoke the editor via the name "input", then it will start editing in input mode. You can make your changes, and then exit by hitting control-Z twice, and NEVER go into visual command mode. In other words, elvis can act pretty much like a normal editor -- something that the real vi certainly can't do.
- Long lines are displayed differently. Where vi and stevie wrap the line onto several rows of the screen, elvis displays it on one row and allows you to scroll sideways.
In addition, Elvis almost all ex/vi commands worked (except :@, :abbr, and :preserve in ex mode and @ in visual mode and appending to named buffers).
It quickly attracted considerable interest in a number of enthusiast communities.
Andrew Tanenbaum
Andrew S. Tanenbaum
Andrew Stuart "Andy" Tanenbaum is a professor of computer science at the Vrije Universiteit, Amsterdam in the Netherlands. He is best known as the author of MINIX, a free Unix-like operating system for teaching purposes, and for his computer science textbooks, regarded as standard texts in the...
quickly asked the community to decide one of these two editors to be the vi clone in Minix
Minix
MINIX is a Unix-like computer operating system based on a microkernel architecture created by Andrew S. Tanenbaum for educational purposes; MINIX also inspired the creation of the Linux kernel....
; 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
386BSD
386BSD, sometimes called "Jolix", was a free Unix-like operating system based on BSD, first released in 1992. It ran on PC compatible computer systems based on the Intel 80386 microprocessor...
distribution adopted Elvis as its vi replacement. 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
Nvi
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 ....
, releasing it in Spring of 1994.
In August 1994, Kirkendall announced that he was working on a major rewrite of Elvis, and in October 1996, it was ready for release. The new version had a number of new features, including
- Multiple edit buffers, so you can edit several files at the same time.
- Multiple windows, so those edit buffers can share screen space.
- Multiple display modes, including...
- "normal" which looks like the traditional vi screen
- "hex" which is good for viewing binary files
- "syntax" which supports syntax coloring (configurable)
- "man" which formats Unix man-pages like nroff
- "html" which formats Web pages
- Online hypertextual help
- A variety of user interfaces, including...
- "termcap" which uses text screens like the traditional vi
- "x11" which provides a GUI interface for Unix/X Window users
- Compiling: elvis can parse error messages, and move to source of error
- WYSIWYG printing, with drivers for most printer types
- Built-in calculator with a C-like syntax
- Extreme customizability
- "Open" mode, for one-line-at-a-time editing even on very dumb terminals
In December, 1998, Kirkendall released Elvis 2.1, with added features, including name completion, via the
Kirkendall maintained the 2.1 release with bugfixes and minor enhancements as 2.1_1, 2.1_2, 2.1_3, and culminating in 2.1_4, released in October 1999.
In October, 2003, four years after the previous release, Kirkendall released Elvis 2.2, which added a number of new features, including a built-in context-sensitive spell checker, text folding, region highlighting, and user-definable URL protocols. In addition, it adopted a number of ideas from Vim
Vim (text editor)
Vim is a text editor written by Bram Moolenaar and first released publicly in 1991. Based on the vi editor common to Unix-like systems, Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface...
.
At the time of writing, January, 2011, there has been no new release of Elvis since 2.2.