宏(macro)——实战批量注释及缩进
先看以下两个场景,批量注释多行代码及缩进多行代码。这两个场景是我们日常开发中经常遇到的。如果是使用IDE的话,批量注释多行代码只要选定这些行后,然后使用ctrl+/即可。缩进的话,也是选定行然后按tab键就行了。但是,如果是使用vim编辑器的话,这些操作就不是这么来完成的了。今天,和大家介绍下vim下强大的工具——宏。使用他,可以完成许多意想不到的功能哦!
从字面上很难理解宏的意思,其实你就理解成批处理就行了,把宏看成许多命令的集合。然后这些命令集合可以多次执行。
使用宏
宏的使用分为录制以及回放。vim使用q键来开始录制,同时也是一q作为宏的结束按键。
使用q{register}选择需要保持的寄存器,这个寄存器的功能就是把录制的命令保存在其中。
使用@{register}回放寄存器内的命令集合。如想多次播放宏,可以使用数字+@{register},如10@a。
实战
宏的介绍就这么多,现在我们来完成刚开始所说的需求吧。首先,完成批量注释代码的功能。这里,我们先不用宏来完成,而是使用块选择及命令行模式来完成该需求。对于第二个需求,我们才使用宏去完成。
下面是以一段代码:
我们选择去将free方法给注释掉。
首先我们来到第70行,在普通模式下按下70G来到70行。按下V进入块选择模式,然后移动光标选择所有的想要注释的行。输入:进入命令行模式,输入normal 0i//,然后按下enter键。
下面,我们再来用宏来完成另一个需求——批量缩进。
可以看到左边空了许多空格,现在我们一起来消除这些没用的空格吧。首先来到第一行,按下qa开始录制宏;按下0w,来到第一个非空格字符串,按下i,然后一直退格,直到所有的空格都删除了;然后按下q键结束录制,至此,宏就已经做好了,接下来就是给剩下的行来播放宏即可。进入块选择模式,将剩下的行全部选择,然后按下:normal @a。