Релиз текстового редактора Vim 8.2

После полутора лет разработки состоялся релиз текстового редактора Vim 8.2, который отнесён к категории незначительных выпусков, в котором устранены накопившиеся ошибки и предложены единичные новшества.

Код Vim распространяется под собственной копилефт лицензией, совместимой с GPL, и позволяющей без ограничений использовать, распространять и перерабатывать код. Основная особенность лицензии Vim связана с возвратом изменений — реализованные в сторонних продуктах улучшения должны быть переданы в исходный проект, если мэйнтейнер Vim посчитает эти улучшения заслуживающими внимания и отправит соответствующий запрос. По типу распространения, Vim относится к Сharityware, т.е. вместо продажи программы или сбора пожертвований на нужды проекта, авторы Vim просят перечислить любую сумму на благотворительность, если программа понравится пользователю.

В новой версии:

  • Реализована поддержка всплывающих окон, которые, наряду со свойствами текста, в ходе опроса на конференции VimConf 2018 были отмечены разработчиками плагинов как наиболее востребованные возможности, которых не хватает в Vim. Всплывающие окна позволяют отображать сообщения, отрывки кода и любую другую информацию поверх редактируемого текста. Данные окна могут быть подсвечены разными способами, быстро открыты и закрыты. Реализация указанной функциональности потребовала существенно доработки ранее используемых механизмов вывода на экран, а также расширения API для обеспечения работы со всплывающими окнами из плагинов.
  • Добавлена возможность определения свойств текста, при помощи которых можно выделять цветом куски текста или подсвечивать произвольные области. Свойства текста можно использовать в форме работающего в асинхронном режиме механизма выделения текста, альтернативного ранее доступным возможностям подсветки синтаксиса на базе шаблонов. Особенностью свойств текста также является, то что они прикреплены со связанным с ними текстом и сохраняются даже при вставке новых слов перед выделенным текстом.
  • Для наглядной демонстрации новых возможностей Vim 8.2 подготовлен плагин с игрой, позволяющей стрелять в бегущих по экрану овец. Бегущие овцы отображаются при помощи всплывающих окон, а расцветка реализована через свойства текста.

    Релиз текстового редактора Vim 8.2

  • Для демонстрации свойств текста дополнительно опубликован плагин govim, используемый для подсветки синтаксиса в программах на языке Go, получая информацию о семантике языка с внешнего LSP-сервера (Language Server Protocol). Всплывающие окна в govim используются для вывода контекстных подсказок для автодополнения имён и отображния описаний функций.
    Релиз текстового редактора Vim 8.2

  • Предложена новая команда «: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.

Источник: opennet.ru