我知道:bufdo
命令,并试图将它与我记录的宏(@a
)结合起来,在每个头文件的正确位置添加一个#include。装了。但是,我找不到在每个缓冲区上运行宏的简单方法。有没有办法通过ex模式执行宏,:bufdo
需要什么?或者还有另一个我失踪的命令?
答案 0 :(得分:34)
你可以这样做:
:bufdo execute "normal @a" | write
普通命令将运行宏,但必须使用:execute运行,否则管道符将被解释为正常模式字符。
答案 1 :(得分:12)
您必须使用normal
执行正常模式命令,例如命令模式下的宏执行(@a
):
:bufdo normal @a
答案 2 :(得分:0)
我能想出的唯一选择是将:w
和:bn
命令添加到宏中,以便它自动保存并移动到下一个缓冲区。然后我可以通过键入52@a
在其他52个缓冲区上运行该命令。这是有效的,但对我来说是一个与:bufdo
完全不同的概念模型,我希望其他人能指出我与:bufdo
更相似的方向。