区分Vim中的隐藏缓冲区和活动缓冲区

4

有没有办法在Vim中区分隐藏和活动缓冲区?

我需要确定窗口中的缓冲区是否处于活动状态,以便可以切换它。
尝试使用bufloadedbufexistsbuflisted,但它们对于活动和隐藏的缓冲区都返回1。

(我在vimrc中设置了set hiddenset bufhidden=hide)

2个回答

8
使用bufwinnr()函数来检查缓冲区是否在窗口中打开。当缓冲区未打开时,结果为-1

2
这个不起作用,你需要使用 empty(win_findbuf(n)) 来检查缓冲区是否被隐藏。该缓冲区可能在另一个选项卡中的窗口中处于活动状态。 - orlp

4
您可以使用:ls命令查看所有缓冲区的列表。 带有“h”的缓冲区编号旁边表示已隐藏。'a'表示活动缓冲区。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接