LINUX.ORG.RU

Переезд с vim на neovim

 


0

5

Когда-то давным-давно я напилил конфиг вима, суть которого заключалась в установке кучи плагинов через vundle и тюнинга ограниченного числа опций.

Посмотрел обзоры neovim, все эти клевые фичи: tree-sitter, telescope, встроенная поддержка lsp, поддержка rgb-цвета в терминале — и захотелось туда переехать.

Но возникли вопросы:

  1. Среди цветовых схем с поддержкой tree-sitter не понравилась ни одна. Насколько сложно допиливается обычная схема до поддержки tree-sitter и есть ли об этом мануалы?

  2. Автор nvim продвигает идею, что ctrl-n/ctrl-p/ctrl-y — это прямо очень удобно для автокомплита, с чем я категорически не согласен. Если уж доходит до выбора варианта из выпадающего меню, я предпочитаю стрелки + tab. И, помнится, были какие-то приключения с PUMvisible, чтобы сделать более-менее вменяемое поведение. Насколько эта часть кастомизируемая? Можно ли допилить до состояния «после ./-> показываем варианты автокомплита автоматом, в противном случае только по хоткею»?

  3. Есть ли в neovim какие-нибудь красивые интеграции со внешними форматтерами? Понятно, что можно настроить комбинацию на запуск clang-format по хоткею, но вдруг есть что-то более современное? Опять-таки видео от разработчиком neovim с приседаниями вокруг связки lsp+format пугает.

Ответ на: комментарий от bread

предпочитает нажимать одну клавишу

Именно, и клавиши эти h,j,k,l, которые не требуют отрыва рук от правильного положения рук на клавиатуре. Даже «пердолинг» с Ctrl не требует отрыва рук, чего не скажешь про использование стрелок, отсюда и комментарий о том, что для пользователя vim'a предпочитание стрелок - нонсенс

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

Тема про completion в режиме вставки. Запрещать себе там стрелки очень неудобно. Но я знаю, что адепты готовы кувыркаться через голову и переключать режимы каждую секунду, лишь бы пальцы не снимать с home row. Хотя во всех прочих программах они это делают и не жужжат.

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

completion в режиме вставки

Использую https://github.com/Shougo/ddc.vim плагин для завершения слов, в нём вылетает менюшка и в ней через <Tab> можно выбрать нужный вариант. Наверное можно делать выбор и через стрелки, но мне <Tab> хватает с головой. Про Ctrl+n, Ctrl+p не в курсе

Jurik_Phys ★★★★★
()

Сейчас будет холивор, но все же дам совет: попробуй готовые сборки. Например, lazyvim в целом просто работает.

Там включен небольшой и адекватный набор плагинов, которые активно поддерживаются. Конфиг состоит из отдельных файлов и не нужно самому придумывать где/что включать/выключать. Дополнительно идет extras, которые можно включать индивидуально.

Готовая сборка - это не готовый конфиг. Все равно предполагается, что многое можно по желанию настроить под себя, включать/отключать/настраивать плагины.

Среди цветовых схем с поддержкой tree-sitter не понравилась ни одна. Насколько сложно допиливается обычная схема до поддержки tree-sitter и есть ли об этом мануалы?

Дело вкуса, но tokyonight/solarized/gruvbox не подходят? Там несколько вариантов каждой темы.

Если уж доходит до выбора варианта из выпадающего меню, я предпочитаю стрелки + tab.

В lazyvim стрелки по умолчанию; я не помню, там tab или ctrl+y по умолчанию, но можно менять как хочется. Это с использованием blink.cmp. В blink.cmp несколько дефолтных вариантов, см. доки про keymap. Раньше все использовали nvim-cmp, но он вроде медленнее и не поддерживает быстрый fuzzy search. В nvim-cmp все тоже настраивается.

Есть ли в neovim какие-нибудь красивые интеграции со внешними форматтерами?

conform.nvim; опять же по умолчанию в lazyvim. Можно по хоткею, можно при сохранении файла.

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

Другая сборка, которую я пробовал, - это astronvim. Но там значительно больше плагинов по умолчанию и некоторые плагины из astrocommunity не очень хорошо работают.

Из личного опыта дополнительно советую поставить:

  • neogit (это как magit в emacs примерно)
  • betterescape (jk - esc, чтобы руку не двигать, в т.ч. для visual mode и терминала)
  • rainbow-delimiters
  • yanky (это extras в lazyvim; visual mode + yank не возвращает курсор в начало!! + история yank)
Davidov ★★★★
()
Последнее исправление: Davidov (всего исправлений: 3)