在 Vim 中切换缓冲区

在 Vim 中切换缓冲区

我最近从 Emacs 切换到 Vim,所以这可能只是我完全误解了 Vim 的工作原理。

我在 Vim 中打开了一个文件并做了一些更改,但没有保存。然后我使用:e otherfile打开第二个文件,并对该文件做了一些更改。同样,不保存更改,我想返回到第一个缓冲区。我正在使用:bn,但当我这样做时,我得到了E37: No write since last change ...。如果我这样做:bn!,那么我可以改回第一个缓冲区。从第一个缓冲区,我可以用直接 改回第二个缓冲区:bn,但每次我都必须:bn!从第二个缓冲区转到第一个缓冲区。

set bufhidden=hide我在 vimrc 中找到了,但如果我:set bufhidden?在 Vim 中运行,就会得到bufhidden=。这可能是问题吗?

编辑:我稍微缩小了问题的范围。在第一个文件中,:set bufhidden?返回bufhidden=hide,但在第二个文件中,返回bufhidden=。这是怎么回事?我是不是错过了 Vim 缓冲区的一些基本知识?

编辑2:好的,它似乎set bufhidden=hide仅适用于第一个打开的缓冲区。它需要在后续缓冲区中显式调用。我肯定完全没有抓住重点,因为这似乎没什么用。

答案1

好吧,我刚才太傻了。我不想set bufhidden=hide在我的 vimrc 中使用它 - 那只是一个缓冲区。现在我已将其更改为set hidden一切正常,我认为它应该如此。

相关内容