我使用:e和:w命令来编辑和写入文件。我不确定是否有“close”命令关闭当前文件而不离开Vim?

我知道:q命令可以用来关闭一个文件,但如果它是最后一个文件,Vim也会被关闭;实际上在Mac OS上MacVim退出了。只有Vim窗口是关闭的,我可以使用Control-N再次打开一个空白的Vim窗口。我希望Vim保持空白屏幕的打开状态。


当前回答

这将删除缓冲区(转换为关闭文件)

:bd 

其他回答

:[N]bd[elete][!]                        *:bd* *:bdel* *:bdelete* *E516*
:bd[elete][!] [N]
                Unload buffer [N] (default: current buffer) and delete it from
                the buffer list.  If the buffer was changed, this fails,
                unless when [!] is specified, in which case changes are lost.
                The file remains unaffected.  Any windows for this buffer are
                closed.  If buffer [N] is the current buffer, another buffer
                will be displayed instead.  This is the most recent entry in
                the jump list that points into a loaded buffer.
                Actually, the buffer isn't completely deleted, it is removed
                from the buffer list |unlisted-buffer| and option values,
                variables and mappings/abbreviations for the buffer are
                cleared.

我有同样的问题,所以我做了插件。 这个插件替换:q等命令,然后阻止窗口关闭。

如果您仍然有问题,请尝试使用以下插件。 https://github.com/taka-vagyok/prevent-win-closed.vim

这将删除缓冲区(转换为关闭文件)

:bd 

如前所述,你正在寻找:bd,然而这并没有完全删除缓冲区,它仍然是可访问的:

:e foo
:e bar
:buffers
  1 #h   "foo"                          line 1
  2 %a   "bar"                          line 1
Press ENTER or type command to continue
:bd 2
:buffers
  1 %a   "foo"                          line 1
Press ENTER or type command to continue
:b 2
2   bar

相反,您可能需要:bw,这将完全删除它。

:bw 2
:b 2 
E86: Buffer 2 does not exist

不知道:bw困扰了我一段时间。

bufkill。vim插件添加了BD等,在不关闭任何分割的情况下删除缓冲区(就像BD一样)。