Найти тему

Превращаем редактор в IDE: базовая конфигурация Neovim для Linux

Оглавление

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

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

Установка и запуск Neovim

Превращение Neovim в полноценную IDE будет происходить на дистрибутиве Manjaro Linux, основанном на Arch, поэтому для установки консольного текстового редактора нужно выполнить следующую команду:

sudo pacman -S neovim

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

nvim

Про то, как установить ZSH и что такое алиасы я рассказывал ранее на канале. Ссылки на статьи найдете ниже.

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

Neovim в базовой конфигурации
Neovim в базовой конфигурации

Чтобы выйти из Neovim необходимо нажать клавишу двоеточия (:) и после того, как внизу появится поле для ввода, ввести туда прописную латинскую букву q (quit - выход).

Готовимся к выходу из Neovim
Готовимся к выходу из Neovim

В принципе, вы узнали все, что необходимо знать про VIM-подобные текстовые редакторы, на этом можно заканчивать статью и расходиться по своим делам.

Шутка про выход из VIM-подобных редакторов с одной стороны уже набила оскомину, но с другой крайне популярна в программистском сообществе
Шутка про выход из VIM-подобных редакторов с одной стороны уже набила оскомину, но с другой крайне популярна в программистском сообществе

Создаем пользовательский файл конфигурации

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

Пользовательский конфигурационный файл должен располагаться внутри папки nvim, которая в свою очередь должна лежать внутри папки .config, а она находится в домашней директории пользователя. Получается, что итоговый путь до папки с конфигурационным файлом Neovim выглядит так:

$HOME/.config/nvim/init.vim

Сам файл называется init.vim и внутри него как раз будут размещаться необходимые пользователю настройки. Естественно, при первом запуске редактора никакого файла конфигурации и папки для его хранения не существует, поэтому давайте создадим их. Для этого выполним две простые команды:

mkdir -p $HOME/.config/nvim

nvim $HOME/.config/nvim/init.vim

Первая команда создает папку nvim для хранения конфига, вторая создает и открывает в Neovim конфиг для редактирования. В моем случае конфигурационный файл уже сделан заранее и хранится в Яндекс Диске, поэтому мне достаточно просто скопировать его в папку .config. Но для данной статьи я создам конфигурационный файл с нуля.

Папка nvim с конфигурационным файлом в моем Яндекс Диске
Папка nvim с конфигурационным файлом в моем Яндекс Диске

Базовая конфигурация Neovim

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

Базовая конфигурация Neovim
Базовая конфигурация Neovim

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

  • number - включает нумерацию строк.
  • autoindent - копирует отступы с текущей строки при добавлении новой.
  • tabstop - количество пробелов, которыми символ табуляции отображается в тексте.
  • shiftwidth - по умолчанию используется для регулирование ширины отступов в пробелах.
  • smarttab - в случае включения этой опции, нажатие Tab в начале строки (если быть точнее, до первого непробельного символа в строке) приведет к добавлению отступа, ширина которого соответствует shiftwidth (независимо от значений в tabstop и softtabstop).
  • softtabstop - количество пробелов, которыми символ табуляции отображается при добавлении.
  • mouse - включение поддержки мыши (выделение текста, его прокрутка и пр.)

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

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

Про другие Youtube-каналы, которые посвящены тематике Linux и Opensource я рассказывал в отдельной статье.

Наполняем конфигурационный файл

После того, как мы познакомились с базовой конфигурацией, ее нужно ввести в созданный ранее файл. Это можно сделать путем перепечатывания или копирования команд, которые я указал выше. Чтобы вы не выбрали, нужно помнить про так называемые режимы в Neovim:

  • режим Normal (нормальный) - позволяет осуществлять навигацию по тексту, он включается по-умолчанию после запуска редактора.
  • режим Insert (вставки) - позволяет вводить и вставлять скопированный где-либо текст в редактор.

Чтобы перейти из нормального режима во вставку нажмите клавишу i, для прекращения редактирования нажмите клавишу Esc. После перехода в режим вставки изменится курсор - из блока он превратится в линию, что будет говорить о том, что вы готовы печатать и вставлять текст. Также о текущем режиме вам будет сообщать текст, расположенный в левом нижнем углу редактора.

Режим вставки в Neovim
Режим вставки в Neovim

После перехода в режим вставки можно начать печатать базовую конфигурацию или скопировать текст, который я приведу ниже. Помните, что для того, чтобы вставить скопированный фрагмент в консольный редактор (и терминал) нужно использовать сочетание Ctrl + Shift + V.

:set number
:set autoindent
:set tabstop=4
:set shiftwidth=4
:set smarttab
:set softtabstop=4
:set mouse=a

Копирование и вставка настроек для базовой конфигурации в Neovim
Копирование и вставка настроек для базовой конфигурации в Neovim

Теперь нужно сохранить внесенный текст и выйти из редактора. Для этого вначале нажимаем Esc, чтобы вернуться в нормальный режим, а после нажав клавишу двоеточия ввести туда буквы w (write - записать) и q (quit - выход). Таким образом, вы выйдите с сохранением файла.

Готовимся сохранить содержимое файла конфигурации и выйти из редактора
Готовимся сохранить содержимое файла конфигурации и выйти из редактора

Если вы не желаете сохранять изменения, укажите восклицательный знак и букву для выхода (!q). После рестарта редактора можно вновь открыть файл конфига, чтобы проверить появившиеся изменения.

Появилась нумерация и заработали настройки отступов и пробелов
Появилась нумерация и заработали настройки отступов и пробелов

Подведем итоги

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

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

Чтобы не пропустить ее и другие полезные материалы, подпишитесь на канал, если еще не сделали этого. Уже опубликованные статьи про софт для Linux (в том числе и редакторы текста) вы найдете в соответствующем разделе.

Софт на Linux