如何在不切换到缓冲区的情况下将更改保存到已修改的Vim缓冲区?我正在尝试编写一个保存和关闭项目中所有缓冲区的函数。
答案 0 :(得分:2)
您可以使用:wqa[ll]
来编写和关闭所有已更改的缓冲区。 :wa
将在不关闭的情况下撰写。
答案 1 :(得分:2)
除:wqall
命令外,没有写入当前缓冲区以外的缓冲区的命令。
所以你必须切换到缓冲区才能编写它。您可以使用:noautocmd
来避免相关事件(但可能会产生不良副作用!)。
唯一的选择是使用getbufline()
和writefile()
等低级函数,但是您必须自己处理编码转换,文件格式等。
答案 2 :(得分:1)
您可以使用参数列表,请参阅:help argument-list
。
假设您正在处理三个文件foo
,bar
,baz
,并且只想写foo
和baz
:
:args foo baz
:argdo w
你显然需要额外的逻辑来确定首先放入arglist的缓冲区,但听起来你已经有了。