我知道:bufdo
命令,并尝试将其与我录制的宏(@a
)结合起来,在每个已加载的头文件的适当位置添加一个#include。不过,我无法找到一种简单的方法在每个缓冲区上运行该宏。是否有一种方式可以通过ex mode执行宏,这是:bufdo
所需的?或者还有其他我不知道的命令吗?
我知道:bufdo
命令,并尝试将其与我录制的宏(@a
)结合起来,在每个已加载的头文件的适当位置添加一个#include。不过,我无法找到一种简单的方法在每个缓冲区上运行该宏。是否有一种方式可以通过ex mode执行宏,这是:bufdo
所需的?或者还有其他我不知道的命令吗?
你可以这样做:
:bufdo execute "normal @a" | write
正常的命令将运行宏,但必须使用 :execute 运行,否则管道字符将被解释为普通模式字符。
你必须使用normal
命令来执行正常模式下的命令,例如在命令模式下执行宏(@a
):
:bufdo normal @a
:se hidden
,以便我可以切换到另一个缓冲区而不保存; 然后用 :wa
一次性保存所有缓冲区。 - Gautam:w
和:bn
命令添加到宏中,这样它就会自动保存并移动到下一个缓冲区。然后,我可以通过键入52@a
在其他52个缓冲区上运行该命令。这种方法虽然可行,但对我来说与:bufdo
的概念模型有很大不同,我希望有人能指点我找到更类似于:bufdo
的东西。