重放vim宏直到缓冲区结束

时间:2009-08-18 05:28:28

标签: vim macros

我想在开放缓冲区的每一行上运行一个我刚刚记录在寄存器“x”中的宏,从光标到缓冲区的末尾,在vim中。我该怎么做?

我知道我可以重播宏n次:

15@x

...或者只是按住@直到我到达最后一行,但我想点击几下击键并完成它。

提前致谢。

5 个答案:

答案 0 :(得分:89)

就我个人而言

VG:normal @x

编辑:将寄存器更改为您指定的寄存器。

答案 1 :(得分:58)

你可以(在命令模式下)

:%normal @x

答案 2 :(得分:22)

制作递归宏:

qa@aq

例如:

qa0gUwj@aq

它将使用单个@a UPCASE从当前行到文件末尾的第一个单词。 但请确保“寄存器为空:

let @a=""

答案 3 :(得分:9)

999999@x,除非你有一个非常大的缓冲区......

答案 4 :(得分:-1)

来自vim wiki,缩短版本: qqqqq记录宏 @qq完成录制 @q执行它(并将运行到文件末尾)