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

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

Основные улучшения:

  • В графический интерфейс (gvim) добавлена поддержка протокола Wayland, включая возможность использования буфера обмена в окружениях на базе Wayland.
  • На unix-подобных системах реализована поддержка спецификации Freedesktop.org XDG Base Directory и возможность использования каталога «~/.config/vim» для хранения настроек.
  • В интерфейсе пользователя реализована вертикальная (боковая) панель вкладок (tabpanel), которую можно использовать в качестве альтернативы горизонтальной верхней панели.
  • В варианта графического интерфейса для Windows появилась поддержка тёмного режима оформления меню и заголовков. Улучшена поддержка полноэкранного режима и преложены более качественные пиктограммы в панели инструментов.
  • В механизм автодополнения в режиме вставки добавлена поддержка приблизительного поиска, позволяющего находить неточные совпадения с шаблоном (например, находить невзирая на опечатки). Также реализована поддержка дополнять ввод слов непосредственно содержимым из регистров (комбинаций CTRL-X CTRL-R покажет меню выбора для вставки слов, хранящиеся в регистрах Vim). В параметр «completeopt» добавлена поддержка флагов «nosort» и «nearest» для отключения сортировки списка подсказок и для повышения приоритета слов рядом с курсором.
  • Встроен плагин для интерактивного обучения («:Tutor»), наглядно отображающий информацию цветом, позволяющий возобновить обучения с прерванного задания и способный проверять правильность выполнения команд.
  • Значительно расширены возможности языка для создания скриптов, в котором реализована встроенная поддержка перечислений (Enum), обобщённых функций (Generic) и кортежей (тип Tuple). Предоставлена возможность вызова встроенных функций в форме методов объекта. В классы добавлена поддержка protected-конструкторов _new(). Для компиляции методов предложена команда «:defcompile».
  • В режим сравнения файлов (diff mode) добавлен алгоритм «linematch», включаемый через настройку «diffopt», который находит похожие части строк и выравнивает их друг напротив друга для более точной подсветки изменений. Реализована опция «diffanchors», позволяющая вручную определить «якоря» для принудительного разделения файла на секции, которые будут сравниваются независимо друг от друга для исключения сравнения между собой не тех частей в сложных файлах. Улучшена подсветка изменения отдельных символов в одной строке — для настройки подобной подсветки в настройку «diffopt» добавлена опция «inline», которая может принимать значения «inline:simple» (как раньше), «inline:char» (выделение на уровне символов) и «inline:word» (выделение на уровне слов).




  • Изменены значения по умолчанию параметров:
    • ‘history’ (50 =› 200)
    • ‘backspace’ («» =› «indent,eol,start», типовое поведение клавиши Backspace)
    • ‘diffopt’ («internal,filler» => «internal,filler,closeoff,indent-heuristic,inline:char»)
    • ‘fontsize’ (10pt =› 12pt, оптимальнее для High-DPI мониторов)
    • ‘showcmd’ (Off =› On, команды всегда видны)
    • ‘ruler’ (Off =› On, показывается позиция курсора)

Источник: http://www.opennet.ru/opennews/art.shtml?num=64802