ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Учебник макросов Vi и Vim: Как записывать и воспроизводить

Учебник макросов Vi и Vim: Как записывать и воспроизводить

С использованием функций макросов в Vim вы можете записывать и воспроизводить последовательность действий внутри редактора.

В данной статье описывается, как выполнять запись и воспроизведение внутри редактора Vi и Vim с помощью двух подробных примеров. Для ознакомления, как работать в Vim, прочитайте последнее руководство для начинающих по Vim.

Последовательность шагов записи и воспроизведения внутри Vim

  1. Начните запись, нажав Q, за которым следует символ нижнего регистра, чтобы назвать макрос
  2. Выполните любое типичное редактирование, действия внутри редактора Vim, который будет записан
  3. Остановить запись, нажав Q
  4. Воспроизведите записанный макрос, нажав @ с последующим макроименем
  5. Чтобы повторить макросы несколько раз, нажмите: NN@имя макроса, где NN является числом

Пример 1: Последовательность генерации номеров внутри файла с помощью Vim Макро

1. Запустите файл andreyex-test.txt для создания последовательности.

$ vim andreyex-test.txt

2. Перейдите в режим вставки и введите “1.”, Как показано ниже

Тип: Esc а затем 1.

$ vim andreyex-test.txt
1.

3. Начните запись и зарегистрируйте в истории.

Тип: Esc q затем a

4. Скопировать 1-ю линию во 2-ю линию, чтобы объединить две линии с одну, как показано ниже

Тип: Esc yy затем p

$ vim andreyex-test.txt
1.
1.

Примечание: Vim будет по- прежнему показывают запись в нижней части, как показано ниже.

Vim записи сообщений

5. Увеличьте число.

Тип: Control a

Размещая курсор на 2 – й линии, нажмите Ctrl + A , которое увеличивают число до 2, как показано ниже.

$ vim andreyex-test.txt
1.
2.

Примечание: Vim – по прежнему будет отображать запись в нижней части .

6. Остановить запись

Тип: q

Нажмите кнопку q, чтобы остановить запись. Вы заметите, что запись сообщения в нижней части Vim в настоящее время нет.

7. Повторите кнопку записи 98 раз.

Тип: 98@a

Vim Макроc Запись и воспроизведение

Пример 2: Повторите Vim Macro с различными аргументами

Этот пример объясняет, как можно выполнив одну и ту же команду, с другим входом для него, т.е. одну и ту же команду, с различными аргументами.

Перед выполнением макроса: andreyex-password.sql

$ vim andreyex-password.sql
Annette
Warren
Anthony
Preston
Kelly
Taylor
Stiller
Dennis
Schwartz

После записи и исполнения макроса: andreyex-password.sql

$ vim andreyex-password.sql
ALTER USER Annette IDENTIFIED BY 'Annette';
ALTER USER Warren IDENTIFIED BY 'Warren';
ALTER USER Anthony IDENTIFIED BY 'Anthony ';
ALTER USER Preston IDENTIFIED BY 'Preston';
ALTER USER Kelly IDENTIFIED BY 'Kelly ';
ALTER USER Taylor IDENTIFIED BY 'Taylor';
ALTER USER Stiller IDENTIFIED BY 'Stiller';
ALTER USER Dennis IDENTIFIED BY 'Dennis';
ALTER USER Schwart IDENTIFIED BY 'Schwart';

1. Откройте andreyex-password.sql, который имеет только имена.

$ vim andreyex-password.sql
Annette
Warren
Anthony
Preston
Kelly
Taylor
Stiller
Dennis
Schwartz

2. Запустите запись и сохранить его в регистре

Тип: q a

3. Перейдите в режиме вставки и тип ALTER USER

Тип: I (заглавное) , а затем “ALTER USER”

Поместите курсор в любом месте в первой строке, а затем нажмите I., который доставит вас к первому символу строки. Тип АLТЕR USER

4. Скопировать следующее слово (то есть название)

Тип: Esc w yw

5. Перейти до конца, тип IDENTIFIED BY

Тип: Esc А, сопровождаемый “IDENTIFIED BY”

6. Вставьте скопированное имя

Тип: Esc р

Нажмите клавишу Esc, а затем введите р, чтобы вставить имя, которое было скопировано в шаге #4.

7. Завершите цитату в конце.

Тип: Esc А , followed by ‘;

Нажмите Esc, и А, чтобы перейти до конца строки, и ;

8. Переход к следующей строке и остановка записи.

Тип: Esc j затем q

Примечание: Сообщение записи, показанное в нижней части VI теперь исчезybn. На данном этапе, andreyex-password.sql будет выглядеть следующим образом .

Vim Запись макросов

9. Повтор макроса с аргументами в соответствующей строке

Тип: 8 @ a

Vim Макроc Воспроизведение записи

Exit mobile version