LINUX.ORG.RU

nvim или vim

 ,


0

4

в связи с выходом Nvim 0.5 снова задаюсь вопросом, а что лучше - Nvim или Vim? Почему?
Что в нете ни гуглил, пишут, что Vim устарел и мейнтейнер у него один, а больше и ничего.

Да, кому интересно - https://www.opennet.ru/opennews/art.shtml?num=55435



Последнее исправление: shleemypants (всего исправлений: 2)

Не юзай Neovim ни в коем случае.

anonymous
()
Ответ на: комментарий от fernandos

Дерево пока экспериментально, но если докрутят, то годнота, согласен.

shleemypants
() автор топика

Единственный минус nvim в его крайне наркоманской сборке: сабмодули приходится тянуть прямо в дерево, превращая его в кашу. Ну и в песочнице оно, естественно, не собирается нормально.

vim в этом плане консервативнее, поэтому собирается везде.

// Я одним из первых мигрировал на nvim, позже вернулся на старый-добрый vim.

mord0d ★★★★★
()
Ответ на: комментарий от fernandos

более здравый подход к разработке

Очень спорно. Стильно-модно-молодёжно, но сборку они тестят плохо (если вообще тестят), потому на каждой отдельной платформе свои эксклюзивные танцы с бубном.

mord0d ★★★★★
()

Уже давно пользуюсь neovim. Чем лучше – не знаю.

Im_not_a_robot ★★★★★
()

неовим сейчас какая-то каша. Встроенный LSP задолбаешься конфигурировать, для части плагинов надо писать конфиги на vimscript, для другой на lua…

Перебрался на kakoune, там есть большая часть того что мне надо

Lrrr ★★★★★
()
Ответ на: комментарий от xaizek

Да я нуб. У меня то и плагинов пару. Потому и спрашиваю.

shleemypants
() автор топика
Ответ на: комментарий от Lrrr

Встроенный LSP задолбаешься конфигурировать

В каком смысле? Там всё достаточно просто. Главное — поставить nvim-lspconfig.

fernandos ★★★
()
Ответ на: комментарий от fernandos

Я тоже сидел на HEAD, и тоже был полёт нормальный. Только перед этим пришлось потрахаццо со сборкой, ну и открутить от песочницы почти все ограничения.

mord0d ★★★★★
()
Ответ на: комментарий от pon4ik

https://tree-sitter.github.io/

Если коротко, то это система парсинга, которая позволяет создавать парсеры для множества ЯП. В редакторе это может использоваться для лучшей подсветки синтаксиса и работой с конструкциями языка.

fernandos ★★★
()
Ответ на: комментарий от pon4ik

Это типа изкоробки в nvim завести собираются

Пока поддержка экспериментальна. Можете потыкать неовим + три-ситтер, установка тривиальна.

Ужос, а как-же тормозная подсветка

А всё уже.

fernandos ★★★
()

Новость отличная. Больше года беспроблемно пользуюсь для фронтенд-разработки. Переходить точно стоит.

Почему? Тут я согласен с Im_not_a_robot – не знаю, почему.

lead_bro
()
Ответ на: комментарий от fernandos

На генте я сам писал себе ебилд, тогда его ещё не было.

Я же сказал что был одним из первых.

mord0d ★★★★★
()
Ответ на: комментарий от lead_bro

Да вы троллите меня в кубе! Даже не в квадрате!
А сам пробовал просто делать работу в Vim? Есть отличия с Nvim?
Может настройки? Или поведение? Скорость, кхм?

shleemypants
() автор топика

До vim8 перешел на неовим, вот вернулся пару месяцев назад на вим, благо конфиг был еще не сильно под неовим переделан.

Много багов у меня вылазило со встроеным терминалом (какие-то баги с автопереходом в инсерт мод, глитчи (цветные квадраты) из-за matchparen плагина и т.д.). Да и вообще мне больше нравится, как реализованы терминал, всплывающие окна в виме. Не хватает разве, что только virtualtext фичи для некоторых вещей. А так lsp - есть vim.lsp и coc.nvim. Последний так намного лучше работает из коробки для многих типа автокомплита, сниппетов, линтинга и т.д. Плюсы neovim-lsp - настраиваемость, все же coc.nvim сильно прибит гвоздями и многие выводы от lsp сервера нереально преобразовать как тебе надо. Tree-sitter - экспериментальная вещь, которая тормозит иногда намного больше чем подсветка вима. + описывать все эти «деревья» минимум в 10 раз сложнее чем создать синтакс файл для вима. Но конечно возможностей по итогу будет больше и помимо посдветки. Надо ждать - может что-то и получится из этого.

А так слишком как по мне мейнтейнеры neovim увлеклись Lua - много багов не фиксилось (посмотрим что с релизом изменится). Да и вообще мейнтейнеры там меняются каждый год. Некоторые вещи из из api, которые сделались уже переписаны были несколько раз (или добавлены новые, которые посвторяют тоже самое), но «СОВМЕСТИМОСТЬ» оставили, таким темпом там легаси больше чем у вима будет.

Ну и сейчас я смотрю начался бум lua-плагинов для неовима, но это две стороны монеты (да можно там и на нормальные вещи наткнуться), но в основном - это ужасный код от вчерашних школьников с сомнительными функциями (так какие-нибудь финтифлюшки типа всплывающих окон иногда только блокирующие чтение текста) и 0 документации.

Да пинок Браму в свое время неовим прописал и это есть хорошо. Но вим сейчас развивается чуть ли не быстрее форка, да и фиксятся там проблемы быстрее.

StillSteal
()
Последнее исправление: StillSteal (всего исправлений: 1)
Ответ на: комментарий от StillSteal

Спасибо за развёрнутый ответ. Мне встроенный терминал не интересен, а вот подсветка кода (ts/js) да нормальная тема с true-color…

shleemypants
() автор топика

Пару лет назад сделал универсальный конфиг, поддерживающий вим8 и неовим. Использую попеременно и то, и другое - особой разницы в скорости и поведении не вижу.

В неовиме более удачные настройки по умолчанию. Настраивать надо меньше, конфиг получается короче и чище. Есть полезная фича live substitution, которая позволяет видеть результаты замены текста прямо на лету, по мере набора команды. Выпадающее меню по табу (wildmenu) сделано покрасивее, чем в виме. С другой стороны в неовиме отломали запуск интерактивных команд через :!, из-за чего приходится пользоваться встроенным терминалом. Я тоже думаю, что встроенный терминал лучше реализован в виме, но в неовиме тоже можно настроить идентичное поведение. Больше особых отличий не припомню. В общем если надо только править конфиги, то переходить на неовим не имеет никакого смысла. Обычного вима хватит с головой.

Для разработки другое дело - неовим потенциально выглядит интереснее. Этакая вим-базед альтернатива вскоду. Встроенный LSP позволит выкинуть костыли вроде coc.nvim, а treesitter должен обеспечить умную семантическую подсветку как в больших IDE вместо простой подсветки на регулярках. Но это все пока экспериментальщина и только-только начинает развиваться. Возможно через год-другой после релиза 0.5 все это устаканится, появятся стабильные популярные луа плагины вместо школьных поделок, и всем этим уже можно будет пользоваться.

archie
()
Ответ на: комментарий от archie

Я не знаю, потихоньку разрабатываю в Vim. Что Coc, что VimPlug жрать не просят, работают и матерятся чётко (гони git, гони nodejs).

Nvim не ставил, а тут новость, что его пилят активно. Вот и думаю - а что там? Конфиг vim у меня на 1 страницу. https://paste.centos.org/view/1e511706

shleemypants
() автор топика
Ответ на: комментарий от archie

Встроенный LSP позволит выкинуть костыли вроде coc.nvim, а treesitter должен обеспечить умную семантическую подсветку как в больших IDE вместо простой подсветки на регулярках

семантическую подсветку может предоставлять lsp-сервер, так что если честно, то я не вижу особого смысла в treesitter

Lrrr ★★★★★
()
Ответ на: комментарий от shleemypants

Если все четко работает и жрать не просит, то неовим 0.5 пока тебе ничего не даст. Через годик может быть имеет смысл потыкать его палочкой еще раз и посмотреть, как он по сравнению со связкой Vim8 + Coc. На данный момент переход на неовим поможет разве что упростить конфиг, ну там убрать всякие опции типа encoding, nocompatible, autoread, autoindent. В неовиме они уже заданы по дефолту как надо. Вот этот хак в неовиме тоже не нужен:

" this is fu hack for xterm(st) and termguicolors
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"

Еще неовим умеет искаропки менять форму терминального курсора в зависимости от текущего режима, а в виме опять же надо руками прописывать нужные ESC-последовательности. Но все это мелочи, а чего-то лучшего по сравнению с Vim8 + Coc неовим пока предложить не может.

archie
()
Ответ на: комментарий от archie

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

Значит, пора тушить свет.

shleemypants
() автор топика
Ответ на: комментарий от Lrrr

семантическую подсветку может предоставлять lsp-сервер, так что если честно, то я не вижу особого смысла в treesitter

Весь смысл treesitter в том, что он обновляет AST по мере набора текста на стороне клиента, без всяких запросов туда-сюда к LSP серверу. В теории подсветка должна обновляться шустрее и лаги должны быть меньше, чем с LSP сервером. Ну и кроме того treesitter дает 100% точную подсветку для всякой разметки и языков без LSP сервера, т.к. он реально парсит текст, а не тыкается в него регулярками вслепую. А вот как это будет работать на практике - посмотрим.

archie
()
Ответ на: комментарий от StillSteal

Спасибо, гляну, не знал о таком. Раньше я пользовался плагином vim-sensible, но в итоге разделил конфиг на несколько файлов и прописал вимо-специфичные опции в одном файле, а неовимо-специфичные в другом.

archie
()

Каждый раз я запускаю nvim, вижу, что он по-прежнему не сбрасывает состояние курсора при выходе, и забываю об этой поделке ещё на полгода-год.

anonymous
()

Если не знаешь и нужно писать тексты обвешавшись плагинами используй просто vim/gvim. Ну, а если хочешь приключений и вечной беты то велкам ту нвим. Всё что туда принесли и всё что выпилили в реальности почти всегда нахрен не нужно и касаемо выпиленного «зачем убрали?».

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.