有什么建议可以更轻松地在vim中操作缓冲区?
使用ls和b1、bn和bp命令是不错的,但可能有更好的方法。
是lusty explorer最好的选择吗?
我正在使用vim 7.3。
有什么建议可以更轻松地在vim中操作缓冲区?
使用ls和b1、bn和bp命令是不错的,但可能有更好的方法。
是lusty explorer最好的选择吗?
我正在使用vim 7.3。
你应该测试它们并根据你的口味和要求确定最好的一个。
我已经用过LustyExplorer一段时间了,并且非常喜欢,直到我尝试了CtrlP,我认为后者更快、更直观。 我将:CtrlPBuffer
映射到,b
,并且没有任何抱怨的理由:它既优雅、快速又直观。
不过,您不必依赖插件::b <tab>
允许您通过所有可用缓冲区的列表进行选项卡浏览。 您可以使用:b pattern<Tab>
获取较小的列表。
:CtrlPBuffer
,因为我已经安装了CtrlP,但是CtrlP没有列出所有缓冲区...只有一个子集。有什么想法吗?反之,我想映射:buffer <Tab><Tab>
(到Ctrl-A),在.vimrc
中插入:nnoremap <C-A> :buffer <TAB><TAB>
,但我做错了一些事情,因为我没有达到预期的行为... - Giorgio Robino:b <tab>
非常简单,当您不断导航源代码并经常需要在前一个和当前文件之间切换,然后打开另一个等等时,您需要记住上一个缓冲区并让其轻松切换。 - stefanB,,
(可能实际上是 <leader>,
或 <leader><leader>
)。 - Jonathan HartleyFuzzyFinder是另一个用于缓冲区/文件导航的优秀插件:
http://www.vim.org/scripts/script.php?script_id=1984
无论你选择哪个插件,值得花些时间了解它能帮助你的所有方式。
:CommandTBuffer
,我就这样做了。nnoremap ,b :CommandTBuffer<CR>
我之前使用过许多插件,包括minibufexpl和Bufexplorer,但它们都有一些让我烦恼的问题。
现在我使用年轻的插件Buffet,我会推荐它,因为对我来说似乎是最好的:它非常快速和易于使用。
个人希望通过Ctrl+Tab和Shift+Ctrl+Tab切换我的缓冲区,并且缓冲区应按最近使用的顺序排序。
这是我的Buffet配置,以实现<C-Tab>和<S-C-Tab>切换:
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不允许你映射某些按键的释放操作,因此,你需要再次按下Tab才能真正切换到缓冲区。
无论如何,如果你不需要使用<C-Tab>来切换,Buffet插件在没有它的情况下也可以很好地工作。
has('gui')
检查vim是否编译支持gui,而不是你是否使用gui版本的vim。应该是has('gui_running')
。 - ZyXvim
而不是gvim
),那么has('gui')
也会返回0
。 - Dmitry Frankhas('gui')
将返回1,事实上我使用它进行测试(只需编译一次更简单)。 - ZyX2019年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>