Следует ли мне использовать Neovim?

2023-09-17 10:54:43

Введение

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

Вероятно вы уже пробовали vim/neovim (и не смогли из него выйти), однако сразу поняли, что на понимание тонкостей и настройку вы потратите много времени. Поэтому, вероятно, вы предпочли иной редактор кода или IDE.

Забавно, что по результатам Stack Overflow Developer Survey 2022 Neovim является самым любимым редактором второй год подряд, а по итогам Developer Survey 2023 Neovim является самым “почитаемым” редактором.

Но не смотря на то, что Neovim получает высокую почтенность среди разработчиков, вопрос о том, стоит ли вам использовать его, все равно остается открытым. Давайте рассмотрим плюсы Neovim:

  1. Эффективность в наборе кода. Neovim разработан так, чтобы минимизировать использование мыши.

  2. Производительность

  3. Расширяемость. Neovim поддерживает широкий спектр плагинов, что позволяет настраивать его под свои потребности.

  4. Комьюнити и документация. Neovim имеет активное сообщество пользователей и разработчиков, что означает наличие обширной документации, гайдов.

Вероятно вас будут интересовать первые два пункта, поскольку для современных IDE большой спектр плагинов и комьюнити не являются чем-то новым. Что касается производительности, то Neovim действительно быстрый. Он запускается очень быстро, он так же победитель и в плане потребления памяти. И да, засчёт акцента на использование клавиатуры, вы действительно можете ускорить и набор кода.

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

Установка

В этой статье мы будем использовать уже готовые сборки конфигураций Neovim, предполагается, что вы имеете установленный nvim и минимальные знания (insert mode/command mode).

Но подождите, я ведь хотел сам настроить.

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

Итак, существуют разные конфигурации, такие как NvChad, LunarVim, однако мы используем AstroNvim, поскольку он изначально обладает широкими возможностями, которые упростят нам работу в последующем конфигурировании. Установка действительно простая, вам нужно всего лишь клонировать репозиторий и запустить nvim.

 git clone --depth 1 https://github.com/AstroNvim/AstroNvim ~/.config/nvim
 nvim

Далее, нам нужно ознакомиться с пакетным менеджером Mason, это плагин Neovim, который нам установил AstroNvim. Одной лишь командой :Mason и через удобный интерфейс, мы можем установить необходимые нам линтеры, форматтеры, LSP сервера

Используйте g? чтобы открыть помощь по Mason.

Что дальше?

Итак, не редактируя какие-либо файлы конфигураций, мы смогли установить необходимые нам инструменты для комфортной работы и уже сейчас вы можете начать использовать nvim.

Используйте официальную документацию AstroNvim, чтобы ознакомиться с основными командами и маппингами, это сильно упрощает работу. Если вы забыли тот или иной маппинг в конкретной ситуации, вы можете нажать ваш Leader Key (Space) и у вас отобразиться панель, с последующими комбинациями, которые вы сможете использовать.

AstroCommunity repository

AstroNvim так же имеет репозиторий с определенной подборкой, коллекцией плагинов. К примеру, вы хотите готовую подборку плагинов для работы на C++.

Для этого вам нужно создать свой “User configuration”. При желании, вы можете создать удаленный репозиторий, но мы сделаем это локально.

git clone https://github.com/AstroNvim/user_example.git ~/.config/nvim/lua/user

Далее, в файле ~/.config/nvim/lua/user/plugins вы можете указать, какие готовые подборки из AstroCommunity repository вы хотите использовать, в нашем случае это astrocommunity.pack.cpp.

 1return {
 2  -- Add the community repository of plugin specifications
 3  "AstroNvim/astrocommunity",
 4  -- example of importing a plugin, comment out to use it or add your own
 5  -- available plugins can be found at https://github.com/AstroNvim/astrocommunity
 6    { import = "astrocommunity.pack.cpp" },
 7    { import = "astrocommunity.colorscheme.dracula-nvim" },
 8    { import = "astrocommunity.pack.tailwindcss" },
 9    { import = "astrocommunity.pack.html-css" },
10    { import = "astrocommunity.pack.typescript" },
11}

При следующем входе в nvim, все необходимые плагины будут установлены автоматически.

Другие настройки

Конечно же, есть масса других настроек, вы можете продолжить настраивать редактор под себя, например, сменить тему или же поменять home screen.

В данной статье я использовал тему “Dracula”, которая была установлена через AstroCommunity repository. Изменять тему и иные настройки вы можете в файле ~/.config/nvim/lua/user/init.lua

21colorscheme = "dracula",

Давайте так же изменим дефолтный home screen. Сделать это можно в файле ~/.config/nvim/lua/user/plugins/core.lua.

Найдите некоторый генератор большого текста и используйте его в качестве home screen.

Вывод

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

В данной статье были опущены темы, такие как дебаггер, git(которые уже есть в сборке), поскольку целью являлось краткое введение и обзор основных возможностей готовых сборок.

Также автор использовал обычный gnome-terminal, вы же можете использовать tmux и другие терминалы для добавления transparency или других возможностей.

Не забывайте, что Neovim имеет активное сообщество, которое всегда готово помочь и поделиться советами, если у вас возникнут вопросы.

Полезные ссылки

Neovim website

AstroNvim website

AstroNvim default mappings

AstroNvim discord