План:
- Введение.
- С чего начать ознакомление с возможностями nvim.
- Написание первого конфига.
- А стоит ли пробовать настраивать собственный конфигурационный файл?
- Нюансы настройки окружающей среды.
- Выводы.
Введение
Всем привет, меня зовут Александр, я являюсь фронтенд разработчиком более 4-х лет. В этой статье хочу поделится с вами рассказом о том, как я переходил с горячо любимого редактора VsCode на neovim. В ходе статьи освещу как это себе представлял, как по факту происходил переход.
С чего начать ознакомление с возможностями nvim
В ходе написания статьи «Переход на новый редактор neovim», в рамках которой были описаны причины на neovim, я затрагивал тему того, как начинал свой переход на neovim. Здесь я опишу более подробнее, как у меня это происходило.
Все началось с того, что меня начали доставать тормоза VsCode во время работы, за целый день мог потерять много времени на эти зависания редактора. Ранее, в качестве саморазвития, мне на глаза попадались видео, в котором автор работает в vim, прямо в консоле. Еще больше меня поразило, что это был фронтенд разработчик. Во время работы я заметил, что у него не глючит редактор, работает все быстро и стабильно. В тот момент времени мне хватало VsCode, но семена о том, что мне в будущем нужно будет рано или поздно переходить были посеяны. Было другое, в рамках которого автор показал, как современные редакторы кода работают с большими файлами (например логи, дампы sql таблиц, json файлы с данными и т. п.). По итогу nvim работает с такими файлами в разы быстрее, чем современные ide, хотя я понимаю, что таких задач может быть очень мало на практике, но все-равно нужно понимать, как их можно решить в наших реалиях. По итогу в остатке имеем, что если освоить и настроить nvim под себя, то работает более быстрее, удобней в работе, если привыкнешь работать в редакторе без мишы, меньше грузит систему. Для меня такая игра стоит свеч и было принято решение осваивать этот инструмент.
И вот наступил тот момент, когда начал осуществление ранее поставленной цели. Свое путешествие я начал с того, что послушал отечественных блогеров и о том, как они отзываются об этом редакторе. Смотрел я для этой цели следующие каналы: «RED Group», «Куда войти?», «PurpleSchool | Anton Larichev», «Диджитализируй!». Просмотром данных каналов хотел понять, что необходимо для перехода на nvim, как это можно сделать. После просмотра нескольких часов данного контента вывел следующую закономерность: все рассказывают о работе редактора, либо сразу о готовом решении. С одной стороны данный контент дал ответ, что так просто быстро перейти на nvim не получится, с другой не было подробной информации о том, как новичку начать изучение.
Написание первого конфига
Понимая, что по российским видео у меня не получится выучить ранее упомянутый редактор кода, мною было принято решение поискать гайд для начинающих у зарубежных авторов. Вот здесь сразу стало находится много того материала, который мне был так нужен, было не легко, но их разъяснения и комментарии давали в разы больше информации, чем у наших блогеров. Больше всего гайд для начинающих мне понравился на канале «typecraft», в рамках которого автор за несколько небольших видео объясняет, суть работы nvim и плагинов для него. По окончанию этого короткого курса у меня на руках был файлик с настройками наиболее популярных плагинов и понимание того, как эти плагины добавлять.
После этого я подумал, что необходимо далее самостоятельно добивать редактор под свои нужды. Это мнение я слышал, как от российских блогеров, так и от зарубежных. А т. к. я был новенький в этой теме, других путей решения я не видел для себя.
Вот здесь кроется моя самая главная ошибка, которая сожрала у меня наибольшее количество времени в изучении. Объясняю в чем она выражается, когда я просматривал видео, в которых авторы говорили, что необходимо самостоятельно писать конфигурационные файлы для nvim, то мною не было обращено внимание на дату выпуска этих видео.
Когда я изначально смотрел видео авторов, где они показывали свои сборки — это были видео до 2024 года, их особенность в том, что авторы делали свои собственные сборки. Особенно меня вдохновил автор «devaslife». В одном из своих видео за 2022 он показывал, как настраивал свою сборку - How to set up Neovim for coding React, TypeScript, Tailwind CSS. А вот в видео под конец 2023 года в работе он использует готовую сборку LazyVim. Свой переход к готовой сборке он объяснил тем, что плагины быстро обновляются и решать проблемы после каждого обновления того или иного плагина занимает очень много времени + у него сборка была написана на устаревшем менеджере пакетов Packer. После ознакомление с его мнение мною было решено ознакомится и с готовыми сборками и дать им шанс на жизнь. После ознакомления с несколькими сборками я понял, что они используют те же самые готовые плагины, что и большинство, соответственно, почему бы их тогда не использовать, как готовое решение, которое можно подогнать под себя?
После понимания этой мысли я вернулся к изучению его новой сборки, чтобы посмотреть, что он с ней сделает и, может быть, взять что-нибудь на вооружение, что-нибудь себе. В итоге взял только тему, которая очень понравилась, но не более. После этого я полез в документацию LazyVim и после нескольких часов ее изучения и проб работы у меня получилось настроить первые варианты использования редактора кода, которого добивался.
Если возвращаться к моей ошибки, то она кроется в том, что после изучения основ написания конфигурационных файлов nvim мне нужно было сразу переходить к готовым сборкам и пробовать их настраивать под себя. А я после изучения основ пробовал делать собственную сборку. Вот в этом и заключалась моя ошибка.
А стоит ли пробовать настраивать собственный конфигурационный файл?
И собственно еще нет ответа на вопрос стоит ли писать сейчас собственную сборку? Учитывая сейчас большое количество готовых сборок, я считаю, что нет, потому что те самые сборки используют те же плагины, что и вы будете себе устанавливать, а вот решение проблем и ошибок при настройке нужно будет решать самостоятельно. При использовании готовой сборки время на исправление проблем и ошибок не будет потеряно, т. к. они уже решены за вас — берите и испрользуйте готовое решение.
Нюансы настройки окружающей среды.
В ходе изучения плагинов хочу поделится теми наблюдениями, выводами и ситуациями, на которые обратил внимание, когда выбирал те или иные плагины для решения своих вопросов. Во-первых, мне для изучения nvim пришлось разбираться в командных оболочках unix систем. В статье «Переход на новый редактор neovim» я упоминал о них и обосновал свой выбор. В данный момент времени я выбрал zsh и использую его в своей работе.
После этого мне пришлось изучить такой вопрос как мультиплексоры и их различие. Здесь мне пришлось изучать разные решения. Большинство блогеров используют в работе макбуки и пользовались мультиплексором iterm2. Соответственно, мне пришлось искать иное решение. В своих поисках я, пока, остановился на использовании трех терминалов: стандартный терминал от linux, который идет из-под коробки в системе; kitty, если мне нужно работать с картинками в системе; tmux, находится в процессе изучения и понимания — нужен ли мне этот терминал или достаточно стандартного терминала от линукс. В данный момент времени я больше использую стандартный терминал linux, но в дальнейшем в своей работе буду переходить на kitty и tmux, чтобы в итоге оставить только один терминал для работы. Также, для корректной работы вышеуказанных терминалов необходимо ознакомится с семейством шрифтов Nerd Font и добавить его в настройки используемого терминала.
Во-вторых, обращайте большее внимание на описание readme файла в плагинах и что требуется для работы того или иного плагина. Мне для работы плагинов пришлось ставить дополнительные пакетные менеджеры, что затянуть в систему те или иные пакеты для работы требуемого плагина. Такое же необходимо смотреть и для работы lsp, линтеров, претиеров. Также необходимо понимать, что не увсех языков есть претиеры и если его нет, то не нужно об этом тогда беспокоится.
В-третьих, картинки можно отобразить в терминале, для этого требуется использовать плагин image.nvim и все дополнения, которые он требует для работы в описании readme.
Выводы
По итогу могу сказать, что у меня получилось добиться того, чтобы я мог хоть сейчас перейти в nvim и работать в нем, осталось только уладить несколько вопросов иного плана, чтобы использовать его везде. На этой ноте желаю вам не повторять моих ошибок, сделать из них выводы и попробовать для себя этот замечательный редактор. Всем спасибо за внимание, увидимся в скором будущем на страницах моего блога.