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

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

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

Ключевым улучшением в выпуске 8.1 является поддержка открытия терминала внутри окна Vim. Терминал стал первой видимой пользователю встроенной функциональностью, реализованной с использованием добавленных в ветке Vim 8.0 средств для организации запуска обработчиков в фоне и взаимодействия с ними через механизм асинхронных каналов, без блокировки работы основного процесса Vim. Создание окна с терминалом осуществляется командой «:term», для переключения в окно терминала и обратно предоставляется клавиатурная комбинация «CTRL-W w».

В качестве областей применения встроенного терминала упоминается:

  • Быстрый запуск серии команд в shell по ходу редактирования;

  • Выполнение сборочных команд, подобных make, продолжая редактирование кода в других окнах vim и контролируя ход сборки;

  • Запуск в терминале отладочного плагина для отладки непосредственно в Vim с возможностью ввода команд в gdb;

  • Проведение различных тестов, в том числе тестов интерактивных действий, таких как работа всплывающих меню;
  • Доступ к консоли при редактировании файлов на удалённом хосте, вход на который осуществлён по SSH (можно быстро запустить терминал, без применения screen/tmux и без установки нового ssh-соединения).

Среди других изменений:

  • В коде vim разрешено применение некоторых возможностей спецификации C99, таких как комментарии через «//» и оставление запятой после последнего элемента множества;
  • Добавлены новые команды: «:pythonx», «:pyxdo», «:pyxfile», «:terminal», «:tmapclear», «:tmap», «:tnoremap», «:tunmap»;
  • Добавлены новые функции: term_*, assert_beeps, assert_equalfile,
    assert_report, balloon_show, balloon_split, ch_canread, getchangelist, getjumplist, getwinpos, pyxeval, remote_startserver, setbufline, test_ignore_error, test_override, trim и win_screenpos;
  • Добавлены новые обработчики событий: CmdlineChanged, CmdlineEnter, CmdlineLeave, ColorSchemePre, DirChanged, ExitPre, TerminalOpen, TextChangedP, TextYankPost;
  • Добавлены новые опции: ‘balloonevalterm’,
    ‘imstyle’,
    ‘mzschemedll’,
    ‘mzschemegcdll’,
    ‘makeencoding’,
    ‘pumwidth’,
    ‘pythonhome’,
    ‘pythonthreehome’,
    ‘pyxversion’,
    ‘termwinkey’,
    ‘termwinscroll’,
    ‘termwinsize’,
    ‘viminfofile’,
    ‘winptydll’.

Дополнительно можно отметить, подготовку экспериментальной ветки редактора Neovim 0.3. Neovim представляет собой ответвления от Vim, сфокусированное на повышении расширяемости и гибкости. В рамках проекта уже более четырёх лет проводится агрессивная переработка кодовой базы Vim, в результате которой вносятся изменения, упрощающие сопровождение кода, предоставляющие средства разделения труда между несколькими мэйнтейнерами, отделяющие интерфейс от базовой части (интерфейс можно менять не трогая внутренности) и реализующие новую расширяемую архитектуру на основе плагинов. Плагины к Neovim запускаются как отдельные процессы, для взаимодействия с которыми используется формат MessagePack.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.