[О блоге] [наверх] [пред] [2020-07-13 11:35:38+03:00] [13569c508a8e5d097fb83d397c08426da7cbfe9d]
Темы: [vim]

NeoVim актуальность

Пока возился эти дни с LSP, то очень много упоминаний и ссылок делается
к NeoVim. Всякие tutorial и прочее тоже приводятся для NeoVim. Почему
его выбирают? Самый частый ответ (если его дают) -- ну типа он более
современный. Ну это чисто хипстерство.

В 9277f9c64ce93baad82ec8dd8f9a938b25cf93dd уже писал про попытку его
использования. В целом оно работает, безусловно. Но почти с самого
начала всё равно присутствуют отличия в мелочах. Мелочи, но всё равно
заметные, а значит полной совместимости нету. Основная feature NeoVim
на момент его появления -- асинхронная работа с job-ами. Но в Vim8
появилась более простая, JSON based реализация этого: главную feature
NeoVim она аннулирует и сделана просто более удобнее и проще. Async IO,
channels, background jobs, timers -- всё это очень просто работает и без
всякого MessagePack (против формата ничего не имею, даже люблю его, но
это Vim это не HPC). Эмулятор терминала, если и кому нужен был -- в
Vim8.1 появился. Менеджер пакетов появившийся в Vim8 -- идеальный, каким
и должен быть, аннулирует надобность во всех остальных. А Vim8.2
содержит popup-ы и text properties которые как-раз задействованы вовсю в
LSP плагинах.

Возможно, с точки зрения разработчика Vim, NeoVim попроще и лучше
архитектурно устроен, но с точки зрения пользователя (меня), я не вижу
ни одного преимущества. Но вижу два недостатка: всё же он не полностью
совместим и его поведение отличается; для сборки нужен C++ и CMake и
сборка длится очень долго. Vim же собрать на моём ноутбуке: полминуты,
нужен только Make и C.

Главная ценность NeoVim схожа с nvi: при их появлении они чем-то лучше
Vim и это даёт пинок Мууленаару для улучшения Vim. Они являются
акселераторами развития Vim. И Мууленаар делает в итоге, с точки зрения
пользователя, лучше и проще.

    [оставить комментарий]