vim 宏录制(recording)

vim 录制宏(record)

vim 的宏可以很方便的用来实现一些比较复杂的文本操作.只需要录制一个record,vim 就可以自动帮你处理你希望被处理的行.再 normal 模式中按下 q + 任意字符 来进入record 模式,q在本质上是一个操作命令前缀的作用,后面的字符是区分寄存器的作用,因为再vim中,你可以录制很多个record,多个record之间需要区分,当然需要by name 啦,为了简单期间,我们用一个英文字母来代表不同的record,所以就产生了录制record的操作命令q + [a-zA-Z0-9]中的任意字符.

进入record模式之后,我们只需要按照正常的方式操作当前行的字符就可以,你仍然可以用esc,i,a之类的命令,完全不用考虑你在record模式中.需要注意的一点是你需要考虑你的操作应该在每一行上同样生效,比如说处理完一行之后,做最好让你的光标移动到行首,然后向下走一行,处理下面的行,这样才可以进行多次处理.
一通操作之后,你可能完成你的录制工作了,当然了,这时候你需要结束record,我们用q来完成录制.

批处理

你刚才已经录制了一个record,这个record的名字就是你刚才用的名字,这里假定我们用的record代号是a吧.然后,将光标移动到第二行(因为第一行我们已经处理过了,所以从第二行开始). 再normal 模式下,我们输入100 @ a.如果没有意外,你应该能看到,光标往下的100行已经被我们的宏操作处理过了.

练习题

来个习题: 给下面的文本增加引号,加逗号,变成下面这样.

hello
worlasdfas
dsfasd
asdfasdf
'hello',
'worlasdfas',
'dsfasd',
'asdfasdf',

答案: normal -> qa 0i'ESC$',ESC0j q
《vim 宏录制(recording)》

点赞

Leave a Reply

Your email address will not be published.