Elvis (text editor)

{{short description|Enhanced clone of the vi text editor}}

{{Infobox software

| name = Elvis

| logo =

| screenshot = Elvis-syntax.png

| caption = Elvis

| author = Steve Kirkendall

| developer =

| released =

| latest_release_version = 2.2

| latest_release_date = {{Start date and age|2003|10|21}}

| programming language = C

| platform = Cross-platform,including Unix, Linux and Microsoft Windows

| language = English

| genre = Text editor

| license = ClArtistic{{efn|Clarified Artistic License}}{{cite web|url=https://spdx.org/licenses/ClArtistic.html|title=Clarified Artistic License|website=spdx.org}}

| website = {{URL|http://elvis.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.{{Cite newsgroup

|url=http://www.mirrorservice.org/sites/ftp.uib.no/pub/vi/comp.editors.EDS

|title=editor-faq/Editor_List

|newsgroup=comp.editors

|date=August 13, 1992

|url-status=dead

|archive-url=https://web.archive.org/web/20070927221954/http://www.mirrorservice.org/sites/ftp.uib.no/pub/vi/comp.editors.EDS

|archive-date=2007-09-27

}}{{Cite web

|url=http://www.desy.de/~kuenne/editors.txt

|title=Editors available on central UNIX platforms

|date=1994-09-21

|access-date=2008-02-07

|archive-url = https://web.archive.org/web/20080520084432/http://www.desy.de/~kuenne/editors.txt |archive-date = 2008-05-20}} It influenced the development of Vim until about 1997.{{Cite web

|url = http://www.vmunix.com/vim/wish.html

|title = VIM - Wishlist

|access-date = 2008-05-22

|url-status = dead

|archive-url = https://web.archive.org/web/20080520075925/http://www.vmunix.com/vim/wish.html

|archive-date = 2008-05-20

}}

{{Cite web

|url=http://lists.debian.org/debian-devel/1998/11/msg00011.html

|title=Wishlist for vim 6.0

|year=1998

|access-date=2008-05-22

}}

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.

File:Elvis-help.png

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

File:Elvis-hexedit.png

jelvis, a Japanese variant, is available, based on work by Jun-ichiro itojun Hagino up until 1998.{{Cite conference

|url=http://www.usenix.org/events/usenix99/summaries/

|title=Multilingual vi Clones: Past, Now and the Future

|author1=Jun-ichiro Hagino |author2=Yoshitaka Tokugawa

|book-title=1999 USENIX Annual Technical Conference

|date=June 6–11, 1999

|publisher=USENIX

}}

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.{{Cite web |url=http://www.freshports.org/korean/helvis/|title=FreshPorts description of helvis}}{{Cite web|url=http://hep1.snu.ac.kr/pub/computing/doc/README.hangul|title=README file for helvis}}

These variants were modifications of elvis 1.8 (July 10, 1994).{{Cite web

|url=http://www.freebsdsoftware.org/japanese/elvis.html

|title=A clone of vi/ex, the standard UNIX editor, with Japanese patch

|access-date=2007-09-03

|archive-date=2007-10-07

|archive-url=https://web.archive.org/web/20071007135429/http://www.freebsdsoftware.org/japanese/elvis.html

|url-status=dead

}}

The nvi editor is based on an older version of elvis 1.5 (April 2, 1992).{{Cite newsgroup

|url=https://groups.google.com/group/comp.unix.programmer/browse_frm/thread/3d2b02e6ca49d66d/7d8140a01a868c87?lnk=st&q=&rnum=2#7d8140a01a868c87

|title=how to draw a line in vi at 80 columns

|author=Thomas E. Dickey

|newsgroup=comp.unix.programmer

|date=January 23, 2007

}}

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.{{Cite web

|first=Tim

|last=Thompson

|date=2000-03-26

|url=http://nosuch.com/tjt/stevie/

|title=Stevie

|access-date=2010-12-29}}{{cite newsgroup

|title=A mini-vi for the ST

|author=Tim Thompson

|date=1987-06-28

|newsgroup=comp.sys.atari.st

|message-id=129@glimmer.UUCP

|url=https://groups.google.com/group/comp.sys.atari.st/msg/8db96f888d778a32?dmode=source

|access-date=2010-12-29}}

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, 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, in Elvis almost all ex/vi commands worked (except :@, :abbr, and :preserve in ex mode and @ in visual mode and appending to named buffers).{{cite newsgroup

|title=A new clone of vi is coming soon: ELVIS

|author=Steve Kirkendall

|date=1990-04-20

|newsgroup=comp.editors

|message-id=2719@psueea.UUCP

|url=https://groups.google.com/group/comp.editors/msg/f409553df27eb412?dmode=source

|access-date=2010-12-29}} (discusses January comp.os.minix posting, and design goals)

It quickly attracted considerable interest in a number of enthusiast communities.Usenet, various newsgroups (comp.editors, comp.sys.*, comp.os.*), 1990

Andrew Tanenbaum quickly asked the community to decide one of these two editors to be the vi clone in Minix;{{cite newsgroup

|title=Elvis vs. stevie

|author=Andrew S. Tanenbaum

|date=1990-01-18

|newsgroup=comp.os.minix

|message-id=5133@ast.cs.vu.nl

|url=https://groups.google.com/group/comp.os.minix/msg/e6697b44895069e8?dmode=source

|access-date=2010-12-29}} 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.{{cite book

| last1 = Robbins

| first1 = Arnold

| last2 = Hannah

| first2 = Elbert

| last3 = Lamb

| first3 = Linda

| title = Learning the vi and vim editors

| url = http://oreilly.com/catalog/9780596529833

| chapter-url = https://books.google.com/books?id=Eb8J3BONVxAC&pg=PA307

| access-date = 2010-12-29

| edition = 7th

| year = 2008

| publisher = O'Reilly Media, Inc.

| isbn = 978-0-596-52983-3

| pages = 307–308

| chapter = Chapter 16: nvi: New vi

}}

In August 1994, Kirkendall announced that he was working on a major rewrite of Elvis,{{cite newsgroup

|title=Elvis 2.0 is not released, but...

|author=Steve Kirkendall

|date=1994-09-07

|newsgroup=comp.editors

|message-id= 324d04$9vh@rigel.cs.pdx.edu

|url=https://groups.google.com/group/comp.editors/msg/309640240dca0847?dmode=source

|access-date=2010-12-31}} and in October 1996, it was ready for release.{{cite newsgroup

|title=Second Coming of Elvis (elvis 2.0 released)

|author=Steve Kirkendall

|date=1996-10-02

|newsgroup=comp.editors

|message-id= 52updt$qhj@rigel.cs.pdx.edu

|url=https://groups.google.com/group/comp.editors/msg/a487437e834d3bda?dmode=source

|access-date=2010-12-31}} 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,{{cite newsgroup

|title= It's official: Elvis 2.1 is hereby released

|author=Steve Kirkendall

|date=1998-12-09

|newsgroup=comp.editors

|message-id= 74n8au$2hh$1@sirius.cs.pdx.edu

|url=https://groups.google.com/group/comp.editors/msg/ed84b101e210690a?dmode=source

|access-date=2010-12-31}} 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.{{cite newsgroup

|title= Elvis 2.1_4 is now available

|author=Steve Kirkendall

|date=1999-10-22

|newsgroup=comp.editors

|message-id= 7uq0ib$lfc$1@sirius.cs.pdx.edu

|url=https://groups.google.com/group/comp.editors/msg/4d81669e47d23fe4?dmode=source

|access-date=2010-12-31}}

In October 2003, four years after the previous release, Kirkendall released Elvis 2.2,{{cite newsgroup

|title= Elvis 2.2 is now officially released

|author=Steve Kirkendall

|date=2003-10-20

|newsgroup=comp.editors

|message-id= 3f949d6b@nntp0.pdx.net

|url=https://groups.google.com/group/comp.editors/msg/3eeffa42b80cf9a1?dmode=source

|access-date=2010-12-31}} 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

{{notelist}}

References

{{Reflist|30em}}