Состоялся релиз консольного текстового редактора Vim 8.2.
Абсолютно новая функция Всплывающие окна
Добавлена поддержка всплывающих окон. Во всплывающих окнах, которые открываются поверх основного текста, может отображаться различная информация — сообщения, прототипы функций, куски кода и другая информация.
Предыстория
Один из разработчиков Vim на конференции VimConf 2018 задал вопрос разработчикам плагинов — что бы они хотели видеть в Vim? В результате был составлен большой список пожеланий. На первых строчках этого списка оказались два пункта — всплывающие окна и свойства текста.
На реализацию всплывающих окон было потрачено много времени и сил.
Разработчикам плагинов для использования всплывающих окон не нужно выполнять каких-то сложных действий. Достаточно указать содержимое окна. Окно создается автоматически, с автоматическим расчётом размера и положения.
Овечки
В качестве теста и частично в шутку была создана игра про овечек, которая работает прямо в Vim. Игра демонстрирует работу и возможности всплывающих окон. Каждая овечка представляет собой отдельное всплывающее окно, которое перемещается по экрану. Поддерживаются свойства текста и даже звук.
Другие изменения
Добавлена команда :const для создания констант:
const TIMER_DELAY = 42
Добавлена поддержка словарей с текстовыми полями:
let options = #{width: 30, height: 24}
Добавлена поддержка Heredoc формата («Здесь документ»):
let lines =<< trim END
line one
line two
END
Добавлена возможность создания цепочек функций:
mylist->filter(filterexpr)->map(mapexpr)->sort()->join()
Для расширения возможностей diff теперь используется библиотека xdiff.
Опция incsearch применяется также к :substitute
Добавлена настройка modifyOtherKeys
Комментарии