Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不带关闭缓冲器的Vim关闭窗口_Vim - Fatal编程技术网

不带关闭缓冲器的Vim关闭窗口

不带关闭缓冲器的Vim关闭窗口,vim,Vim,如何在不删除缓冲区的情况下关闭窗口或取消闪烁?Vim窗口使用:q关闭 但是,如果没有打开另一个窗口,它将从Vim退出。如果您确实要切换到另一个窗口,则只有当前窗口关闭,缓冲区保持打开状态。您可能需要设置隐藏 要关闭缓冲区,需要执行:b删除 您可以使用:buffers检查缓冲区是否打开如果您想在窗口中编辑另一个缓冲区,只需使用:edit/:buf。当前缓冲区将被替换,并保留在缓冲区列表中(即,它显示在:ls中) 如果要关闭windows拆分,请使用:close。:quit命令也会起作用,但当这是最

如何在不删除缓冲区的情况下关闭窗口或取消闪烁?

Vim窗口使用
:q
关闭

但是,如果没有打开另一个窗口,它将从Vim退出。如果您确实要切换到另一个窗口,则只有当前窗口关闭,缓冲区保持打开状态。您可能需要
设置隐藏

要关闭缓冲区,需要执行
:b删除


您可以使用
:buffers

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

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

为了保留有更改的缓冲区,您需要

:set hidden

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

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

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

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

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

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

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

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

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

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

:b5
切换到第五个缓冲区

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

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

有关更多信息,请参阅文档:

,但我发现这也会删除缓冲区,或者是因为我使用的是windows gvim?@Rnet-不应该这样做。使用:q后:缓冲区显示什么?@LievenKeersmaekers,很奇怪,缓冲区名称没有列在这里。我一直在修补插件,这可能会导致一个问题。@Rnet-您可以从
gvim-u NONE
开始,并验证它是否在那里工作。如果是这样,我将从
gvim--noplugin
开始,然后再次验证。这样你就知道它是一个插件还是你自己的.vimrc。或者你可以试试
:set verbose=1 | map q