如何在正常模式下录制和/或创建包含字符“q”的vim宏?

时间:2013-04-16 17:28:57

标签: vim macros

众所周知,q用于开始录制,也用于终止录制宏。

不幸的是,我正在尝试记录包含命令q:的一系列命令,并且宏(自然地)停止在q处录制。

有没有办法可以录制一系列包含q正常模式的命令?

更新:我尝试将q重新映射到其他内容并将另一个字母映射到q,但这似乎打破了{I}的功能,因为我试图记录的实际命令

2 个答案:

答案 0 :(得分:4)

您可以执行: Ctrl + f 打开命令历史记录窗口而不停止录制。

答案 1 :(得分:3)

你已经得到了接受的答案,我只是提到另一个记录宏的技巧,这样你就可以在宏中拥有q:

你可以按:ctrl-f,或者如果你真的爱q:,你可以:

例如:

let @q='5j5kq:<c-v><up><c-v><enter>j'

5j5k什么都不做,仅举例来说。

200@q将为下一个200行执行最后一个命令。如果您的上一个命令将某些参数(如当前行号或当前行(文本))传递给函数。它也会起作用。

如果要在宏中编辑命令行,则需要在<c-v><enter>按键序列之前。

对于<c-v><up><c-v><enter>,您需要真正的类型,而不是纯文本。

但是从我的角度来看,常见任务不需要这些技巧。