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

Редактирования файла в VIM

Вольный перевод с небольшими дополнениями Important VIM Options and Settings.

Vim — это один из самых популярных текстовых редакторов с открытым исходным кодом для консоли. Его можно настроить совершенно по-разному благодаря большому количеству параметров, что объясняет его популярность среди пользователей. В этой статье мы рассмотрим некоторые опции Vim, которые помогут вам оптимизировать среду редактирования текста исходя из ваших предпочтений. Большинство из упомянутых параметров не включены по умолчанию в Vim.

Есть два способа применить настройки в Vim:

  1. Включить настройку для отдельного файла внутри Vim, используя команду :set. Для этого нужно открыть какой-то файл, ввести в нормальном режиме работы :set опция, затем нажать Enter.
    vim настройка командой
  2. Активировать настройку для всех файлов при запуске, указав её в локальном конфигурационном файле Vim ~/.vimrc. Если вы захотите включить какой-то параметр, то просто добавьте его в ~/.vimrc, удалив двоеточие перед командой set, затем сохраните и закройте конфигурационный файл. При следующем запуске текстового редактора настройки будут применены.
    vim настройка в ~/.vimrc

Конфигурационный файл Vim может быть создан для текущего пользователя с помощью команды:

$ touch ~/.vimrc

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

$ vim ~/.vimrc

Впрочем, шаг с созданием файла можно пропустить, так как текстовый редактор сделает это сам при сохранении.

Параметры поиска

Включить подсветку поиска

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

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

:set hlsearch
Поиск в Vim с включенным hlsearch

Для отключение подсветки достаточно добавить префикс «no» к опции:

:set nohlsearch

Инкрементальный поиск

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

Стандартно инкрементальный поиск отключён. Для его включения воспользуйтесь командой:

:set incsearch
Инкрементальный поиск в Vim

Как и в предыдущем случае, для отключения нужно добавить префикс «no»:

:set noincsearch

Поиск без учёта регистра

Vim выполняет поиск с учётом регистра, по-разному обрабатывает прописные и строчные буквы. Для поиска без учёта регистра используется:

:set ignorecase
Поиск без учёта регистра в Vim

Для отключения, как и прежде, нужно добавить «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
Подсветка синтаксиса в Vim

Для отключения:

:syntax off

Изменить цветовую схему для подсветки синтаксиса

Цветовая схема — это комбинация цветов, используемых для подсветки синтаксиса, шрифта по умолчанию и фона. Это очень удобно, ведь разные цвета и их контраст помогают идентифицировать различные типы данных, функции, параметры и т.д.

В Vim уже установлены цветовые схемы, список которых можно получить прямо в текстовом редакторе. Введите :colorscheme, нажмите пробел и потом комбинацию Ctrl+D.

:colorscheme [пробел] [Ctrl + D]
Список цветовых схем в Vim

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

:colorscheme название_схемы

К примеру:

:colorscheme torte
Цветовая схема torte в Vim

Показать номер строки

Нумерация строк помогает лучше ориентироваться внутри файла. Заодно сообщает, где именно в файле вы сейчас находитесь. Однако эта опция не активирована изначально.

Для её включения нужно выполнить команду:

:set number

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

:set nonumber

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

Установить заголовок окна

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

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

:set titlestring=строка

Если хотите вывести имя файла, то используйте %t:

:set titlestring=%t

Для обновления и отображения нового заголовка окна нужно ввести:

:set title
имя файла в заголовке окна Vim

Для удаления:

:set notitle

Отображение позиции курсора

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

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

:set ruler
Показать номер строки и столбца в Vim

Для отключения:

:set noruler

Добавить подтверждение действий

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

Для использования этой возможности:

:set confirm
Подтверждение действий в Vim

Чтобы вернуться к прошлому поведению:

:set noconfirm

Настройка размера истории

С начальными настройками Vim запоминает историю в 50 команд (:) и паттернов поиска. Но это значение можно или увеличить, или уменьшить.

Чтобы изменить количество команд, запоминаемых Vim, нужно задать целое положительное значение переменной history:

:set history=целое положительное число

Проверка орфографии

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

Для включения используйте команду:

:set spell

Для отключения просто добавьте префикс «no»:

:set nospell
Проверка орфографии в Vim

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

Навигация по записям