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

Вольный перевод с небольшими дополнениями Important VIM Options and Settings.
Vim — это один из самых популярных текстовых редакторов с открытым исходным кодом для консоли. Его можно настроить совершенно по-разному благодаря большому количеству параметров, что объясняет его популярность среди пользователей. В этой статье мы рассмотрим некоторые опции Vim, которые помогут вам оптимизировать среду редактирования текста исходя из ваших предпочтений. Большинство из упомянутых параметров не включены по умолчанию в Vim.
Есть два способа применить настройки в Vim:
- Включить настройку для отдельного файла внутри Vim, используя команду :set. Для этого нужно открыть какой-то файл, ввести в нормальном режиме работы :set опция, затем нажать Enter.
- Активировать настройку для всех файлов при запуске, указав её в локальном конфигурационном файле Vim ~/.vimrc. Если вы захотите включить какой-то параметр, то просто добавьте его в ~/.vimrc, удалив двоеточие перед командой set, затем сохраните и закройте конфигурационный файл. При следующем запуске текстового редактора настройки будут применены.
Конфигурационный файл Vim может быть создан для текущего пользователя с помощью команды:
$ touch ~/.vimrc
Для его редактирования используйте следующую команду:
$ vim ~/.vimrc
Впрочем, шаг с созданием файла можно пропустить, так как текстовый редактор сделает это сам при сохранении.
Параметры поиска
Включить подсветку поиска
При поиске текста часто очень полезно выделить все его результаты, чтобы сразу было видно, где находятся совпадения. Выделение результатов поиска в Vim добавляет цветной фон к ним. Эта настройка не включена изначально.
Для активации подсветки нужно воспользоваться этой командой:
:set hlsearch

Для отключение подсветки достаточно добавить префикс «no» к опции:
:set nohlsearch
Инкрементальный поиск
Когда вы выполняете обычный поиск в Vim, вы видите результат только после того, как введёте полностью слово и нажмёте Enter. С инкрементальным поиском, вы можете видеть результаты сразу после ввода следующей буквы — будут найдены и подсвечены все включения уже напечатанного текста. К примеру, пусть вы ищите «ozi-blog» — вы увидите промежуточные результаты после каждой введённой буквы «o», «oz», «ozi» и т.д..
Стандартно инкрементальный поиск отключён. Для его включения воспользуйтесь командой:
:set incsearch

Как и в предыдущем случае, для отключения нужно добавить префикс «no»:
:set noincsearch
Поиск без учёта регистра
Vim выполняет поиск с учётом регистра, по-разному обрабатывает прописные и строчные буквы. Для поиска без учёта регистра используется:
:set ignorecase

Для отключения, как и прежде, нужно добавить «no» перед параметром:
:set noignorecase
Интеллектуальный выбор регистра поиска
Иногда, при поиске фразы с учётом регистра нужно найти другую фразу уже без учёта регистра. Постоянное переключение между ignorecase и noignorecase может раздражать. К счастью, Vim позволяет использовать интеллектуальный поиск, используя совместно настройки ignorecase и smartsearch. Скомбинировав эти параметры, вы получите поиск без и с учётом регистра в зависимости от сценария использования:
- При вводе текста в нижнем регистре поиск будет вестись без учёта регистра. К примеру, «ubuntu» найдёт «ubuntu», «Ubuntu» и «UBUNTU».
- При вводе текста с одной и более букв в верхнем регистре поиск будет чувствителен к регистру. К примеру, «Ubuntu» найдёт только «Ubuntu», а «ubuntu» и «UBUNTU» будут проигнорированы.
Для включения интеллектуального поиска нужно задать два параметра:
:set ignorecase
:set smartcase
Отключить интеллектуальный поиск в Vim можно добавив всё тот же префикс «no»:
:set nosmartcase
Автоматическое сохранение файлов
При переключении нескольких файлов текстовый редактор просит сохраненить изменённый файл. С параметром autowrite, Vim будет автоматически записывать файлы при переключении на другой с помощью команд :n (или :p, :first, :last).
Для того, чтобы включить автоматическое сохранение файлов в Vim нужно ввести:
:set autowrite
Для отключения:
:set noautowrite
Включить автоматический отступ
Включение этой опции позволяет сохранять отступ у текущей строки такой же, как и у предыдущей. К примеру, сделайте отступ табуляцией или пробелом и нажмите Enter. У новой строки будет тот же отступ, как и у прошлой.
Чтобы включить автоматический отступ в Vim воспользуйтесь командой:
:set autoindent
Для отключения:
:set noautoindent
Подсветка синтаксиса
С подсветкой синтаксиса исходный код будет раскрашен разными цветами, что повышает его читаемость. Для того, чтобы включить подсветку синтаксиса в Vim нужно ввести:
:syntax on

Для отключения:
:syntax off
Изменить цветовую схему для подсветки синтаксиса
Цветовая схема — это комбинация цветов, используемых для подсветки синтаксиса, шрифта по умолчанию и фона. Это очень удобно, ведь разные цвета и их контраст помогают идентифицировать различные типы данных, функции, параметры и т.д.
В Vim уже установлены цветовые схемы, список которых можно получить прямо в текстовом редакторе. Введите :colorscheme, нажмите пробел и потом комбинацию Ctrl+D.
:colorscheme [пробел] [Ctrl + D]

У меня установлена дополнительная цветовая схема — dracula. Для смены нужно ввести :colorscheme название цветовой схемы.
:colorscheme название_схемы
К примеру:
:colorscheme torte

Показать номер строки
Нумерация строк помогает лучше ориентироваться внутри файла. Заодно сообщает, где именно в файле вы сейчас находитесь. Однако эта опция не активирована изначально.
Для её включения нужно выполнить команду:
:set number
Для деактивации:
:set nonumber
У меня в настройках уже включён этот параметр, результат вы можете наблюдать на скриншотах выше.
Установить заголовок окна
Vim позволяет установить имя заголовка окна редактора. Используя эту функцию, можно отобразить имя текущего файла.
Для определения нового заголовка окна используйте эту команду, где строка — строка любых символов:
:set titlestring=строка
Если хотите вывести имя файла, то используйте %t:
:set titlestring=%t
Для обновления и отображения нового заголовка окна нужно ввести:
:set title

Для удаления:
:set notitle
Отображение позиции курсора
Используя команду ruler, можно показать позицию курсора в файле Vim. Она выводит номер текущей строки и столбца, что, наряду с отображением номера строки, помогает в перемещении по большим файлам.
Для активации введите:
:set ruler

Для отключения:
:set noruler
Добавить подтверждение действий
Если вы попытаетесь выполнить важные действия (как :q или :e) в изменённом файле без сохранения, то текстовый редактор не даст этого сделать. Однако, после настройки подтверждения действий, будет отображаться диалог, спрашивающий, хотите ли вы сохранить файл.
Для использования этой возможности:
:set confirm

Чтобы вернуться к прошлому поведению:
:set noconfirm
Настройка размера истории
С начальными настройками Vim запоминает историю в 50 команд (:) и паттернов поиска. Но это значение можно или увеличить, или уменьшить.
Чтобы изменить количество команд, запоминаемых Vim, нужно задать целое положительное значение переменной history:
:set history=целое положительное число
Проверка орфографии
Ещё одна отличная функция Vim — это проверка орфографии. Если она включена, то текстовый редактор находит и подсвечивает слова, которые были напечатаны с ошибками.
Для включения используйте команду:
:set spell
Для отключения просто добавьте префикс «no»:
:set nospell

Собственно, вот так вы можете использовать одни из самых полезных настроек Vim. Активируйте их для отдельных файлов, или занесите настройки в ~/.vimrc, чтобы они применялись ко всем.