工做中,对于文本文件的编辑咱们常常有这样的需求:linux
除此以外,还有不少须要重复操做的动做。对于这些需求,若是咱们人工去操做的话,确定是很是枯燥乏味,而且要浪费不少时间精力。面试
这时, Vim 宏就派上用场了,它能够经过一些简单的步骤快速完成这些重复性的操做,省时省力!下面详细讲解。数据库
宏的录制编辑器
q
并跟上 宏名
开始录制。假设咱们想要将宏名命名为 b
,则按 Esc
和 qb
开始录制;q
中止录制。至此,宏的录制已完成。宏的运行工具
按 @
接 宏名
便可运行宏一次,按 次数
接 @宏名
重复运行宏屡次。.net
下面给出实例来详细介绍。3d
例如咱们要生成 100 行同样的文字,一种比较笨的办法就是复制而后粘贴所须要的遍数。这种效率很是低,并且很是容易出错。有了宏这个工具,一切变得超级简单!code
首先,咱们在 Vim 编辑器中建立一个名为 file1.txt
的新文件。cdn
而后,咱们按 q
以后再按 z
开始录制宏。这里的 z
就是 宏名
,后面会用到。若是录制正确,底部就会出现 recording @z
字样。blog
再以后,按 i
而后输入要须要重复的文本。好比这里输入文本 Learning Vim Macros
。
最后按 q
中止录制,这时 recording @z
就会从底部消失。这样,一个名为 z
的 宏就录制完成了,后续咱们就能够利用这个宏来重复完成文字录入工做。
若是你想运行一次刚刚建立的宏,那么将光标移动到文件的所需位置,而后并按 @z
就能够了,这时文字就会被复制一遍。
若是你想要复制 N 屡次这行文字,则能够屡次运行刚刚那个宏。此时只需在宏前面加 次数
便可。例如 4@z
就能够运行刚才的宏 4 次,相应文字就会被复制 4 遍。
在示例-1里咱们是机械重复复制一堆同样的文字,那若是想要生成带序列的文本该如何处理?使用宏也能够轻松完成!
假设咱们要生成 101-110
的一系列数字,咱们一块儿来完成这个需求。
首先,在 Vim 编辑器中建立一个名为 file2.txt
的新文件,接着按 i
键入 101.
。
按 ESC
退出键入。而后再按 qy
以宏名称 y
开始录制后续的操做。咱们将光标移到第一行的开头并按 yy
复制文本,而后按 p
将文本粘贴到下一行。
接着,按 Ctrl + a
将第二行的值从 101
增长到 102
。最后,像以前同样按 q
中止录制,咱们的宏就制做完成了。
接下来,就是见证奇迹的时刻!
咱们键入 8@y
,刚刚所录制的宏就会运行 8 次,生成从 103
到 110
的连续数字。一键操做,简单高效!
这对于一些带有序列性的文本很是有用,你就无需再重复去作 复制-->改数字 这样重复枯燥的工做,同时效率也会大大提高!
咱们在操做数据库的时候,不少状况下一些语句很是类似,好比 insert into items values(100, 20077100050, alvin)
这样的文本,会重复不少次。假如咱们如今已经有了要插入的数据,如何快速生成多条 SQL 语句?
在这个例子里,咱们假设数据文件 file3.txt
有 4 条数据,以下图示。
首先,咱们在 Vim 编辑器中打开数据文件 file3.txt
,而后按 ESC
,再而后按 qd
以宏名 d
开始录制。
将光标转到文件的开头,按 i
键插入文本。而后再输入 insert into items values(
,再接着按 ESC
, w
, yw
5 次。
在这里,w
用于转到下一个单词,yw
用于复制当前单词。之因此这里要 5 次是由于这里每行有五部分。分别是 11001
,
HDD
,
Samsung
(注意逗号也算一部分)。
以后,按 ESC
和 a
键将光标移动到行尾,再输入 );
。
最后,按 j
而后按 q
。这里,j
用于移动到下一行,q
用于中止录制。这样咱们所须要的宏就制做完成了。
如今,咱们想要让下面剩下的 3 行的文本都处理成第一行那样的格式,直接按 3@d
运行宏 3 次就能够实现。这样一来,在数据库中进行插入就会方便不少,并且咱们无需手动一个个去更改,简单高效!
咱们在写代码过程当中,有不少场合文本、代码高度类似,若是咱们手动去一个个修改的话,那效率将会很是低。有了 Vim 下宏这个神器,咱们能够经过建立和使用不一样类型的宏来完成这些重复性工做,从而节省时间和精力,实现高效编辑。