Vi 和 Vim 宏教程:如何录制和播放
【摘要】 使用 Vim 宏功能,您可以在编辑器中记录和播放一系列动作。
本文通过两个详细的例子解释了如何在 Vi 和 Vim 编辑器中进行录制和播放。
使用 Vim 宏功能,您可以在编辑器中记录和播放一系列动作。本文通过两个详细的例子解释了如何在 Vi 和 Vim 编辑器中进行录制和播放。
在 Vim 中录制和播放的高级步骤
- 按 q 开始录制,后跟小写字符以命名宏
- 在 Vim 编辑器中执行任何典型的编辑、操作,这些操作将被记录
- 按 q 停止录音
- 按@后跟宏名称播放录制的宏
- 要多次重复宏,请按: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 在底部显示录音信息
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 中使用宏生成序列号
示例 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 宏完成录制
9. 用相应行中的参数重复宏
类型:8@a
- 现在通过输入 8@a 重复这项工作 8 次
- @a 重复宏“a”一次。
- 8@a 将宏“a”重复 8 次,自动完成该行的其余部分,如下所示
图: Vim 宏播放完成
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)