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

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

Обновлено 23.02.2024

Приветствую!

Сегодня начнем настраивать наш консольный редактор Neovim под свои предпочтения. Заметка будет небольшая)

Присоединяйтесь к нашему каналу: t.me/r4ven_me и чату: t.me/r4ven_me_chat в Telegram .

Neovim – является эволюционным развитием классического редактора Vim. Чтобы понимать, что это за Vim такой и зачем он нужен – прочтите мою предыдущую статью: VIM — Консольный редактор: знакомство. В этой статье я постарался ввести читателей в курс дела: вкратце рассказал про сам редактор, про его режимы работы, а также привел часто используемые горячие клавиши-команды.

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

Сильно больно не будет, поэтому прошу под кат)

Предисловие

Выполнять конфигурацию Neovim можно двумя способами:

  • классический – с помощью встроенного языка vimscript;
  • расширенный – с помощью языка программирования Lua через механизм API.

Для большей совместимости с классическим Vim я буду производить конфигурацию с помощью первого варианта. Но не исключена возможность в будущем перейти на Lua)

Как обычно, все действия в статье будут проводиться в среде Linux Mint, а именно в версии 21. Все статьи связанные с этим дистрибутивом можно найти по соответствующему тегу.

Если Neovim еще у вас не установлен, то давайте это исправим)

Установка Neovim в Linux Mint

Открываем терминал и выполняем команду:

sudo apt update && sudo apt install -y neovim

Если кому интересно оформление терминала – то используется цветовая схема Nord. Про настройку я рассказывал в статье: Кастомизация Linux Mint 20/21 + Nord theme.

Для работы в терминале используется настроенная оболочка Zsh – о настройке которой есть отдельная статья: ZSH — Интерактивная командная оболочка для Linux + Oh-My-Zsh.

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

Для Neovim создаём папку конфигурации и открываем файл на редактирование:

mkdir ~/.config/nvim

nvim ~/.config/nvim/init.vim

Для классического Vim такая команда:

vim ~/.vimrc

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

И добавляем следующее содержимое:

" By r4ven_me

" ############################
" ###### BASIC SETTINGS ######
" ############################

set mouse=a                 " Enable mouse support
set encoding=utf-8          " Set character encoding to UTF-8
set number                  " Display line numbers
set scrolloff=7             " Keep at least 7 lines visible above/below cursor
"set noshowmode              " Disable mode display
set cursorline              " Highlight the current line
set ignorecase              " Enable case-insensitive searching
set smartcase               " Use smart case for searching
set laststatus=2            " Always show status line
set tabstop=4               " Set tab width to 4 spaces
set softtabstop=4           " Set soft tabstop to 4 spaces
set shiftwidth=4            " Set indentation width to 4 spaces
set expandtab               " Use spaces instead of tabs for indentation
set autoindent              " Enable automatic indentation
set fileformat=unix         " Set file format to Unix (LF line endings)
"set showtabline=2           " Always show tabline
set clipboard=unnamedplus   " Use system clipboard
"set termguicolors           " Enable true color support
set splitbelow              " Split new windows below the current one
set splitright              " Split new windows to the right of the current one
set equalalways             " Keep window sizes equal
set sessionoptions-=blank   " Don't save blank windows in sessions
filetype indent on          " Disable automatic indentation for specific filetypes
Файл конфигурации Neovim

Как видно, напротив каждого пункта я оставил комментарии на английском (для универсальности).

Для того чтобы изменения применились, достаточно сохранить файл и перезайти в редактор:

:wq

nvim ~/.config/nvim/init.vim

Дадим описание каждому параметру на русском)

И так:

ПараметрОписание
set mouse=aВключает использование мыши в редакторе.
set encoding=utf-8Устанавливаем кодировку для новых файлов в UTF-8.
set numberВключает отображение номеров строк.
set scrolloff=7Устанавливает количество строк, отображаемых после курсора при прокрутке файла.
"set noshowmodeОтключает отображение статуса текущего режима редактора (оставьте этот параметр закоменченным, он понадобиться нам в будущем при настройке плагина statusline).
set cursorlineВключает подсветку текущей строки.
set ignorecaseОтключает чувствительность к регистру при поиске через / и ?.
set smartcaseС этим параметром, поиск будет без учета регистра, если запрос содержит только символы в нижнем регистре. Однако, если запрос содержит хотя бы одну заглавную букву, поиск будет чувствительным к регистру.
set laststatus=2Включает отображение строки статуса в нижней части окна.
set tabstop=4Устанавливает длину отступа при нажатии Tab в 4 пробела.
set softtabstop=4Определяет количество пробелов, которое будет вставлено, при нажатии Tab, или когда происходит автоматическое отступление. Он называется “soft” потому, что не изменяет фактический текст, а только визуально выставляет отступы.
set shiftwidth=4Определяет количество пробелов, вставляемых при добавлении автоотступов.
set expandtabЗаменяет символ табуляции (установлен по умолчанию) на пробелы.
set autoindentВключает автоотступы при переходе на новую строку.
set fileformat=unixЗадаёт формат для новых файлов. Данные форматы отличаются в основном обработкой символа перевода строки. Подробнее про форматы можно почитать например, вот тут.
set showtabline=2Включает постоянное отображение строки с вкладками, даже если открыто одно окно (этот параметр нам также будет полезен при настройке плагинов в будущем).
set clipboard=unnamedplusАктивирует использование внешнего буфера обмена (с этим параметром в классическом vim может наблюдаться некорректная работа, в neovim все хорошо).
"set termguicolorsВключает поддержку true color для терминала. Этот параметр можно также оставить закоменченым. Он понадобится в будущем при настройке цветовой темы для Neovim.
set splitbelowУказывает редактору при горизонтальном разделении окна командой :split открывать новое окно внизу (по умолчанию сверху).
set splitrightУказывает редактору при вертикальном разделении окна командой :vsplit открывать новое окно справа (по умолчанию слева).
set equalalwaysПри включении данного параметра редактор будет пытаться автоматически поддерживать одинаковую ширину вертикальных окон при их открытии.
set sessionoptions-=blankУдаляет опцию “blank” из параметров сессии. Отключает сохранение/восстановление пустых окон при работе с файлами сессий.
filetype indent onВключает автоматические отступы в зависимости от типа файла.
Описание базовых параметров

Все указанные выше параметры можно временно активировать/деактивировать и вручную во время работы в редакторе. Для активации нужно в режиме командной строки (вызывается клавишей двоеточия : т.е. Shift + ;) просто ввести указанные выше параметры. Например, чтобы включить отображение номеров строк:

:set number

А для деактивации:

:set nonumber

# или

:set number!

Такой синтаксис справедлив для многих параметров. Чтобы отключить, нужно добавить префикс no либо суффикс ! перед/после нужным параметром.

Послесловие

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

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

Спасибо, что читаете. Успехов в изучении Vim/Neovim.

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

Прочие мои статьи:

Подписаться
Уведомить о
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии