在vim中的所有缓冲区中运行宏

时间:2010-06-11 16:03:55

标签: vim macros

我知道:bufdo命令,并试图将它与我记录的宏(@a)结合起来,在每个头文件的正确位置添加一个#include。装了。但是,我找不到在每个缓冲区上运行宏的简单方法。有没有办法通过ex模式执行宏,:bufdo需要什么?或者还有另一个我失踪的命令?

3 个答案:

答案 0 :(得分:34)

你可以这样做:

:bufdo execute "normal @a" | write

普通命令将运行宏,但必须使用:execute运行,否则管道符将被解释为正常模式字符。

答案 1 :(得分:12)

您必须使用normal执行正常模式命令,例如命令模式下的宏执行(@a

:bufdo normal @a

答案 2 :(得分:0)

我能想出的唯一选择是将:w:bn命令添加到宏中,以便它自动保存并移动到下一个缓冲区。然后我可以通过键入52@a在其他52个缓冲区上运行该命令。这是有效的,但对我来说是一个与:bufdo完全不同的概念模型,我希望其他人能指出我与:bufdo更相似的方向。