Vim: необходимый минимум знаний

Статья последний раз была обновлена 05.07.2023

Когда речь заходит о системном администрировании, все дороги ведут к Vim! Это далеко не архаичный инструмент, а универсальный, который используют системные администраторы и DevOps-инженеры во всех крупных компаниях.

вот так выглядит Vim сразу после запуска

Vim — это более удобная версия Vi, который уж точно архаика, но возможно еще встречается по дефолту в каких-нибудь дистрибутивах. На серверах часто можно встретить пакет vim-tiny, урезанной версии Vim, в которой оставлен только набор функций классического редактора Vi.

Vim — это консольный редактор, но у него есть и десктопные потомки, вроде gVim (gnome vim) и даже gVim для Windows.

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

Перейдем к делу!

Режим вставки

Первая вещь, на которую вы должны обратить внимание — Vim может работать в различных режимах: командном режиме, режиме вставки, режиме «последней строки» (известном еще как «ex mode»). Непосредственно после запуска Vim находится в командном режиме. В этом режиме весь ввод с клавиатуры будет воспринят как команды редактору, а не редактирование текста. Чтобы переключиться в режим вставки, нажмите клавишу «i», после чего вы получите возможность редактировать текст, а при нажатии на «Esc» вы сможете вернуться в командный режим. Введя «:» в командном режиме, вы попадаете в «ex-режим».

режим вставки в Vim

Режим вставки (— INSERT —) не требует особого изучения, этот режим превращает Vim в самый банальный текстовый редактор, но без привычных клавиатурных комбинаций копировать/вставить, которые по логике создателей относятся уже к командному режиму.

Командный режим

Команды Vim, которые могут использоваться в командном режиме, можно перечислять очень долго. Но пока что мы ограничимся лишь самым необходимым. Давайте начнем с перемещения по тексту:

  • «h» — перемещение на один символ влево;
  • «l» — перемещение на один символ вправо;
  • «j» — перемещение на один символ вниз;
  • «k» — перемещение на один символ вверх.

В последних версиях перемещаться можно и стандартными клавиатурными клавишами управления курсором (стрелки) во все стороны по тексту и в командном, и в режиме вставки.

Можно смещать курсор не на один символ, а на слово целиком: «w» — перемещает на слово вперед, а «b» — на слово назад. Словом в Vim считается любая последовательность алфавитно-цифровых символов. Например, «word» — это слово, а «one-year» — это уже два слова, поскольку они разделены дефисом.

Удаление символов и целых строк можно выполнить при помощи клавиши «d» + клавиши навигации (стрелки). Зажать «d» не получиться, необходимо будет постоянно жать «d» + стрелка. Стрелка влево или вправо — удаляет 1 символ на текущей строке по своему направлению от установленного курсора. Стрелка вверх или вниз — удаляет исходную строку и строку выше или ниже соответственно. Для удаления слова под курсором используйте «d + w», а для удаления предыдущего слова «d + b».

Есть и другие способы удалить 1 символ, поставьте курсор над этим символом и нажмите «x», эта клавиша работает как обычная клавиатурная «Del», которая в свою очередь тоже работает в командном режиме Vim. Остальные же привычные нам клавиши редактирования текста, вроде «Space», «Backspace» и «Enter» будут работать уже в режиме вставки.

Если требуется удалить целую строку, используйте команду «dd», она же скопирует строку в буфер обмена (вырежет), но об этом немного позже. При помощи команды «d0» можно удалить часть строки от позиции курсора до начала строки.

Постройте вот такой список в режиме вставки (нажмите на «i»), а потом поупражняйтесь с удалением символов и строк в командном режиме (нажмите «Esc»).

работа со строками и символами в Vim

Копирование и вставка

Копирование и вставку текста в Vim можно выполнять невероятно быстро. Чтобы переключиться в режим выделения текста, используйте команду «v», «V» или «Ctrl + v». После переключения в режим выделения вы можете выделять текст, перемещая курсор клавишами h, l, j, k или же навигационными клавишами со стрелками.

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

  • «v» + стрелки — будет происходить обычное выделение,
  • «V» + стрелки — выделение целых строк,
  • «Ctrl + v» — блочное выделение, с его помощью можно выделять вертикальные блоки.

После того, как вы выделите нужный текст, используйте команду «y» для того, чтобы скопировать выделенный фрагмент в буфер обмена.

Далее, при помощи команды «p» или «P» можно вставить скопированный текст из буфера. Причем команда «p» вставит текст после курсора, а «P» перед ним.

Поиск и замена

Чтобы переключиться в режим поиска используйте команду «/» для поиска в прямом направлении, или команду «?» в обратном, затем введите шаблон поиска.

Поиск и замена в тексте выполняется при помощи команды «:s» с заданной областью поиска и замены. Например, чтобы найти фразу «old» и заменить на «new», используйте следующую команду:

:%s/old/new/

Символ процента перед «s» означает глобальную область поиска. Вместо глобальной области вы можете определить диапазон строк, например:

:1,15s/old/new/

Имейте ввиду, что указанные выше команды заменяют только первое найденное вхождение. Часто бывает нужно найти и заменить все найденные вхождения в тексте. Для этого можно воспользоваться глобальной заменой, добавив к команде букву «g»:

:%s/old/new/g

Приведённая выше команда заменит все найденные «old» на «new». Дополнительно вы можете заставить Vim запрашивать у вас подтверждение перед выполнением замены:

:%s/old/new/gc

Откат действий

Что делать, если вы внесли изменения, которые не нужно было вносить? Воспользуйтесь командой «u», которая отменит последнее изменение, сделанное вами. Если же после отката на действие назад вы снова передумали и решили отменить отмену, вам поможет команда «Ctrl + r», которая делает откат в обратную сторону.

Имейте ввиду, что если ваш Vim работает в режиме совместимости с Vi, то вы не можете откатиться более, чем на один шаг назад. В своем же «родном» режиме Vim «помнит» все изменения и позволяет откатываться на большее количество шагов.

Сохранение и выход

Как выйти из Vim? У любого, кто столкнется с редактором впервые, этот вопрос будет самым главным. Действительно, глядя на экран с редактором, догадаться как именно это делается — невозможно. Это нужно просто знать!

Если вы хотите сохранить внесенные в файл изменения, используйте команду «:w\», а чтобы сохранить изменения и покинуть редактор команду «:wq\». Не хотите сохранять внесенные исправления? Бывает и такое. При помощи команды «:q!\» можно выйти из Vim, не сохраняя при этом текущий файл.

Также, если нужно, вы можете сохранить редактируемый текст в другой файл при помощи команды «:w имя_файла\».

Вместо заключения. Можно установить себе обои на рабочий стол с востребованными командами Vim, скачать обои можно вот тут >>

Губарь Маргарита Александровна

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *