From: Sergey Matveev Date: Mon, 13 Jul 2020 08:35:38 +0000 (+0300) Subject: NeoVim актуальность X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=13569c508a8e5d097fb83d397c08426da7cbfe9d;p=stargrave-blog.git 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. И Мууленаар делает в итоге, с точки зрения пользователя, лучше и проще. ---