Введение
Vim — текстовый редактор, который легко настроить «под себя» для разных задач. Он популярен среди системных администраторов, разработчиков, технических писателей, копирайтеров, UX-редакторов — всех, кто работает с текстовыми файлами.
В качестве текстов для работы с Vim в основном используются:
- конфигурационные файлы программ;
- исходный код программ, написанных на разных языках программирования;
- структурированные тексты на естественном языке (например, документация);
- неструктурированные тексты (например, заметки, комментарии).
Vim эффективен для следующих задач:
- быстрое перемещение по тексту;
- поиск и замена фрагментов текста;
- автоматизация повторяющихся задач.
Vim — не офисный редактор типа Word, Google Docs или OpenOffice Writer. В основном он используется для работы с форматами markdown и HTML. Их можно впоследствии преобразовать в привычный текстовый документ в формате DOCX или PDF.
В программе можно создавать собственные команды при помощи макросов и скриптов. Это помогает автоматизировать рутинные задачи. В итоге производительность при написании и редактировании текстов становится выше. Разнообразие плагинов и расширений делает редактор более функциональным, помогая адаптировать его под нужды пользователя. Vim приходится настраивать и учиться работать с ним, но при грамотном использовании работать с текстовыми файлами проще.
Настройка Vim
Расскажем детально, как настроить Vim для работы с текстами.
Конфигурационные файлы
Для конфигурации Vim используют два основных конфигурационных файла:
- основной (глобальный) — расположен по адресу /etc/vimrc/vimrc и применяется ко всем экземплярам Vim;
- локальный — расположен по адресу ~/.vimrc, применяется к текущему каталогу.
Режимы редактирования
Всего в редакторе два основных режима редактирования:
- режим вставки. Доступны ввод текста, навигация по документу при помощи клавиш со стрелками;
- командный режим. Доступны перемещение по документу, выполнение специальных команд, изменение настроек программы с их помощью.
Команды редактирования
Vim отличается тем, что он во многом приспособлен для работы с клавиатурой, а не с мышью. Команды редактирования представляют собой комбинации клавиш. Рассмотрим основные.
Перемещение курсора по тексту:
в начало следующего слова | (esc) w (можно поставить цифру перед w, указывающую количество слов, например, 3 слова — 3w) |
в конец следующего слова | (esc) e |
в начало предыдущего слова | (esc) b |
в конец предыдущего слова | (esc) ge |
на следующий абзац | (esc) } |
в начало строки | (esc) 0 |
в конец строки | (esc) $ |
на 5 строк вниз | (esc) 5j (с другим количеством строк цифра меняется соответственно) |
на 5 символов вправо | (esc) 5l |
в конец документа | (esc) G или shift+g |
в начало документа | (esc) gg |
в предыдущее место | (esc) ctrl+o |
Выделение текста:
включение режима выделения текста, выделение строк | v |
построчный режим выделения | V |
перемещение курсора на другой конец выделенного фрагмента | o |
режим выделения блоков | Ctrl + v |
перемещение курсора на другой угол блока | O |
выделение слова | aw |
блок текста в круглых скобках | ab |
блок текста в фигурных скобках | aB |
внутренний блок текста в круглых скобках | ib |
внутренний блок текста в фигурных скобках | iB |
выход из режима выделения текста | Esc |
Копирование, вырезание и вставка текста:
копирование строки | yy |
копирование нескольких строк | 2yy, 3yy и т.д. (цифра обозначает число строк) |
копирование слова | yw |
копирование до конца строки | y$ |
вставка из буфера обмена после курсора | p |
вставка из буфера обмена | перед курсором |
удалить (вырезать) строку | dd |
удалить (вырезать) 2 (3,4) строки | 2dd, 3dd, 4dd |
удалить (вырезать) слово | dw |
удалить (вырезать) до конца строки | D или d$ |
удалить (вырезать) символ | x |
Поиск и замена текста
поиск шаблона | /pattern |
обратный поиск шаблона | ?pattern |
режим very magic: буквы и цифры интерпретируются как специальные символы | \vpattern |
повторение поиска | n |
повторение поиска в обратном направлении | N |
замена вхождений шаблона на указанное значение | :%s/old/new/g |
замена вхождений шаблона на указанное значение с подтверждением | :%s/old/new/gc |
отключение подсвечивания результатов поиска | :noh |
Создание и повторное использование макросов
Макросы в Vim используют для автоматизации рутинных операций. Их можно записать единожды, а затем использовать повторно. Это особенно полезно при работе с длинными текстами, где автозамена существенно экономит время при редактировании.
Макросы позволяют искать, менять, удалять и перемещать фрагменты текста, изменять форматирование, комментировать строки программного кода.
Регистры и буферы
Данные в Vim записываются и хранятся в регистрах, куда можно копировать текст и ставить метки. Для обозначения регистров используются буквы латинского алфавита (строчные и прописные не играют роли), цифры и специальные символы.
Также в программе существует поддержка нескольких буферов, позволяющих редактировать одновременно несколько файлов.
Плагины и скрипты
Возможности редактора можно расширить с помощью плагинов и скриптов, добавляющих в программу новые функции или возможности: например, для работы с текстом, системного администрирования или работы с кодом. Плагины устанавливают с помощью менеджера плагинов, например Vundle или Pathogen.
Использование Vim
В основном Vim используют в Unix-подобных операционных системах. Также он поддерживается в macOS, Android. В Windows редактор тоже поддерживается, однако работает чуть хуже, чем в большинстве используемых версий Linux. Вот универсальные рекомендации, как использовать программу в любой среде.
Запуск Vim
Для запуска редактора введите команду vim в терминале или дважды щелкните файл, который вы хотите отредактировать. Для более удобной работы можно также скачать графический интерфейс gvim и настроить программу под свои нужды, выбрав цветовое решение и настроив комбинации горячих клавиш.
Переключение между режимами
Для работы в режиме вставки нажмите клавишу i, для перехода в командный режим — Esc.
Перемещение по документу
Чтобы перемещать курсор по тексту, используются клавиши со стрелками, h, j, k и l, для перехода к строке или столбцу — команды | и G.
Выделение текста
Команды визуального режима, такие как v, V и Ctrl-v, служат, чтобы выделить текст в редакторе.
Копирование и вставка текста
Для копирования текста используйте команду y, для вставки — команду p.
Поиск и замена
Команда / служит для поиска текста, :%s — для замены текстового фрагмента.
Создание и использование макросов
Чтобы записать макрос в Vim, нужно:
- войти в режим записи (он же "r");
- после ввода команды "q" и имени макроса программа начинает записывать действия пользователя;
- по завершении записи нужно нажать команду "q" еще раз.
Для воспроизведения записанного макроса нужно ввести "@", а затем букву имени макроса. Например, "@@" воспроизводит последний записанный макрос.
Заключение
Некоторые считают Vim устаревшей программой, но, по статистике, им пользуются 15-25% разработчиков. В основном это пользователи Unix и Linux, где это основной редактор в консоли. Для системных администраторов и инженеров работа с ним часто оказывается производственной необходимостью
Освоение Vim требует времени и сил, но зато он удобен для использования в разных операционных системах и оболочках. Работа с текстом при помощи клавиатуры увеличивает производительность — поэтому у этого инструмента есть своя преданная аудитория.