closures文件而不退出VIM应用程序?

我是VIM的新手。 我使用:e:w命令来编辑和写入非常方便的文件。 我不确定是否有“close”命令closures当前文件而不离开VIM?

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

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

 :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给我留了很长一段时间。

如果在vim窗口中有多个分割窗口,则:bdclosures当前文件的分割窗口…所以我喜欢使用更高级的东西:

 map fc <Esc>:call CleanClose(1) map fq <Esc>:call CleanClose(0) function! CleanClose(tosave) if (a:tosave == 1) w! endif let todelbufNr = bufnr("%") let newbufNr = bufnr("#") if ((newbufNr != -1) && (newbufNr != todelbufNr) && buflisted(newbufNr)) exe "b".newbufNr else bnext endif if (bufnr("%") == todelbufNr) new endif exe "bd".todelbufNr endfunction 
  :[N] bd [elete] [!] *:bd * *:bdel * *:bdelete * * E516 *
 :bd [elete] [!] [N]
                卸载缓冲区[N](默认:当前缓冲区)并从中删除
                缓冲区列表。 如果缓冲区被改变,则失败,
                除非指定了[!],在这种情况下,更改将会丢失。
                该文件保持不受影响。 任何窗口这个缓冲区是
                closures。 如果缓冲区[N]是当前缓冲区,则为另一个缓冲区
                将被显示。 这是最近的一个入口
                指向加载的缓冲区的跳转列表。
                实际上,缓冲区并没有完全删除,它被删除了
                从缓冲列表中列出| unlisted-buffer | 和选项值,
                variables和缓冲区的映射/缩写是
                清除。 

如果你已经保存了最后一个文件,那么:enew是你的朋友(:如果你不想保存最后一个文件,那就是enew!)。 请注意,原始文件仍然在您的缓冲区列表中(可通过ls访问)。

如果您修改了一个文件,并且希望在不退出VIM的情况下closures它并且不保存,则应该input:bd!

:bd可以被映射。 我把它映射到F4,如果我需要强制closures,shift-F4,因为我不再需要一些改变。

有一个插件:bufkill(见http://www.vim.org/scripts/script.php?script_id=1147

这增加了BD等删除缓冲区没有closures任何拆分(如bd )将单独。

看看丁烷插件closures缓冲区时保持窗口布局。

https://github.com/Soares/butane.vim

我已经将bd映射到F4,并在.vimrc文件中插入以下内容,并按F4键将closures当前文件。

 :map <F4> :bd<CR> 

我有同样的问题,所以我做了插件。 这个插件replace:q和其他命令,然后阻止窗口closures。

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