在Vim中打开一个文件,但不显示在缓冲区列表中

在Vim中打开一个文件,但不显示在缓冲区列表中,vim,tmux,Vim,Tmux,我的Vim工作流程围绕着拥有多个打开的缓冲区,并通过组合:ls:b$BUFFER\u NUMBER,:bp,:bn和b在它们之间切换。因此,我喜欢对我的缓冲区列表进行一些控制,因此倾向于相对频繁地使用我不使用的:bd缓冲区 我经常主要处理一些文件,但需要访问更多文件才能进行简要查看。在以这种方式工作一段时间后,新文件最终会具有非常高的缓冲区索引。导航到:b75非常不方便,但也“感觉”不对。为了缓解这种情况,我倾向于在不同的tmux窗格中打开另一个Vim实例,以打开我知道我只需要浏览的文件,但感觉

我的Vim工作流程围绕着拥有多个打开的缓冲区,并通过组合
:ls:b$BUFFER\u NUMBER
:bp
:bn
b
在它们之间切换。因此,我喜欢对我的缓冲区列表进行一些控制,因此倾向于相对频繁地使用我不使用的
:bd
缓冲区

我经常主要处理一些文件,但需要访问更多文件才能进行简要查看。在以这种方式工作一段时间后,新文件最终会具有非常高的缓冲区索引。导航到
:b75
非常不方便,但也“感觉”不对。为了缓解这种情况,我倾向于在不同的tmux窗格中打开另一个Vim实例,以打开我知道我只需要浏览的文件,但感觉这应该是我可以用Vim解决的问题


我知道无法重置缓冲区索引或重新编号当前缓冲区列表,但我想知道是否可以打开缓冲区而不显示在缓冲区列表中。

工具带中缺少的工具是
:b partialname
,它允许您访问特定的缓冲区,而无需从长列表中进行选择,也无需在数十个不相关的缓冲区之间进行不必要的切换

在下面的gifcast中,我有634个加载的缓冲区(
node\u modules/lodash
中的
$vim*.js
)。这可能有点极端,但我认为这非常清楚地表明,在Vim中,无论有多少缓冲区,缓冲区切换都是多么容易和无痛。而且没有任何插件

请参见
:help:b
:help-wildmenu


以下是my
vimrc
的相关部分:

" three options
set wildmenu
set wildignorecase
set wildmode=full

" one mapping
nnoremap ,b :buffer<Space>
“三个选项
设置菜单
设置wildignorecase
设置wildmode=full
“一个映射
nnoremap,b:缓冲区

注意:我的实际
,b
映射包括a
*
,但这不是必需的;它只是为了与另一组映射保持一致。

据我所知,您问题的真正答案是否定的。所有缓冲区在第一次打开时都与缓冲区编号关联。即使使用
:bwipeout
完全删除缓冲区时,此缓冲区编号已被消耗,并且永远无法再次使用。

这是一个很好的建议,尽管这实际上已经在我的工具箱中。我发现的问题是,由于我所从事的项目的结构,我经常有名称非常相似的文件。例如:
something.controller
something.module
something.controller
something.module
。在这种情况下,尝试匹配
…controller
其他内容将不允许我快速切换文件。最糟糕的情况是,您需要在5个或6个候选项之间进行选择。几次
,你就完成了。