当前位置: 首页 > Linux

老板说你不会用Vim宏,你的工作效率太低了~

时间:2023-04-06 23:20:06 Linux

在工作中,我们经常有这样编辑文本文件的需求:重复多次输入同一个文本;生成序列化文本;每行文本插入一个相同文本的句子。此外,还有很多动作需要重复。对于这些需求,如果我们手动去操作,那肯定是很枯燥的,浪费很多时间和精力。这时候,Vim宏就派上用场了,它可以通过一些简单的步骤快速完成这些重复的操作,省时省力!下面详细解释。录制和运行宏录制在Vim编辑器中创建新文件或打开现有文件;按q后跟宏名称开始录制。假设我们要命名宏b,按Esc和qb开始录制;文本编辑ing...按q停止录制。至此,宏的录制就完成了。要运行宏,请按@后跟宏名称以运行宏一次,然后按时间后跟@macro名称以多次运行宏。下面举例详细介绍。Example-1:使用宏多次生成相同的文本比如我们要生成100行相同的文本,比较笨的方法就是复制粘贴需要的次数。这是非常低效且非常容易出错的。有了宏的工具,一切都变得超级简单!首先,我们在Vim编辑器中创建一个名为file1.txt的新文件。然后,我们按q然后按z开始录制宏。这里z是宏名,后面会用到。如果录制正确,底部会出现录制@z的字样。之后,按i并输入要重复的文本。例如,在这里输入文本LearningVimMacros。最后按q停止录音,录音@z会从底部消失。这样,一个名为z的宏就被记录下来了,我们以后可以利用这个宏来重复进行文字录入工作。如果要运行新创建的宏一次,只需将光标移动到文件中的所需位置,然后按@z,文本将被再次复制。如果你想把这行文字复制N次,你可以多次运行那个宏。此时只要在宏前面加上时间即可。比如4@z可以运行前面的宏4次,相应的文本会被复制4次。Example-2:用宏生成序列号在Example-1中,我们机械地重复复制了一堆相同的文本,那么如果我们想要生成一个序列号的文本怎么办呢?也可以用宏轻松完成!假设我们要生成101-110的一系列数字,我们一起来完成这个需求。首先,在Vim编辑器中创建一个名为file2.txt的新文件,然后按i并键入101..按ESC退出键入。然后按qy开始记录后面的操作,宏名y。我们将光标移动到第一行的开头,然后按yy复制文本,然后按p将文本粘贴到下一行。接下来,按Ctrl+a将第二行中的值从101增加到102。最后,像以前一样按q停止录制,我们的宏就完成了。接下来,就是见证奇迹的时刻了!我们输入8@y,刚才录制的宏会运行8次,生成103到110的连续数字。一键操作,简单高效!这对于一些顺序文本非常有用,你不需要再重复复制-->换号这样的枯燥工作,效率会大大提高!Example-3:在文件的每一行添加相同的文本我们在操作数据库的时候,有些语句在很多情况下是非常相似的,比如insertintoitemsvalues(100,20077100050,alvin)这个文本会重复很多次次。如果我们已经有了要插入的数据,如何快速生成多条SQL语句呢?本例中,我们假设数据文件file3.txt有4条数据,如下图。首先,我们在Vim编辑器中打开数据文件file3.txt,然后按ESC,再按qd开始录制宏名d。将光标移动到文件的开头,然后按i插入文本。然后输入insertintoitemsvalues(,然后按ESC,w,yw5次。这里w是用来跳到下一个词,yw是用来复制当前词。之所以是5次,是因为每个这里的行有五个部分,分别是11001,HDD,Samsung(注意逗号也算一部分),之后按ESC加a键将光标移动到行尾,然后回车);.最后,按j然后按q。这里,j用于移动到下一行,q用于停止记录。这样我们需要的宏就完成了。现在,我们要把剩下的3行文本处理成和第一行一样的格式,直接按3@d运行宏3次即可。这样在数据库中插入会方便很多,不需要我们手动一一更改,简单高效!结语在写代码的过程中,有很多场合是文字和代码高度相似的。如果我们手动去一个一个修改,效率会很低。借助Vim下的宏这个神器,我们可以创建和使用不同类型的宏来完成这些重复性的工作,从而节省时间和精力,实现高效的编辑。看到的都是真爱,走之前怎么不竖个大拇指?您的“三通”是良旭继续创作的最大动力!关注原创公众号《良序Linux》,第一时间获取最新Linux干货!公众号后台回复【信息】【面试】【简历】获取精选一线大厂的面试、自我提升、简历等信息。关注我的博客:lxlinux.net