Vim关闭窗口没有关闭缓冲区

时间:2014-02-28 06:20:09

标签: vim

如何在不删除缓冲区的情况下关闭窗口或未分割?

3 个答案:

答案 0 :(得分:32)

窗口是缓冲区上的视口。在vim中管理windows时,它是 CTRL + w 的主要命令,您可以使用多个选项(粗体显示回答您问题的选项):

CTRL + w v :打开一个新的垂直分割

CTRL + w c :关闭窗口但保留缓冲区

CTRL + w o :关闭其他窗口,仅保留活动窗口

CTRL + w 右箭头:将光标移动到右侧的窗口

CTRL + w r :将当前窗口向右移动

CTRL + w = :使所有分割大小相等

然后,您需要在窗口中切换缓冲区:

:ls列出所有已打开的缓冲区

:b5切换到第5个缓冲区

最后,要打开垂直拆分中的所有缓冲区,请使用::vertical sball。 在grep:

之后将多个文件作为缓冲区打开时非常有用
grep -rno --exclude-dir={dir1,dir2,dir3} "searchterm" *
vim $(!! -l)

有关详细信息,请参阅文档:vimdoc.sourceforge.net

答案 1 :(得分:13)

如果您想在窗口中编辑另一个缓冲区,只需使用:edit / :buf即可。当前缓冲区将被替换,并保留在缓冲区列表中(即它显示在:ls中)。

如果要关闭窗口拆分,请使用:close:quit命令也可以工作,但是当这是最后一个窗口时会产生关闭Vim的副作用。

为了留下有变化的缓冲区,您需要

:set hidden

如果您知道Vim如何处理缓冲区,这是许多用户设置的推荐选项。

答案 2 :(得分:5)

使用:q关闭Vim窗口。

但是,如果您没有打开另一个窗口,它将从Vim退出。如果您有另一个要切换的窗口,则仅关闭当前窗口,并且缓冲区保持打开状态。您可能需要set hidden

要关闭缓冲区,您需要执行:bdelete

您可以使用:buffers检查缓冲区是否已打开。