用于vim的Buffer Explorer

时间:2012-02-05 11:34:15

标签: vim

人们建议在vim中更容易操作缓冲区吗?

使用ls和b1,bn和bp命令很好,但也许有更好的方法。

强大的探险家是最好的选择吗?

我正在使用vim 7.3。

7 个答案:

答案 0 :(得分:25)

你应该测试所有这些,并根据你的口味和要求看哪一个是最好的。

我已经使用了LustyExplorer一段时间并且喜欢它,直到我尝试CtrlP找到更快更直观。我将:CtrlPBuffer映射到,b并且没有理由抱怨:它既优雅,快速又直观。

您不必依赖插件,但是::b <tab>允许您标记所有可用缓冲区的列表。您可以:b pattern<Tab>获取较小的列表。

答案 1 :(得分:8)

Unite.vim是一个新插件,是我从CtrlP切换到的。

如果你想探索它能做什么,

This是一个很好的起点。

答案 2 :(得分:5)

我使用minibufexpl.vim。我猜它的主要优点是它占用的空间很小。

答案 3 :(得分:4)

FuzzyFinder是缓冲区/文件导航的另一个出色的附加组件:

http://www.vim.org/scripts/script.php?script_id=1984

无论您选择哪种插件,都值得投入一些时间来找出它可以帮助您的所有方式。

答案 4 :(得分:3)

如果您使用ruby支持编译vim并且在系统上安装了dev工具链(make,gcc,也许是别的东西 - 像我这样的Gentoo用户已经拥有了所有这些),那么Command-T是好的选择。要将它用于切换缓冲区,您应该将某些内容映射到:CommandTBuffer,我有

nnoremap         ,b   :CommandTBuffer<CR>

答案 5 :(得分:2)

之前我使用过很多插件,包括minibufexpl和Bufexplorer,但是所有插件都曾经让我烦恼。

现在我使用年轻的插件Buffet,我会推荐它,因为它似乎对我来说真的是最好的:它非常快速且易于使用。

我个人想通过 Ctrl + Tab Shift + Ctrl + Tab 切换缓冲区,缓冲区应按最近使用的顺序排序。< / p>

这是我的自助餐配置,以实现&lt; C-Tab&gt; &lt; S-C-Tab&gt; 切换:

noremap <silent> <C-Tab> :Bufferlistsw<CR>
noremap <silent> <C-S-Tab> :Bufferlistsw<CR>kk
if !has('gui')
   map <S-q> :Bufferlistsw<CR>
endif

augroup BuffetAdd
   if !exists("g:BuffetAdded")
      let g:BuffetAdded = 1
      au BufWinEnter buflisttempbuffer* map <buffer> <Tab> <CR>
      au BufWinEnter buflisttempbuffer* map <buffer> <C-Tab>   j
      au BufWinEnter buflisttempbuffer* map <buffer> <C-S-Tab> k

      " in console Vim we can't use <C-Tab> mappings (almost always),
      " so this is temporary solution: <S-q>
      if !has('gui')
         au BufWinEnter buflisttempbuffer* map <buffer> <S-q> j
         au BufWinEnter buflisttempbuffer* map <buffer> q <CR>
      endif

      " workaround Surround plugin issue in Buffet's window:
      " disable "ds" mapping in the Buffet window (to make "d" work fast)
      au BufEnter buflisttempbuffer* nunmap ds
      au BufLeave buflisttempbuffer* nmap   ds <Plug>Dsurround

   endif
augroup END

只有一个问题:Vim不允许您映射某些键的 release ,因此,您需要再次按 Tab 才能真正切换到缓冲区。

无论如何,如果你不需要&lt; C-Tab&gt; 切换,那么在没有它的情况下,Buffet插件会很好用。

答案 6 :(得分:0)

2019年6月更新

BufExplorer是我明确的缓冲区管理首选。

" Buffer explorer
" ,be to open, q to close, d to delete buffer
Plug 'jlanzarotta/bufexplorer'

高度评价上述插件。简单有效。在readme中有更多详细信息。

如果您除了上述内容(可选)之外还需要一些“附加”,我也会使用:

" Close buffers but keep splits
Plug 'moll/vim-bbye'

和:

Plug '/usr/local/opt/fzf'
Plug 'junegunn/fzf.vim'
" this setting for quick search across buffers
nmap <silent> <leader>b :Buffers<cr>