Elvis — это улучшенный клон текстового редактора vi , впервые выпущенный в январе 1990 года. Он представил несколько новых функций, включая подсветку синтаксиса и встроенную поддержку просмотра документов nroff и HTML . Elvis написан Стивом Киркендаллом и распространяется по лицензии Clarified Artistic License (ClArtistic), которая используется Perl и является лицензией свободного программного обеспечения, совместимой с GPL .
Elvis — это версия vi, которая поставляется с Slackware , Frugalware и KateOS .
Elvis был пионером клона vi, широко ценившимся в 1990-х годах за его краткость и множество функций. [2] [3] Он влиял на развитие Vim примерно до 1997 года. [4] [5]
Он был первым, кто обеспечил цветовую подсветку синтаксиса (и обобщил подсветку синтаксиса для нескольких типов файлов), первым, кто предоставил возможность подсвечивать выделенные фрагменты с помощью клавиатуры.
Встроенные в Элвиса дисплеи nroff (ранний) и HTML (поздний) придавали ему необычные функции WYSIWYG .
Elvis также распознает двоичные файлы и предоставляет разделенный экран для их редактирования.
jelvis , японский вариант, доступен, основанный на работах Jun-ichiro itojun Hagino до 1998 года. [6] Его более поздняя работа в этой области распространялась в виде патчей против nvi . Также доступен корейский вариант helvis , первоначально созданный Park Chong-Dae. [7] [8] Эти варианты были модификациями elvis 1.8 (10 июля 1994 года). [9] Редактор nvi основан на более старой версии elvis 1.5 (2 апреля 1992 года). [10]
Elvis — это улучшенный клон vi. Чтобы понять полный контекст, в котором был создан Elvis, читателям следует рассмотреть историю vi . В этом разделе мы рассмотрим историю версий Elvis почти исключительно.
Стив Киркендалл опубликовал первую версию Elvis в группе новостей Usenet comp.os.minix в начале января 1990 года, намереваясь сделать ее более полным и точным клоном Vi, чем Stevie Тима Томпсона (редактор ST для энтузиастов VI), выпущенный тремя годами ранее. [11] [12] Киркендалл выделил несколько моментов, в которых Элвис отличался от Стиви, а именно:
- Текст хранится во временном файле, как и настоящий vi , и в отличие от stevie. Благодаря этому вы можете редактировать файлы, размер которых больше, чем объем данных одного процесса. Кроме того, вы можете восстановить файл после сбоя или отключения питания.
- Клавиши со стрелками работают в режиме ввода. Фактически, если вы вызовете редактор через имя "input", то он начнет редактирование в режиме ввода. Вы можете внести изменения, а затем выйти, дважды нажав Control-Z, и НИКОГДА не переходите в режим визуальных команд. Другими словами, elvis может действовать практически как обычный редактор — то, чего настоящий vi определенно не может.
- Длинные строки отображаются по-разному. Если vi и stevie переносят строку на несколько строк экрана, то elvis отображает ее на одной строке и позволяет прокручивать вбок.
Кроме того, в Elvis работали почти все команды ex/vi (за исключением :@, :abbr и :preserve в режиме ex и @ в визуальном режиме и добавления к именованным буферам). [13]
Он быстро привлек значительный интерес в ряде сообществ энтузиастов. [14] Эндрю Таненбаум быстро попросил сообщество решить, какой из этих двух редакторов будет клоном vi в Minix ; [15] был выбран Элвис, который и по сей день остается клоном vi для Minix.
В 1989 году Линн Джолитц и Уильям Джолитц начали портировать BSD Unix для работы на процессорах класса 386, но для создания свободного дистрибутива им нужно было избежать любого кода, загрязненного AT&T, включая vi Билла Джоя . Чтобы заполнить пустоту, образовавшуюся после удаления vi, их дистрибутив 386BSD 1992 года принял Elvis в качестве замены vi. Но в Калифорнийском университете в Беркли Кейт Бостик хотел получить «совместимую по ошибкам» замену vi Джоя для BSD 4.4 Lite. Используя Elvis (версия 1.8) Киркендалла в качестве отправной точки, Бостик создал nvi , выпустив его весной 1994 года. [16]
В августе 1994 года Киркендалл объявил, что он работает над крупной переработкой Элвиса, [17] и в октябре 1996 года она была готова к выпуску. [18] Новая версия имела ряд новых функций, включая
В декабре 1998 года Киркендалл выпустил Elvis 2.1, [19] с дополнительными функциями, включая автодополнение имени с помощью клавиши <Tab>, сетевые протоколы (позволяющие читать/писать через веб-URL) и режим отображения "tex". Киркендалл поддерживал выпуск 2.1 с исправлениями ошибок и незначительными улучшениями как 2.1_1, 2.1_2, 2.1_3, и достигнув кульминации в 2.1_4, выпущенном в октябре 1999 года. [20]
В октябре 2003 года, через четыре года после предыдущего релиза, Киркендалл выпустил Elvis 2.2, [21] который добавил ряд новых функций, включая встроенную контекстно-зависимую проверку орфографии, сворачивание текста , подсветку регионов и определяемые пользователем протоколы URL. Кроме того, он перенял ряд идей из Vim .