Мир, купленный очень дорого, редко бывает продолжительным (П. Бови).

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

4 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
20 марта 2017
Учебник макросов 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

  • q указывает на то, чтобы начать запись
  • а показывает, где хранить записи в регистре А
  • когда вы сделаете ОК, он будет отображать “запись” в нижней части vi.

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

  • Теперь повторите эту работу, набрав 98@a
  • @a повторяет макрос “a” один раз.
  • 98@a повторяет состояние макросов “a” 98 раз порождающие порядковый номер 1 – 100, как показано ниже, с помощью макросов.
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

  • q указывает на то, чтобы начать запись
  • а показывает хранить записи в регистре a
  • Когда вы нажмете ОК, он будет отображать сообщение записи в нижней части VI.

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

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

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

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

Тип: Esc w yw

  • Нажмите клавишу Esc, а затем нажмите кнопку w, чтобы перейти к следующему слову (имя).
  • yw, копирует текущее слово (имя).

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

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

  • Нажмите Esc, и А, чтобы переместить курсор в конец строки, а затем введите пробел.
  • Тип ” IDENTIFIED BY”

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

Тип: Esc р

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

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

Тип: Esc А , followed by ‘;

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

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

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

  • j, чтобы перейти к следующей строке.
  • q, чтобы остановить запись

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

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

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

Тип: 8 @ a

  • Теперь повторите эту работу 8 раз, набрав 8@a
  • @a повторяет макрос “a” один раз.
  • 8@a повторяет состояние макросов “a” 8 раз завершая остальную часть строки автоматически, как показано ниже
Vim Макроc Воспроизведение записи

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 202

Если статья понравилась, то поделитесь ей в социальных сетях:

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

Войти с помощью: 

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

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close