Релиз текстового редактора Vim 8.2
После полутора лет разработки состоялся релиз текстового редактора Vim 8.2, который отнесён к категории незначительных выпусков, в котором устранены накопившиеся ошибки и предложены единичные новшества.
Код Vim распространяется под собственной копилефт лицензией, совместимой с GPL, и позволяющей без ограничений использовать, распространять и перерабатывать код. Основная особенность лицензии Vim связана с возвратом изменений — реализованные в сторонних продуктах улучшения должны быть переданы в исходный проект, если мэйнтейнер Vim посчитает эти улучшения заслуживающими внимания и отправит соответствующий запрос. По типу распространения, Vim относится к Сharityware, т.е. вместо продажи программы или сбора пожертвований на нужды проекта, авторы Vim просят перечислить любую сумму на благотворительность, если программа понравится пользователю.
В новой версии:
- Реализована поддержка всплывающих окон, которые, наряду со свойствами текста, в ходе опроса на конференции VimConf 2018 были отмечены разработчиками плагинов как наиболее востребованные возможности, которых не хватает в Vim. Всплывающие окна позволяют отображать сообщения, отрывки кода и любую другую информацию поверх редактируемого текста. Данные окна могут быть подсвечены разными способами, быстро открыты и закрыты. Реализация указанной функциональности потребовала существенно доработки ранее используемых механизмов вывода на экран, а также расширения API для обеспечения работы со всплывающими окнами из плагинов.
- Добавлена возможность определения свойств текста, при помощи которых можно выделять цветом куски текста или подсвечивать произвольные области. Свойства текста можно использовать в форме работающего в асинхронном режиме механизма выделения текста, альтернативного ранее доступным возможностям подсветки синтаксиса на базе шаблонов. Особенностью свойств текста также является, то что они прикреплены со связанным с ними текстом и сохраняются даже при вставке новых слов перед выделенным текстом.
- Для наглядной демонстрации новых возможностей Vim 8.2 подготовлен плагин с игрой, позволяющей стрелять в бегущих по экрану овец. Бегущие овцы отображаются при помощи всплывающих окон, а расцветка реализована через свойства текста.
- Для демонстрации свойств текста дополнительно опубликован плагин govim, используемый для подсветки синтаксиса в программах на языке Go, получая информацию о семантике языка с внешнего LSP-сервера (Language Server Protocol). Всплывающие окна в govim используются для вывода контекстных подсказок для автодополнения имён и отображния описаний функций.
- Предложена новая команда »: const» для определения переменных, которые невозможно изменить:
const TIMER_DELAY = 400
- Добавлена возможность определения словарей с буквенными ключами без использования кавычек:
let options = #{width: 30, height: 24}
- Добавлена возможность блочных присвоений, упрощающих присвоение переменным многострочных кусков текста:
let lines =‹‹ trim END line one line two END
- Добавлена возможность построения цепочек функций при вызове методов:
mylist-›filter(filterexpr)-›map(mapexpr)-›sort()-›join()
- В основной состав включена библиотека xdiff, позволившая значительно улучшить представление различий разных вариантов текста;
- Добавлена настройка «modifyOtherKeys» для задания расширенных комбинаций клавиш
- Добавлена поддержка консоли ConPTY, позволяющая добиться отображения всех цветов в консоли Windows 10;
- Модернизирован установщик для Windows.
Дополнительно можно отметить, подготовку экспериментальной ветки редактора Neovim 0.5. Neovim представляет собой ответвления от Vim, сфокусированное на повышении расширяемости и гибкости. В рамках проекта уже более пяти лет проводится агрессивная переработка кодовой базы Vim, в результате которой вносятся изменения, упрощающие сопровождение кода, предоставляющие средства разделения труда между несколькими мэйнтейнерами, отделяющие интерфейс от базовой части (интерфейс можно менять не трогая внутренности) и реализующие новую расширяемую архитектуру на основе плагинов. Плагины к Neovim запускаются как отдельные процессы, для взаимодействия с которыми используется формат MessagePack.
Источник: http://www.opennet.ru/opennews/art.shtml? num=52031
© OpenNet