Elvis
Original author(s)Steve Kirkendall
Stable release
2.2 / October 21, 2003; 20 years ago (2003-10-21)
Written inC
PlatformCross-platform,including Unix, Linux and Microsoft Windows
Available inEnglish
TypeText editor
LicenseClArtistic[a][1]
Websiteelvis.the-little-red-haired-girl.org

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.

Elvis is the version of vi that comes with Slackware, Frugalware, and KateOS.

Comments

Elvis was the pioneering vi clone, widely admired in the 1990s for its conciseness, and many features.[2][3] It influenced the development of Vim until about 1997.[4][5]

It was the first to provide color syntax highlighting (and to generalize syntax highlighting to multiple file types), first to provide highlighted selections via keyboard.

Elvis's built-in nroff (early) and (later) HTML displays gave it unusual WYSIWYG features.

Example of Elvis' hypertext help screen.

Elvis recognizes binary files, as well and provides a split screen for editing them.

Example of Elvis' hexadecimal editing mode.

jelvis, a Japanese variant, is available, based on work by Jun-ichiro itojun Hagino up until 1998.[6] 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.[7][8] These variants were modifications of elvis 1.8 (July 10, 1994).[9] The nvi editor is based on an older version of elvis 1.5 (April 2, 1992).[10]

History

Elvis is an enhanced clone of vi. To understand the full context in which Elvis was created, readers should consider the history of vi. 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.[11][12] Kirkendall outlined several ways in which Elvis was different from Stevie, namely:

In addition, in Elvis almost all ex/vi commands worked (except  :@, :abbr, and :preserve in ex mode and @ in visual mode and appending to named buffers).[13]

It quickly attracted considerable interest in a number of enthusiast communities.[14] Andrew Tanenbaum quickly asked the community to decide one of these two editors to be the vi clone in Minix;[15] 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 Bill 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.[16]

In August 1994, Kirkendall announced that he was working on a major rewrite of Elvis,[17] and in October 1996, it was ready for release.[18] The new version had a number of new features, including

In December 1998, Kirkendall released Elvis 2.1,[19] with added features, including name completion, via the <Tab> 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.[20]

In October 2003, four years after the previous release, Kirkendall released Elvis 2.2,[21] 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.

Notes

References

  1. ^ "Clarified Artistic License". spdx.org.
  2. ^ "editor-faq/Editor_List". Newsgroupcomp.editors. August 13, 1992. Archived from the original on 2007-09-27.
  3. ^ "Editors available on central UNIX platforms". 1994-09-21. Archived from the original on 2008-05-20. Retrieved 2008-02-07.
  4. ^ "VIM - Wishlist". Archived from the original on 2008-05-20. Retrieved 2008-05-22.
  5. ^ "Wishlist for vim 6.0". 1998. Retrieved 2008-05-22.
  6. ^ Jun-ichiro Hagino; Yoshitaka Tokugawa (June 6–11, 1999). "Multilingual vi Clones: Past, Now and the Future". 1999 USENIX Annual Technical Conference. USENIX.
  7. ^ "FreshPorts description of helvis".
  8. ^ "README file for helvis".
  9. ^ "A clone of vi/ex, the standard UNIX editor, with Japanese patch". Archived from the original on 2007-10-07. Retrieved 2007-09-03.
  10. ^ Thomas E. Dickey (January 23, 2007). "how to draw a line in vi at 80 columns". Newsgroupcomp.unix.programmer.
  11. ^ Thompson, Tim (2000-03-26). "Stevie". Retrieved 2010-12-29.
  12. ^ Tim Thompson (1987-06-28). "A mini-vi for the ST". Newsgroupcomp.sys.atari.st. Usenet: 129@glimmer.UUCP. Retrieved 2010-12-29.
  13. ^ Steve Kirkendall (1990-04-20). "A new clone of vi is coming soon: ELVIS". Newsgroupcomp.editors. Usenet: 2719@psueea.UUCP. Retrieved 2010-12-29. (discusses January comp.os.minix posting, and design goals)
  14. ^ Usenet, various newsgroups (comp.editors, comp.sys.*, comp.os.*), 1990
  15. ^ Andrew S. Tanenbaum (1990-01-18). "Elvis vs. stevie". Newsgroupcomp.os.minix. Usenet: 5133@ast.cs.vu.nl. Retrieved 2010-12-29.
  16. ^ 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 978-0-596-52983-3. Retrieved 2010-12-29.
  17. ^ Steve Kirkendall (1994-09-07). "Elvis 2.0 is not released, but..." Newsgroupcomp.editors. Usenet: 324d04$9vh@rigel.cs.pdx.edu. Retrieved 2010-12-31.
  18. ^ Steve Kirkendall (1996-10-02). "Second Coming of Elvis (elvis 2.0 released)". Newsgroupcomp.editors. Usenet: 52updt$qhj@rigel.cs.pdx.edu. Retrieved 2010-12-31.
  19. ^ Steve Kirkendall (1998-12-09). "It's official: Elvis 2.1 is hereby released". Newsgroupcomp.editors. Usenet: 74n8au$2hh$1@sirius.cs.pdx.edu. Retrieved 2010-12-31.
  20. ^ Steve Kirkendall (1999-10-22). "Elvis 2.1_4 is now available". Newsgroupcomp.editors. Usenet: 7uq0ib$lfc$1@sirius.cs.pdx.edu. Retrieved 2010-12-31.
  21. ^ Steve Kirkendall (2003-10-20). "Elvis 2.2 is now officially released". Newsgroupcomp.editors. Usenet: 3f949d6b@nntp0.pdx.net. Retrieved 2010-12-31.