1

我正在编辑一个文件:e foo

现在我想保存它,关闭缓冲区(这样我就可以回到打开之前的状态foo),使用command.

我现在有这个:

command! GC silent execute ":wq" | silent execute ":close"

但如果我之前没有打开任何缓冲区,我会收到此错误:

E444: Cannot close last window

我怎样才能关闭窗口,这样如果它是最后一个窗口,它仍然会关闭它,并让我回到你刚运行时得到的空屏幕vim

4

3 回答 3

4

我认为您正在寻找:update+:bdelete命令组合。如果有任何更改,第一个保持更改,后者删除缓冲区。如果还有其他拆分窗口,则关闭当前窗口。否则,如果您有其他参数/​​隐藏缓冲区,则下一个将显示在单个窗口中。如果没有其他窗口,则会:enew显示一个空缓冲区(如 )。

于 2012-11-27T09:32:10.097 回答
0

当你在没有文件作为参数的情况下启动 Vim 时,你看到$ vim的只是一个空缓冲区。如果它的状态没有以任何方式改变,那么当你改变它时它就会被丢弃:e file

您可以看到:ls: 唯一可用的缓冲区是file.

如果你想要一个空缓冲区(我不知道你为什么想要那个),你需要明确地创建一个:

:enew

除非有一个我不知道的选项。

无论如何,我建议你这样做:

$ vim file

而不是:

$ vim
:e file
于 2012-11-27T07:44:31.320 回答
0

你想做save all files, and exit vim吗?然后只需键入ZZ. 或者你想做什么save all files if updated, and close all windows?然后

command! GC bufdo update | windo bw
于 2012-11-27T09:14:52.217 回答