软件特攻队|Vim宏,使你工作更轻松

软件特攻队|Vim宏,使你工作更轻松

工作中我们有时会遇到需要多次重复输入相同文本或者生成一段序列化的文本的需求。除此之外,还有很多需要重复操作的动作,而对于这些需求,如果我们人工去一个个处理,无疑是耗时耗力的,浪费精力,这时候Vim宏就能派上用场了。

宏的录制和运行

宏的录制

  1. 在Vim编辑器里创建一个新的文件;

  2. 按q+宏名开始录制,例如 :宏名命名为a,则按Esc和qa开始录制;

  3. 文本编辑ing……

  4. 再一次按q停止录制。至此,宏的录制已完成。

宏的运行

  1. 按@+宏名即可运行一次,按次数+@+宏名即可重复运行多次。

示例-1:使用宏多次生成相同的文本

例如我们要生成100行一样的文字,利用宏来自动化生成,首先在Vim编辑器中创建一个名为file1.txt 的新文件。

软件特攻队|Vim宏,使你工作更轻松然后,按q之后在接着按z开始录制,这里z就是宏名。如果正确录制,底部会出现一个recording @z 字样。

软件特攻队|Vim宏,使你工作更轻松然后,按i输入需要重复的文本,例如:Learning Vim Macros 。

软件特攻队|Vim宏,使你工作更轻松最后按q停止录制,这时候底部的recording @z 就会消失,这样一个名叫z的宏就录制完成了,后面我们就能够利用这个宏来重复完成文字录入的工作了。

软件特攻队|Vim宏,使你工作更轻松如果你想运行刚刚创建的宏,就将光标移动到需要输入的地方,然后按@z就会将文字复制一遍了。

软件特攻队|Vim宏,使你工作更轻松当然,如果你想多次输入同样的文字,这可以多次运行刚刚的宏,只需要在@z前面加上次数即可,例如:4@z。

软件特攻队|Vim宏,使你工作更轻松示例-2:使用宏生成序列号

在上面我们只是机械的复制了一堆一样的文字,而想要生成带有序列的文本该如何处理呢?

现在假设我们要生成101-110的一系列数字,首先还是在Vim编辑器中创建一个名为file2.txt 的新文件,接着按 i 键入 101.。

软件特攻队|Vim宏,使你工作更轻松按Esc退出后,按qy以宏名y开始录制后续操作。我们将光标移动到第一行的开头并按下yy复制文本,然后按p将文本粘贴到下一行

软件特攻队|Vim宏,使你工作更轻松接着按Ctrl+a将第一行的值从101增加到102,最后和之前一样停止录制。这样宏就制作完成了。

我们输入8@y后,刚刚录制的宏就会运行8次,生产103至110的连续数字。

软件特攻队|Vim宏,使你工作更轻松示例-3:在文件的每一行中添加相同的文本

在操作数据库时,很多语句都非常相似,例如insert into这样的添加语句,如果我们要批量插入,该如何快速生成多条SQL语句呢?

在这里,我们用Vim编辑器打开file3.txt文件,然后按Esc,再以宏名d按qd开始录制。

软件特攻队|Vim宏,使你工作更轻松移动光标到文件的开头,按i插入文本,输入添加语句的SQL,insert into items values( ,在按Esc,w,yw5次。

这里的w作用是转到下一个单词,yw用来复制当前单词,所以这里按5次是因为每行这里都有五个部分,分别是11001 , HDD , Samsung (注意逗号也算一部分)。之后,按 ESC 和 a 键将光标移动到行尾,再输入 ); 。

软件特攻队|Vim宏,使你工作更轻松最后,我们按j再按q,j用于移动到下一行,q停止录制,这样宏就制作好了。

现在,我们想要让下面剩下的 3 行的文本都处理成第一行那样的格式,直接按 3@d 运行宏 3 次就可以实现。这样一来,在数据库中进行插入就会方便很多,而且我们无需手动一个个去更改,简单高效!

软件特攻队|Vim宏,使你工作更轻松

来源:女儿叫老白

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年4月16日
下一篇 2020年4月16日

相关推荐