Месяц назад на канале выходила статья, в которой я задался целью превратить консольный редактор Neovim в IDE для работы с файлами, написанными на языке программирования Python. Если вы еще не читали эту статью, то можете сделать это, перейдя по ссылке.
Эта статья будет первым шагом навстречу поставленной задаче: в ней я расскажу про базовую конфигурацию Neovim, которую использую в повседневной практике и покажу, как сделать такую же.
Установка и запуск Neovim
Превращение Neovim в полноценную IDE будет происходить на дистрибутиве Manjaro Linux, основанном на Arch, поэтому для установки консольного текстового редактора нужно выполнить следующую команду:
sudo pacman -S neovim
В качестве оболочки у меня установлена ZSH, в которой настроен алиас для быстрого запуска Neovim, который называет nv. Если же запускать редактор без алиаса, то делается это командой
nvim
Про то, как установить ZSH и что такое алиасы я рассказывал ранее на канале. Ссылки на статьи найдете ниже.
Первоначальный запуск Neovim выведет окно, похожее на то, которое вы видите на скриншоте. Конфигурация для запуска редактора используется по-умолчанию, но в дальнейшем мы создадим собственный конфигурационный файл и настроим Neovim под себя.
Чтобы выйти из Neovim необходимо нажать клавишу двоеточия (:) и после того, как внизу появится поле для ввода, ввести туда прописную латинскую букву q (quit - выход).
В принципе, вы узнали все, что необходимо знать про 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. Но для данной статьи я создам конфигурационный файл с нуля.
Базовая конфигурация 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. После перехода в режим вставки изменится курсор - из блока он превратится в линию, что будет говорить о том, что вы готовы печатать и вставлять текст. Также о текущем режиме вам будет сообщать текст, расположенный в левом нижнем углу редактора.
После перехода в режим вставки можно начать печатать базовую конфигурацию или скопировать текст, который я приведу ниже. Помните, что для того, чтобы вставить скопированный фрагмент в консольный редактор (и терминал) нужно использовать сочетание Ctrl + Shift + V.
:set number
:set autoindent
:set tabstop=4
:set shiftwidth=4
:set smarttab
:set softtabstop=4
:set mouse=a
Теперь нужно сохранить внесенный текст и выйти из редактора. Для этого вначале нажимаем Esc, чтобы вернуться в нормальный режим, а после нажав клавишу двоеточия ввести туда буквы w (write - записать) и q (quit - выход). Таким образом, вы выйдите с сохранением файла.
Если вы не желаете сохранять изменения, укажите восклицательный знак и букву для выхода (!q). После рестарта редактора можно вновь открыть файл конфига, чтобы проверить появившиеся изменения.
Подведем итоги
После прочтения статьи вы узнали то, как устанавливать, запускать и (самое главное!) выходить из консольного текстового редактора Neovim. Также мы вместе создали пользовательский конфигурационный файл и осуществили минимально базовую настройку редактора, научившись при этом переключать режимы и сохранять введенную информацию.
Естественно, на этом возможности Neovim не ограничиваются, мы в самом-самом-самом начале. К тому же, встроенные возможности редактора дополняются плагинами, про которые мы поговорим в следующей статье.
Чтобы не пропустить ее и другие полезные материалы, подпишитесь на канал, если еще не сделали этого. Уже опубликованные статьи про софт для Linux (в том числе и редакторы текста) вы найдете в соответствующем разделе.