Ale*_*nov 92 vim buffer editor
我已经尝试过MiniBufExplorer,但我通常会在几个窗口显示它或完全关闭它.我喜欢的是像LustyJuggler这样的增量搜索,我在Emacs中的缓冲区之间切换的方式.肯定有这样的剧本?
Sam*_*kes 73
我过去常常使用制表符和多个gvim实例的组合,在每个实例中将相关文件组保留为制表符.只要我在一个实例中没有结束太多选项卡,标签栏就会一目了然地显示您正在编辑的每个文件的名称.
然后我读了Jamis Buck关于他如何从TextMate切换回vim的帖子,并学到了一些很棒的技巧:
现在我只有一个gvim实例,最大化,并将其拆分为多个窗口,这样我就可以同时看到几个文件.我将Ctrl-F绑定到fuzzyfinder_textmate,所以现在如果我输入(比方说)Ctrl-F,mod/usob它会打开app/models/user_observer.rb.我几乎从不打扰任何标签.
更新2010/08/07
虽然如同Casey在评论中指出的那样,fuzzyfinder_textmate仍然很棒,但它已不再保留.此外,它(和/或fuzzyfinder.vim)在处理大型项目(大量目录或文件)时变得有点慢和不稳定,所以我一直在寻找替代方案.
幸运的是,Wincent Colaiuta的Command-T插件似乎有一个非常好的选择.这与fuzzyfinder_textmate的行为非常相似(如果不是稍微好一些),但明显更快; 它还具有很好的功能,如能够在拆分或垂直拆分中打开找到的文件.谢谢(并赞成!)David Rivers指出它.
ori*_*rip 33
我用基础知识 - ' :ls'+' :bn'/' :bp'+' :b <part-of-name>'
Dav*_*Ray 31
我喜欢"ctrl-w s"和"ctlr-w v"来拆分窗口.然后我按住ctrl来映射移动键(h,j,k,l)以在分割窗口之间移动:
" 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>
Run Code Online (Sandbox Code Playgroud)
不得不把手移到箭头键上很烦人.
接下来,我设置了ctlr-tab以在当前窗口中的缓冲区之间切换(像许多其他环境一样):
" Switch to alternate file
map <C-Tab> :bnext<cr>
map <C-S-Tab> :bprevious<cr>
Run Code Online (Sandbox Code Playgroud)
在过去的几年里,这些对我来说效果很好,尽管vim总是比你知道的更多秘密.
Dav*_*ers 23
我几个月来一直在使用Wincent Colaiuta的Command-T vim插件.Wincent在C中编写了需要快速的部分,我必须说它是!而且,我认为它的文件模式匹配逻辑甚至比Textmate的Command-T更好.看看截屏视频.
VIM的Command-T插件提供了一种非常快速,直观的机制,可以用最少的击键次数打开文件.它被命名为"Command-T",因为它的灵感来自绑定到TextMate中Command-T的"Go to File"窗口.
通过键入出现在其路径中的字符来选择文件,并通过算法排序,该算法知道在某些位置出现的字符(例如,紧跟在路径分隔符之后)应该被赋予更多权重.
更容易的缓冲切换包含许多有用的提示.我已经将以下内容改编为我的.vimrc,它执行缓冲区名称自动完成,将最有用的缓冲区切换命令映射到我的<Leader>和左侧主行键,并在状态行中显示当前缓冲区编号:
"" 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
Run Code Online (Sandbox Code Playgroud)
我还使用MiniBufExplorer,它在自己的水平分割顶部提供了每个列出的缓冲区的紧凑列表.
KOl*_*egA 18
nmap <Leader>bb :ls<CR>:buffer<Space>
Run Code Online (Sandbox Code Playgroud)
没人提到好的插件ctrlp.vim.使用此插件,您可以按名称搜索缓冲区.
Oli*_*nde 14
我用
CTRL- J用于下一个缓冲区
CTRL- K用于以前的缓冲区
CTRL- L下一个标签
CTRL- H用于上一个标签
这是.vimrc配置:
map <C-J> :bnext<CR>
map <C-K> :bprev<CR>
map <C-L> :tabn<CR>
map <C-H> :tabp<CR>
Run Code Online (Sandbox Code Playgroud)
见http://syskall.com/my-biggest-vim-productivity-boost/
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>
Run Code Online (Sandbox Code Playgroud)
我最近变得更加简约.
循环我使用]b和[b未受损的缓冲区:https://github.com/tpope/vim-unimpaired
要直接跳到打开的缓冲区,只需使用Vim的选项卡完成:b.一些字母足以通过一个或两个选项卡到达任何打开的缓冲区.
与开放缓冲区类似,我使用:e相对路径和制表符完成.
我:ls偶尔也会使用看看我打开的缓冲区(以及检查它们的修改状态).
为了摆脱我:bw用来擦除缓冲区的缓冲区.我通常会进行临时拆分并更改缓冲区以保留我的布局,因为它:bw也会关闭活动窗口.
我试过的所有迷你小东西最终都让我讨厌,而且我不想要一些智能匹配的东西为我打开随机文件.如果我真的需要浏览一些东西我使用NERDtree(:e .).
IDK,最近我也放弃了Yankring(因为它搞砸了xp)并开始使用寄存器,我最近决定f/ t动作是有史以来最伟大的事情......