人们建议在vim中更容易操作缓冲区吗?
使用ls和b1,bn和bp命令很好,但也许有更好的方法。
强大的探险家是最好的选择吗?
我正在使用vim 7.3。
答案 0 :(得分:25)
你应该测试所有这些,并根据你的口味和要求看哪一个是最好的。
我已经使用了LustyExplorer一段时间并且喜欢它,直到我尝试CtrlP我找到更快更直观。我将:CtrlPBuffer
映射到,b
并且没有理由抱怨:它既优雅,快速又直观。
您不必依赖插件,但是::b <tab>
允许您标记所有可用缓冲区的列表。您可以:b pattern<Tab>
获取较小的列表。
答案 1 :(得分:8)
答案 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>