Elvis es un clon mejorado del editor de texto vi , lanzado por primera vez en enero de 1990. Introdujo varias características nuevas, incluyendo resaltado de sintaxis y soporte integrado para visualizar documentos nroff y HTML . Elvis fue escrito por Steve Kirkendall y se distribuye bajo la Licencia Artística Clarificada (ClArtistic), que es utilizada por Perl y es una licencia de software libre compatible con GPL .
Elvis es la versión de vi que viene con Slackware , Frugalware y KateOS .
Elvis fue el clon pionero de Vi, ampliamente admirado en la década de 1990 por su concisión y muchas características. [2] [3] Influyó en el desarrollo de Vim hasta aproximadamente 1997. [4] [5]
Fue el primero en proporcionar resaltado de sintaxis en color (y en generalizar el resaltado de sintaxis a múltiples tipos de archivos), y el primero en proporcionar selecciones resaltadas mediante el teclado.
Las pantallas nroff (tempranas) y HTML (posteriores) integradas de Elvis le otorgaban características WYSIWYG inusuales .
Elvis también reconoce archivos binarios y proporciona una pantalla dividida para editarlos.
Está disponible la variante japonesa jelvis , basada en el trabajo de Jun-ichiro Itojun Hagino hasta 1998. [6] Su trabajo más reciente en esta área se ha distribuido como parches contra nvi . También está disponible una variante coreana helvis, originalmente de Park Chong-Dae. [7] [8] Estas variantes eran modificaciones de elvis 1.8 (10 de julio de 1994). [9] El editor nvi está basado en una versión anterior de elvis 1.5 (2 de abril de 1992). [10]
Elvis es un clon mejorado de vi. Para comprender el contexto completo en el que se creó Elvis, los lectores deben tener en cuenta la historia de vi . En esta sección, examinamos casi exclusivamente el historial de versiones de Elvis.
Steve Kirkendall publicó la primera versión de Elvis en el grupo de noticias de Usenet comp.os.minix a principios de enero de 1990, con la intención de que fuera un clon más completo y fiel de Vi que Stevie (editor de ST para entusiastas de VI) de Tim Thompson , publicado tres años antes. [11] [12] Kirkendall describió varias formas en las que Elvis era diferente de Stevie, a saber:
- El texto se almacena en un archivo temporal, al igual que el verdadero vi y a diferencia de stevie. Por ello, puedes editar archivos que sean más grandes que el espacio de datos de un solo proceso. Además, puedes recuperar tu archivo después de una falla o un corte de energía.
- Las teclas de flecha funcionan en modo de entrada. De hecho, si invocas el editor a través del nombre "input", comenzará a editar en modo de entrada. Puedes realizar los cambios y luego salir presionando Control-Z dos veces, y NUNCA entrarás en modo de comando visual. En otras palabras, elvis puede actuar prácticamente como un editor normal , algo que el verdadero vi ciertamente no puede hacer.
- Las líneas largas se muestran de forma diferente. Mientras que Vi y Stevie muestran la línea en varias filas de la pantalla, Elvis la muestra en una sola fila y te permite desplazarte hacia los lados.
Además, en Elvis funcionaban casi todos los comandos ex/vi (excepto :@, :abbr y :preserve en modo ex y @ en modo visual y al agregarlos a buffers nombrados). [13]
Rápidamente atrajo un interés considerable en varias comunidades de entusiastas. [14] Andrew Tanenbaum rápidamente pidió a la comunidad que decidiera uno de estos dos editores para que fuera el clon de vi en Minix ; [15] Se eligió a Elvis, y sigue siendo el clon de vi para Minix en la actualidad.
En 1989, Lynne Jolitz y William Jolitz comenzaron a adaptar BSD Unix para que funcionara en procesadores de la clase 386, pero para crear una distribución libre necesitaban evitar cualquier código contaminado por AT&T, incluido el vi de Bill Joy . Para llenar el vacío dejado por la eliminación de vi, su distribución 386BSD de 1992 adoptó Elvis como su reemplazo de vi. Pero en UC Berkeley, Keith Bostic quería un reemplazo "compatible con errores" para el vi de Joy para BSD 4.4 Lite. Usando Elvis (versión 1.8) de Kirkendall como punto de partida, Bostic creó nvi , que se lanzó en la primavera de 1994. [16]
En agosto de 1994, Kirkendall anunció que estaba trabajando en una reescritura importante de Elvis, [17] y en octubre de 1996, estaba listo para su lanzamiento. [18] La nueva versión tenía una serie de características nuevas, incluyendo
En diciembre de 1998, Kirkendall lanzó Elvis 2.1, [19] con características adicionales, incluyendo la finalización de nombres mediante la tecla <Tab>, protocolos de red (que permiten leer y escribir a través de URL de la Web) y un modo de visualización "tex". Kirkendall mantuvo la versión 2.1 con correcciones de errores y mejoras menores como 2.1_1, 2.1_2, 2.1_3 y culminó con 2.1_4, lanzada en octubre de 1999. [20]
En octubre de 2003, cuatro años después del lanzamiento anterior, Kirkendall lanzó Elvis 2.2, [21] que agregó una serie de nuevas características, incluido un corrector ortográfico sensible al contexto incorporado, plegado de texto , resaltado de regiones y protocolos de URL definibles por el usuario. Además, adoptó una serie de ideas de Vim .