Skip to content

Neovim

Neovim — текстовый редактор с TUI интерфейсом, основанный на Vim. По сравнению с ним была улучшена кодовая база, добавлена поддержка ЯП Lua для настройки, программа стала удобнее "из коробки" и это еще далеко не все! Neovim стал настолько успешным, что многие редакторы, например Helix, стали им вдохновляться.

Важно

Рассматриваемая программа не подходит тем, кто не готов разбираться в тонкостях ее конфигурирования! Здесь придется делать все вручную при помощи различных инструкций. Также стоит отметить, что в Neovim сильно отличается взаимодействие как с текстом, так и с самим редактором.

Установка из репозитория

Neovim можно установить при помощи терминала:

shell
su -
apt-get update
apt-get install neovim

Настройка

Для того чтобы иметь возможность конфигурирования Neovim, нужно создать ему соответствующую директорию следующим образом:

shell
cd ~/.config
mkdir nvim

После этого нужно зайти во внутрь и создать там файл init.vim или init.lua. Так как мы используем Neovim, рекомендуется использовать второй вариант с применением ЯП Lua. Однако никто не запрещает вам воспользоваться первым вариантом с применением ЯП VimScript.

Для этого можно воспользоваться следующими командами:

shell
cd nvim
touch init.lua

Теперь вам нужно открыть этот файл, например, при помощи Neovim:

shell
nvim init.lua

Теперь вы можете прописывать определенные параметры внутри открытого файла для изменения функционала рассматриваемой программы. В зависимости от созданного вами файла параметры будут отличаться. В качестве примера рассмотрим параметр для добавления нумерации строк, которой нет по умолчанию:

shell
vim.opt.number = true

Информация

Возможно, вам покажется, что вариант с использованием Vimscript (init.vim) более простой, чем его аналог на Lua (init.lua). Однако первое впечатление зачастую обманчиво, и это тому пример. Параметр на VimScript, возможно, и легче, но как только у вас появятся плагины, вы поймете, что сильно ошибались. К тому же разработчики расширений, как правило, теперь используют Lua, ведь он проще и быстрее. Поэтому у вас могут возникнуть проблемы с VimScript, если он понадобится вам для чего-то большего, чем просто параметры Neovim.

Как видите, настройка Neovim не сильно сложная, но хранение всего конфига в одном файле очень быстро станет не удобным. Дабы решить эту проблему, можно создать специальную структуру каталогов с разбиением конфигурации на любое количество каталогов и файлов. Посмотреть подобную реализацию, а также узнать о многих полезных параметрах на ЯП Lua с объяснением на русском языке можно в сборке под названием FixVim.

Дистрибутивы и сборки Neovim

Если вы не хотите настраивать Neovim с нуля, то для вас есть несколько решений: различные дистрибутивы и сборки. В любом случае полностью избежать настройки и изучения программы не выйдет, но это может существенно упростить данные процессы. Для начала стоит разобраться, в чем между ними разница и что вам больше подходит.

Информация

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

В основном их не используют как готовое решение, так как оно делалось исключительно под нужды конкретного человека. Однако в ней зачастую можно найти интересные решения для своей сборки. В качестве примера можно посмотреть на такие сборки, как Mynvim и It-Thougts-neovim. Кстати, FixVim, о котором было сказано ранее, тоже можно отнести к сборкам.

Информация

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

Примерами дистрибутивов могут послужить крайне известные LunarVim, AstroNvim и NvChad. Все представленные сборки и дистрибутивы используют Lua, а не Vimscript, что еще раз подтверждает мои высказывания в их сторону.

Сочетания клавиш в Neovim

Как уже было сказано в начале страницы, рассматриваемый текстовый редактор имеет специфичную модель взаимодействия с текстом и самим редактором. Привычные сочетания клавиш здесь применить не получится. Например, для копирования вместо Ctrl+c нужно использовать просто английскую букву y. Для вставки нужно использовать английскую букву p вместо привычного Ctrl+v. При этом по умолчанию отсутствует возможность использования глобального буфера обмена для копирования/вставки чего-либо из вне. Поэтому данный функционал еще требуется настроить. Узнать подробнее про сочетания клавиш в Neovim можно в этой статье.

Информация

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

Режимы Neovim

Данный текстовый редактор также отличается и в разграничении возможностей. Например, в VS Code можно перемещаться по тексту при помощи мыши и стрелок на клавиатуре. По большому счету, это все, на что он способен. Однако Neovim и тут смог выделиться в лучшую сторону. У него существует множество различных режимов, каждый из которых выполняет свою узконаправленную роль.

Normal Mode

Нормальный режим является режимом по умолчанию. В нем можно использовать горячие клавиши и стрелки на клавиатуре. Редактировать текст нельзя. Для перемещения используются клавиши hjkl.

Insert Mode

В данном режиме можно изменять текст. Для перемещения можно использовать только стрелки на клавиатуре. Существует несколько способов войти в него. Разница заключается лишь в расположении курсора после входа.

Visual Mode

Визуальный режим позволяет выделять текст тремя различными способами: построчно, блоком и хаотично.

Command Mode

В этом режиме можно выполнять команды NeoVim. Например, этот режим используется для вызова установленных плагинов. Еще одна особенность данного режима заключается в том, что он использует VimScript для написания команд. Поэтому в нем можно применять параметры NeoVim, написанные на нем.

Replace Mode

В данном режиме можно изменять текст не при помощи удаления и написания нового, а при помощи написания нового сразу поверх старого.

Авторы

The avatar of contributor named as Жора Змейкин Жора Змейкин
The avatar of contributor named as Максим Остапенко Максим Остапенко
The avatar of contributor named as Давид Султаниязов Давид Султаниязов
The avatar of contributor named as Антон Политов Антон Политов
The avatar of contributor named as Кирилл Уницаев Кирилл Уницаев
The avatar of contributor named as h3try h3try
The avatar of contributor named as Олег Щавелев Олег Щавелев

История изменений