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

Rne*_*net 22 vim

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

Joe*_*l.O 42

窗口是缓冲区上的视口.在vim中管理windows它是CTRL+ w前导命令,你可以使用几个选项(粗体那些回答你的问题):

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

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

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

CTRL+ w, right arrow:将光标移动到右侧的窗口

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

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

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

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

:b5 切换到第5个缓冲区

最后,要打开垂直拆分中的所有缓冲区,请使用::vertical sball.在grep之后将多个文件作为缓冲区打开时非常有用:

grep -rno --exclude-dir={dir1,dir2,dir3} "searchterm" *
vim $(!! -l)
Run Code Online (Sandbox Code Playgroud)

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


Ing*_*kat 15

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

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

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

:set hidden
Run Code Online (Sandbox Code Playgroud)

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


Ama*_*dan 5

Vim窗户关闭使用:q.

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

要关闭缓冲区,您需要这样做:bdelete.

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

  • @Rnet - 你可以从`gvim -u NONE`开始并验证它在那里工作.如果是的话,我会从`gvim --noplugin`开始并再次验证.这样你知道它是一个插件还是你自己的.vimrc. (2认同)
  • 或者你可以尝试`:set verbose = 1 | map q` (2认同)