Vis стремится стать современным, свободным от устаревших версий, простым, но эффективным редактором, сочетающим в себе сильные стороны vi(m) и sam.
Он расширяет модальное редактирование vi встроенной поддержкой нескольких курсоров/выборов и объединяет его со структурным командным языком Сэма, основанным на регулярных выражениях.
Универсальный редактор, имеет достойную поддержку Unicode и должен справляться с произвольными файлами, в том числе большими, двоичными или однострочными.
Эффективная подсветка синтаксиса обеспечивается с помощью грамматик синтаксического анализа, которые можно удобно выразить с помощью Lua в форме LPeg.
Ядро редактора написано на достаточно чистом (ваш опыт может отличаться), современном и не устаревшем коде C, что позволяет ему работать в средах с ограниченными ресурсами. Реализация должна быть простой для взлома и поощрять эксперименты. Существует также Lua API для внутрипроцессных расширений.
Vis стремится быть простым и фокусируется на своей основной задаче: эффективном управлении текстом. Обработка буфера обмена и орграфов, а также нечеткий диалог открытия файла предоставляются независимыми утилитами. Существуют планы использовать архитектуру клиент/сервер, делегируя управление окнами вашей оконной системе или любимому терминальному мультиплексору.
Цель не состоит в том, чтобы обеспечить полную совместимость с vi(m). Вместо,
мы стремимся предоставить более мощные функции редактирования, основанные на элегантном дизайне и чистой реализации.
Для сборки vis вам понадобится компилятор C99, среда, совместимая с POSIX.1-2008, а также:
Предполагая, что эти зависимости соблюдены, выполните:
$ ./configure && make && sudo make install
По умолчанию скрипт configure
попытается автоматически обнаружить поддержку Lua с помощью pkg-config(1)
. См. configure --help
для получения списка поддерживаемых опций. Вы также можете вручную настроить сгенерированный файл config.mk
.
Или просто используйте один из пакетов дистрибутива.
Документацию для конечного пользователя можно найти на странице руководства vis(1)
и в Wiki. Прочтите FAQ, где ответы на часто задаваемые вопросы. Узнайте о некоторых отличиях от sam(1)
и vim(1)
соответственно.
Также доступна документация по C API и Lua API.
Некоторые функции, которые не будут реализованы:
#ifdef
Есть много способов внести свой вклад, ниже приведены несколько идей:
:help
Чтобы начать, ознакомьтесь с обзором разработчиков и не стесняйтесь задавать вопросы на IRC-канале #vis-editor
на libera (присоединяйтесь через браузер).