参考资料:
如何录制宏:
每个寄存器都是按a到z来定义的。
在命令行模式下,输入q来触发宏录制,输入q来退出宏录制。
格式为:
q<letter><commands>q
如需执行多次,可以按如下格式输入:
<number>@<letter>
完整的宏看起来应该是这样的:
qd | 开始录制宏,记为寄存器 d |
... | 你可以在 vim 里进行各种操作 |
q | 按下q ,停止录制 |
@d | 执行你录制的宏 d |
@@ | 再次执行你刚刚录制的宏 |
如何使用宏:
给个例子:
如果有如下这些文字:
one first example
two second example
three third example
four fourth example
你想把它处理成这样的效果:
data = {
'one': 'first example',
'two': 'second example',
'three': 'third example',
'four': 'fourth example',
}
接下来将告诉你如何实现:
光标移至第一行的第一个字母
- 按下q,然后按下任何一个字母来作为宏的名字,如d,然后你能看到下面的记录中字眼
- 输入如下命令,将当前行的空白部分替换为':'
:s/\s\+/': ' (然后按下Enter)
- 在行首添加'
I ' (然后按下Esc)
- 在行尾添加 '
A ' (然后按下Esc)
- 跳到下一行行首
0 j
- 再次按下 q ,结束宏录制,至此一个简单的宏就录制成功了。
- 你肯定迫不及待想开始尝试了,对,就是这样:
- 上面的命令结束后,光标一定停在第二行行首,这时不要移动光标,按下@d ,就可以改变第二行,你继续按,可以按@@,就能改变了第三行。
- 当然,如果老是一行一行按,也是挺麻烦的,教你一个更简单的方法:按下2@d ,就可以完成两次宏的操作,即改变两行,2即是执行宏的次数,你可以任意更改成其他数字,如100......
如何删除宏:
好了,既然宏这么好玩,为什么还要删掉它呢?其实这纯粹是我的强迫症,我第一次录完宏,就立马找教程删宏了,好了,废话不多说,教你怎么删掉刚才录制的宏 d
直接输入一下命令:
:let @d=''
这个命令可以把宏寄存器d清空。当然,清空貌似没什么意义,因为如果你重新录制的一个新的宏,但名字还是叫d,那么你原来录制的东西就会被覆盖掉,取而代之的是新的宏。