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然后一个

  • q 表示开始录音
  • 显示将记录存储在寄存器A中的位置
  • 没问题时,它将在vi的底部显示“ entry”。

4.将第一行复制到第二行以将两行与一行合并,如下所示

类型:Esc yy然后p

  • 复制当前行
  • [R 将粘贴刚刚复制的行
$ vim andreyex-test.txt
1.
1.

注意: Vim仍将在底部显示该条目,如下所示。

5.增加数量。

类型:控制一个
将光标放在第二行上时,按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宏记录和播放

示例2:用不同的参数重复Vim宏

这个例子说明了如何执行相同的命令,但输入却不同。 相同的命令,带有不同的参数。

在执行宏之前: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.开始录制并保存以进行注册

类型:qa

  • q表示开始录音
  • a显示存储在寄存器中的记录a
  • 单击确定后,它将在VI的底部显示录制消息。

3.进入插入模式并输入ALTER USER

类型:I(大写),后跟“ ALTER USER”
将光标放在第一行的任意位置,然后按I。这将带您到该行的第一个字符。 ALTER USER类型

4.复制下一个单词(即标题)

类型:Esc w yw

  • 按Esc,然后按w移动到下一个单词(名称)。
  • yw,复制当前单词(名称)。

5.转到结尾,输入IDENTIFIED BY

类型:Esc A,后接“ IDENTIFIED BY”

  • 按Esc和A将光标移至行尾,然后输入一个空格。
  • 输入“ IDENTIFIED BY”

6.粘贴复制的名称

类型:Esc p
按Esc,然后键入p粘贴在步骤#4中复制的名称。

7.在最后填写报价。

类型:Esc A,后跟’;
按Esc和A转到行的末尾,然后 ;

8.移至下一行并停止录制。

类型:Esc j然后q

  • j转到下一行。
  • q停止录音

注意: VI底部显示的写入消息现已消失。 在此阶段,andreyex-password.sql将如下所示。

Vim宏录制

9.在相应的行上重复一个带有参数的宏

类型:8 @ a

  • 现在通过键入8 @ a重复此工作8次
  • @a重复一次宏“ a”。
  • 8 @ a将宏“ a”的状态重复8次,自动完成其余部分,如下所示

Vim Macro Play录制

Sidebar