2017-03-07 127 views
1

我的Vim工作流围绕着具有多个开放缓冲液,并用:ls<CR>:b $BUFFER_NUMBER:bp:bnb#的组合在它们之间切换。因此,我喜欢对缓冲区列表进行一些控制,所以往往会比较频繁地使用我没有使用的缓冲区:bd打开在Vim的一个文件没有它在缓冲区列表表示

我经常主要在几个文件上工作,但需要访问很多才能简要查看。以这种方式工作一段时间后,新文件最终会有非常高的缓冲区索引。导航到:b 75是相当不方便的,但也“感觉”错误。为了减轻这一点,我倾向于在另一个tmux窗格中打开另一个Vim实例来打开文件,我知道我只需要浏览一下,但感觉这应该是我可以用Vim解决的问题!

我知道不可能重置缓冲区索引,或重新编号当前缓冲区列表,但我想知道是否可以在缓冲区列表中显示没有显示的缓冲区。

回答

3

工具带中缺失的工具是:b partialname<Tab>,它允许您访问特定的缓冲区,而不必从长列表中选择或不必要地切换通过几十个不相关的缓冲区。

在下面的gifcast中,我有634个加载缓冲区($ vim *.jsnode_modules/lodash)。这可能有点极端,但我认为它清楚地表明,无论您有多少缓冲区,Vim中的缓冲切换操作都非常简单和轻松。没有任何插件。

btab

:help :b:help wildmenu


这里是我的vimrc的相关部分:

" three options 
set wildmenu 
set wildignorecase 
set wildmode=full 

" one mapping 
nnoremap ,b :buffer<Space> 

注:我的实际,b映射包括*但它是没有必要的;它只是为了与另一组映射保持一致。

+0

很好的建议,虽然这实际上已经在我的工具箱中。我发现的问题是,由于我工作的项目的结构,我经常有名称上非常相似的文件。例如:'something.controller','something.module'' something-else.controller'' something-else.module'。在这种情况下,试图匹配'... controller'或'something-else'将不允许我快速切换文件。 – leesio

+0

最糟糕的情况下,你可以选择5或6候选人之间。几个''你就完成了。 – romainl

1

据我所知,你问题的真正答案是否定的。所有缓冲区在首次打开时都会与缓冲区号关联。此缓冲区号码已消耗完毕,即使在使用:bwipeout完全删除缓冲区时也不可再次使用。

相关问题