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

Open a file in Vim without it showing in the buffer list

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

我经常主要处理几个文件,但需要访问更多文件才能快速浏览。以这种方式工作一段时间后,新文件的缓冲区索引非常高。导航到 :b 75 很不方便,而且 "feels" 也是错误的。为了缓解这种情况,我倾向于在不同的 tmux 窗格中打开 Vim 的另一个实例来打开我知道我只需要看一眼的文件,但感觉这应该是我可以用 Vim 解决的问题!

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

您的工具带中缺少的工具是 :b partialname<Tab>,它使您可以访问特定的缓冲区,而无需从一长串列表中进行选择或不必要地在数十个不相关的缓冲区中切换。

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

参见 :help :b:help wildmenu


以下是我的vimrc的相关部分:

" three options
set wildmenu
set wildignorecase
set wildmode=full

" one mapping
nnoremap ,b :buffer<Space>

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

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