5

在使用各种标准扩展对我的 Vim 环境进行了完整的重新设置后,有一种行为让我非常恼火:

当我在拆分窗口中打开一个文件并再次关闭该窗口时(“:wq”),Vim 似乎在后台保持文件缓冲区打开。当我现在尝试在新 Vim 实例的不同 shell 选项卡中打开文件时,交换文件仍然存在,这使我无法编辑文件。

我想有一个设置使 Vim 在我关闭拆分时保持缓冲区打开但隐藏,但我找不到它是哪一个。我真正想要的是,当我关闭拆分时,Vim 真的会关闭缓冲区,这样我就可以在并行的 Vim 会话中再次打开相应的文件。

我期望的是,一旦显示缓冲区的最后一个窗口通过“:q”关闭,缓冲区就会关闭。

4

4 回答 4

7

使用检查hidden选项的值:set hidden?。默认情况下,vim 将此设置为nohidden,这应该会产生您要求的行为;缓冲区在被废弃时被卸载(意味着没有窗口显示它们)。此设置可能设置为hidden,这会导致您遇到的行为;缓冲区在被放弃时被隐藏。

:help 'hidden'了解更多信息。

于 2013-04-11T13:53:46.857 回答
2

我认为您将缓冲区与窗口混淆了。可以在此处找到对差异的很好解释。

我也建议阅读。它有一个脚本示例,可以在不关闭窗口的情况下关闭缓冲区,这应该是您描述的效果。

干杯,我希望这会有所帮助。

于 2013-04-11T09:33:00.903 回答
0

我不确定您是如何关闭拆分的,例如CtrlWCtrlo在另一个窗口中使用 或CtrlWCtrlq,但我认为这也不应该关闭缓冲区。拆分只是一种窗口管理方法,而不是缓冲区管理方法。

如果在拆分中,您想关闭缓冲区及其窗口,为什么不使用:bd?它将显式关闭缓冲区。

于 2013-04-11T09:31:13.693 回答
0

您正在寻找:bw[ipeout].

于 2013-04-11T09:31:27.710 回答