题
我已经试过了 MiniBufExplorer, 但我通常结束了与几个窗口,表示它或其关闭。我想是喜欢的东西 LustyJuggler 与渐进式搜索,我开关之间的缓冲区Emacs。肯定有一个脚本,这样吗?
解决方案
我一直用维森特Colaiuta的命令-T VIM插件现在几个月。维森特写道:它需要在C快的部分,我必须说,这是!而且,我觉得它的文件模式匹配的逻辑比TextMate的命令-T,甚至更好。查看截屏。
命令-T插件用于VIM提供 一个非常快速的,直观的机制 用最小的打开文件 按键的数量。它的命名 “命令-T”,因为它是由灵感 “转到文件”窗口必然 命令-T中的TextMate。
文件被通过输入选择 出现在他们的路径特点, 并通过算法订购了 知道字符出现在 某些位置(例如, 后立即路径分隔符) 应给予更多的权重。
更容易缓冲器切换包含许多有用的技巧。我已经适应了以下我的.vimrc,这确实缓冲名自动完成,最有用的缓冲切换命令映射到我的<领导>和左侧家行键,并显示在状态行当前缓冲区号:
"" Tab triggers buffer-name auto-completion
set wildchar=<Tab> wildmenu wildmode=full
let mapleader = ","
map <Leader>t :CommandT<Return>
map <Leader>a :bprev<Return>
map <Leader>s :bnext<Return>
map <Leader>d :bd<Return>
map <Leader>f :b
"" Show the buffer number in the status line.
set laststatus=2 statusline=%02n:%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P
我也使用 MiniBufExplorer ,该提供的每一个紧凑的列表在其自身的水平分裂顶部列出缓冲器。
其他提示
我用一个组合的标签和多gvim情况下,保持团体的有关文件的标签,在每个实例。所以只要我没有太多的标签,在一个实例,签栏显示了你的每个文件的名称正在编辑一目了然。
然后我读后通过Jamis降压在他怎么交换 从注意回到vim, ,并了解到一些大的技巧:
- Ctrl-w s和Ctrl-v至w分割的前窗口
- Ctrl-6关之间来回两个缓冲区,在相同的窗口。
- 真棒 fuzzyfinder.vim 这给你autocompleting搜索的文件在您目前的目录或缓冲区当前打开
- Jamis自己 fuzzy_file_finder 和 fuzzyfinder_textmate, ,这稍微修改fuzzyfinder工作表现得更像一个类似的功能在件(尽我可以告诉,不同的是,它与任何地方的文件,而不是仅仅从一开始)。看 这个视频 看到它在行动。
现在我只有一个gvim实例中,最大化,并把它分成多个窗口所以我可以看到几个文件在一次。我能Ctrl-F fuzzyfinder_textmate,所以现在如果我的类型(说)Ctrl-F mod/usob
它开辟应用程序/型号/user_observer.rb。我几乎从来没有打扰带有标签的任何更多。
更新2010/08/07
同时fuzzyfinder_textmate仍然是真棒,因为凯西指出的评论,它不再保留。此外,它(和/或fuzzyfinder.vim)获得有点慢和不稳定的工作时,与大型项目(大量的目录或文件),所以我一直在寻找一种替代方法。
幸运的是,似乎有一个非常好的替代形式 Wincent Colaiuta's 命令-T插件.这具有非常相似(如果不是稍微好一)的行为fuzzyfinder_textmate,但是明显的速度更快;它也有不错的功能等能够打开所找到的文件在分裂或垂直分割。谢谢(和"顶"!) 大卫的河流向。
我使用的基本知识 - ':ls
' + ':bn
'/ ':bp
' + ':b <part-of-name>
'
我喜欢 “CTRL-W s” 和 “CTLR-W V” 分裂窗口。然后我映射移动键(H,J,K,L)按住CTRL到分割窗口之间移动:
" Map ctrl-movement keys to window switching
map <C-k> <C-w><Up>
map <C-j> <C-w><Down>
map <C-l> <C-w><Right>
map <C-h> <C-w><Left>
有超过移动我的手箭头键是恼人的。
接下来,我建立CTLR标签在当前窗口缓冲器之间切换(像很多其他环境的):
" Switch to alternate file
map <C-Tab> :bnext<cr>
map <C-S-Tab> :bprevious<cr>
这些在过去几年的工作很适合我,虽然VIM总是有更多的秘密比你可以知道了。
nmap <Leader>bb :ls<CR>:buffer<Space>
和没有人提到好的插件 ctrlp.vim 。使用这个插件,你可以按名称搜索缓冲区。
我用
CTRL - Ĵ为下一个缓冲
CTRL - ķ为前一缓冲器
CTRL - →为下一个标签
CTRL - ħ为前一个标签
下面是.vimrc
配置:
map <C-J> :bnext<CR>
map <C-K> :bprev<CR>
map <C-L> :tabn<CR>
map <C-H> :tabp<CR>
imap <A-1> <Esc>:tabn 1<CR>i
imap <A-2> <Esc>:tabn 2<CR>i
imap <A-3> <Esc>:tabn 3<CR>i
imap <A-4> <Esc>:tabn 4<CR>i
imap <A-5> <Esc>:tabn 5<CR>i
imap <A-6> <Esc>:tabn 6<CR>i
imap <A-7> <Esc>:tabn 7<CR>i
imap <A-8> <Esc>:tabn 8<CR>i
imap <A-9> <Esc>:tabn 9<CR>i
map <A-1> :tabn 1<CR>
map <A-2> :tabn 2<CR>
map <A-3> :tabn 3<CR>
map <A-4> :tabn 4<CR>
map <A-5> :tabn 5<CR>
map <A-6> :tabn 6<CR>
map <A-7> :tabn 7<CR>
map <A-8> :tabn 8<CR>
map <A-9> :tabn 9<CR>
我最近去更简约。
到周期的缓冲我使用 ]b 和 [b 从损害的: https://github.com/tpope/vim-unimpaired
直接跳到一个开放的缓冲,只是使用Vim的标签完成 :b.几个字母是足够的,得到的任何开放缓冲区有一个选项或两个。
类似于开放缓冲我使用 e 与相对路径和标签的完成。
我也使用 :ls 偶尔看看有什么缓冲器,我们开的(并检查他们的改性状态)。
要摆脱的一个缓冲我使用 :bw 来擦拭的缓冲区。我通常做一个临时的分裂和变化的缓冲区,以保护我的布局,虽然因为 :bw 还关闭活动的窗口。
所有minibuf的事情,我只是试图结束讨厌我,我不想一些聪明的匹配的东西随机打开文件对我来说。如果我真的需要浏览一些我用的工程浏览窗口(e.).
。最近我还下降了Yankring(因为它砸了 xp)和寄存器开始使用,并且最近,我决定的 f/t 运动是最伟大的事情永远...
在优良缓冲器资源管理器时,则BE已经得到为这种强烈的肌肉记忆,我发现我希望我可以在其他应用程序中使用它。我觉得这是非常快的时候积极编辑两个以上的文件。
我花了很长一段时间我建立的.vimrc这个HTML工作::梅森项目,我已经上了四年,所以我有标签和分割窗口的一个奇怪的组合。为你的视觉享受:
map ;o :Sex <CR>
map <C-J> <C-W>j
map <C-K> <C-W>k
map <C-l> <C-W>l
map <C-h> <C-W>h
map ;] :tabnext<CR>
map ;[ :tabprev<CR>
map <C-t> :tabe +"browse ."<CR>
map <C-O> :NERDTreeToggle ~/curr/trunk/<CR>
我使用 tselectbuffer 。这真是快,不像bufexplorer没有考虑空间,在你的窗口。它也有一个增量search.I试图minibufexplorer,我发现在导航缓冲有点困难。
要缓冲器之间列出和开关使用:
nnoremap <Leader>l :ls<CR>:b<space>
要缓冲器之间切换:
map <Leader>n :bn<CR>
map <Leader>p :bp<CR>
我制订<S-J>
和<S-K>
到:bp
和:bn
,虽然我承认我不使用它作为文件的数量比10。然后我制订<C-J>
和<C-K>
到Gnome终端的前面和后面的标签时,我通常运行VIM的4个实例每个我工作在4个不同的项目。我还是真的希望下一个和以前的缓冲区会去我一直在努力缓冲区的历史,而不是为了诠释他的缓存列表。
我用tselectbuffer。这真是快,不像bufexplorer没有考虑空间,在你的窗口。它也有一个增量search.I试图minibufexplorer,我发现在导航缓冲有点困难。
我使用简单:VSPLIT与^ W + W / ^ W + r和:用执行tabnew Ctrl + Alt + PgUp键/ PgDown键键组合
当有在Vim会话开放几个缓冲区,它可以成为难以跟踪缓冲器和它们各自的缓冲区号的。如果是这样的情况下,切换到不同的文件,可以使用一个简单的地图变得更容易:
模式:nnoremap(F5):缓冲器(CR):缓冲液(空间)