我正在编辑文件:e foo
。
现在我想保存它,关闭缓冲区(所以我可以在打开foo
之前返回状态),使用command
。
我现在有这个:
command! GC silent execute ":wq" | silent execute ":close"
但如果我之前没有打开任何缓冲区,我会收到此错误:
E444: Cannot close last window
如何关闭窗口,如果它是最后一个窗口,它仍会关闭它,然后将我返回到您运行vim
时获得的空白屏幕?
答案 0 :(得分:4)
我认为您正在寻找:update
+ :bdelete
命令组合。如果存在更改,则第一个持续更改,后者删除缓冲区。如果有其他拆分窗口,则关闭当前窗口。否则,如果您有其他参数/隐藏缓冲区,则下一个参数将显示在单个窗口中。如果没有其他窗口,则显示空缓冲区(如:enew
)。
答案 1 :(得分:0)
当你没有文件作为参数$ vim
启动Vim时,你看到的只是一个空缓冲区。如果它的状态没有以任何方式改变,那么当你执行:e file
时它就会被丢弃。
您可以使用:ls
查看:唯一可用的缓冲区为file
。
如果你想要一个空的缓冲区(我不知道为什么你会想要那个),你需要明确创建一个:
:enew
除非有一个我不知道的选项。
无论如何,我建议你这样做:
$ vim file
而不是:
$ vim
:e file
答案 2 :(得分:0)
你想save all files, and exit vim
吗?然后输入ZZ
。
或者你想做save all files if updated, and close all windows
?然后
command! GC bufdo update | windo bw