Каждому из нас хоть раз в жизни приходилось иметь дело с обработкой текстовых документов. Дело казалось бы обыденное, открыл “офис” и вперёд, но некоторые до сих пор его не любят за то, что в нём куча ненужных для них вещей, а кто-то просто откровенно ими не умеет пользоваться. :)

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

Первое, что необходимо вам понимать, это то, что данная утилита довольно-таки сложна для начального уровня и требует некоторого понимая работы в командной строке (да, исходная программа, которая называется *vi, не имеет графического интерфейса). И хотя я буду показывать все примеры в командной строке, эти же примеры можно повторить в программе *Vim, которая как раз имеет данный графический интерфейс и немногим облегчит вам работу.

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

Итак, пустимся же в “весёлое приключение” по небольшой Вселенной Vi и Vim!

Навигация по статье:

1. Это необходимо знать

Прежде чем приступить к написанию советов, хотелось бы остановиться на паре моментов, которые необходимо помнить.

  1. Установка. Скачать и установить ПО вы можете по данной ссылке. Сложного в установке нет ничего, поэтому я верю в то, что вы справитесь. Я же буду использовать версию vi, которая есть в моем текстовом редакторе VS Code. Не пугайтесь! Всё, что я буду делать, вы сможете сделать и в Vim, установленный лично вами.
  2. Примеры. Всё, что я буду выполнять, будет сопровождаться gif-анимационным файлом, в котором будут показаны все клавиши, задействованные в данном примере. Это очень удобно, как мне кажется, и вы сможете всегда вернуться и разобрать непонятный вам материал (хотя я очень верю, что такового не будет!). К сожалению, исходники самих примеров я выкладывать никуда не буду, поэтому вам придется на личных примерах разбираться как использовать ту или иную команду. Это поможет вам более тщательнее изучить весь материал и более подробно разобраться в интерфейсе и командах программы.
  3. Слепая печать. Пожалуй, это единственное условие, которое необходимо выполнить прежде чем приступить к изучению Vim. Вам действительно будет тяжело разобраться в некоторых моментах без данного навыка, так как эфффективность работы в данной программе достигается за счёт ловкости рук!

2. Совет № 1. Повторение - мать учения

В повседной работе мы не замечаем как часто выполняем одни и те же операции: “скопировал - вставил”, “скопировал - вставил” и так десятки, а то и сотни раз всеразличных комбинаций клавиш. Если мы сможем как-то упростить выполнение одних и тех же операций, то сэкономим большое количество времени.

Редактор Vim позволяет отслеживать последние выполняемые операции и затем повторять их снова и снова, пока нам это будет необходимо. Однако, прежде чем приступить к редактированию какого-либо текста, необходимо упомянуть о двух основных режимах работы редактора Vim:

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

При входе в программу вы попадаете в командный режим, а при нажатии клавиши i в режим вставки. Для того чтобы вернуться обратно в командный режим необходимо нажать клавишу Esc. Как видим ничего сложного нет!

Примечание. Как узнать в каком режиме вы сейчас находитесь? Очень просто, в режиме вставки в левом нижнем углу будет надпись --ВСТАВКА-- или --INSERT-- (если у вас установлена англоязычная версия). При выходе в командный режим данная надпись исчезает.

Итак, для того чтобы повторить последнее изменение, в редакторе Vim существует команда “точка”. Данная команда одна из самых мощных и гибких в редакторе. При этом, под “последними изменениями” понимается изменение как над отдельными символами, целыми строками или даже файлами!

Краткая справка по командам.

Все команды выполняются в командном режиме!

  • h - шаг влево
  • j - шаг вниз
  • k - шаг вверх
  • l - шаг вправо
  • x - удаление символа под курсором
  • u - отменить последнее изменение
  • dd - удаление целой строки

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

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

railroad

Пример 1. Демонстрация применения команды "точка"

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

Замечание!!! Для того чтобы выйти из данного редактора, особенно если вы выполняете упражнения в командной строке, необходимо выполнить одну из комбинаций клавиш:

  • :q! - выход из программы без сохранения
  • :wq - выход из программы c сохранением

Не забывайте, что команды выполняются в командном режиме!!!

Данная проблема очень популярна в интернете, так как начинающие пользователи не имеют представления как выйти из данного редактора. По этому поводу есть даже небольшая заметка в блоге stackoverflow. Там отмечено, что помощью по вопросу выхода из Vim воспользовалось более 1 млн. человек!!!

⤧  Previous post Основные понятия в области безопасности автоматизированных систем