Vi 和 Vim 宏教程:如何录制和播放

举报
Tiamo_T 发表于 2021/11/25 07:26:11 2021/11/25
【摘要】 使用 Vim 宏功能,您可以在编辑器中记录和播放一系列动作。 本文通过两个详细的例子解释了如何在 Vi 和 Vim 编辑器中进行录制和播放。

使用 Vim 宏功能,您可以在编辑器中记录和播放一系列动作。
本文通过两个详细的例子解释了如何在 Vi 和 Vim 编辑器中进行录制和播放。


在 Vim 中录制和播放的高级步骤

  1. 按 q 开始录制,后跟小写字符以命名宏
  2. 在 Vim 编辑器中执行任何典型的编辑、操作,这些操作将被记录
  3. 按 q 停止录音
  4. 按@后跟宏名称播放录制的宏
  5. 要多次重复宏,请按:NN @ 宏名称。NN 是一个数字

示例 1:使用 Vim 宏在文件内生成序列号

1. 启动一个sequence-test.txt 文件来生成序列。

$ vim sequence-test.txt

2. 进入插入模式并输入“1”。如下所示

类型:Esc i 后跟 1。

$ vim sequence-test.txt
1.

3. 开始录制并将其存储在寄存器 a 中。

类型:Esc q 后跟 a

  • q 表示开始录音
  • a 表示将录音存储在寄存器 a 中
  • 当你做qa时,它会在vi底部显示“正在录制”。

4. 将第一行复制到第二行,使两行带有 1 。如下所示

类型:Esc yy 后跟 p

  • yy 将复制当前行
  • p 将粘贴刚刚复制的行
$ vim sequence-test.txt
1.
1.

注意: Vim 仍然会在底部显示录音,如下所示。

Vim 录制消息
: Vim 在底部显示录音信息

5. 增加数字。

键入: Control a

将光标放在第 2 行,按 Ctrl+a 将数字增加到 2。如下所示。

$ vim sequence-test.txt
1.
2.

注意: vim 仍然会在底部显示录音。


6.停止录音

类型: q

按 q 停止录音。你会注意到 vim 底部的录音消息现在已经消失了。

7. 重复录音 98 次。

类型:98@a

  • 现在重复这个工作,输入 98 @ a
  • @a 重复宏“a”一次。
  • 98@a 将宏“a”重复 98 次,使用宏生成序列号 1 – 100,如下所示。
Vim 宏录制和播放
: 在 Vim 中使用宏生成序列号

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

此示例说明如何使用不同的输入执行相同的命令。即用不同的参数构建相同的命令。

执行宏之前:change-password.sql

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

录制并执行宏后:change-password.sql

$ vim change-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. 打开只有名字的change-password.sql。

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

2. 开始录制并将其存储在寄存器 a 中

类型:qa

  • q 表示开始录音
  • a 表示将录音存储在寄存器 a 中
  • 当你做qa时,它会在vi底部显示消息记录。

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

键入: I(大写 i)后跟“ALTER USER”

将光标放在第一行的任意位置,然后按 I。这将带您到该行的第一个字符。键入 ALTER USER

4.复制下一个词(即名称)

类型:Esc w yw

  • 按 Esc,然后按 w 转到下一个单词 ( name )。
  • yw,复制当前单词( name )。

5.转到最后并键入 IDENTIFIED BY '

类型:Esc A 后跟“IDENTIFIED BY”

  • 按 Esc 和 A 将光标移动到行尾,然后键入空格。
  • 类型标识由 '

6.粘贴复制的名称

键入:Esc p

按 Esc,然后键入 p 以粘贴在第 4 步中复制的名称。

7. 在最后完成报价。

类型:Esc A 后跟 ';

按 Esc 和 A 转到行尾,然后按 ';

8. 跳到下一行并停止记录。

类型:Esc j 后跟 q

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

注意:显示在 vi 底部的录音信息现在将消失。在此阶段,change-password.sql 将如下所示。

Vim 宏录制
: Vim 宏完成录制

9. 用相应行中的参数重复宏

类型:8@a

  • 现在通过输入 8@a 重复这项工作 8 次
  • @a 重复宏“a”一次。
  • 8@a 将宏“a”重复 8 次,自动完成该行的其余部分,如下所示
Vim 宏播放录制
: Vim 宏播放完成

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。