vim 多个文件切换 :b 命令
快速浏览和操作Buffer -- 插件: MiniBufExplorer
下载地址 [http://www.vim.org/scripts/script.php?script_id=159]
版本 6.3.2
安装 将下载的 minibufexpl.vim文件丢到 \~/.vim/plugin 文件夹中即可
手册 在minibufexpl.vim 文件的头部
在编程的时候不可能永远只编辑一个文件, 你肯定会打开很多源文件进行编辑,
如果每个文件都打开一个vim进行编辑的话那操作起来将是多麻烦啊, 所以vim有bu
ffer(缓冲区)的概念, 可以看vim的帮助:
:help buffer
vim自带的buffer管理工具只有:ls, :bnext, :bdelete 等的命令, 既不好用,
又不直观. 现在隆重向你推荐一款vim插件(plugin): MiniBufExplorer
使用方法:
重新启动vim, 当你只编辑一个buffer的时候MiniBufExplorer派不上用场, 当
你打开第二个buffer的时候, MiniBufExplorer窗口就自动弹出来了, 见下图:
上面那个狭长的窗口就是MiniBufExplorer窗口, 其中列出了当前所有已经打开
的buffer, 当你把光标置于这个窗口时, 有下面几个快捷键可以用:
<Tab> 向前循环切换到每个buffer名上
<S-Tab> 向后循环切换到每个buffer名上
<Enter> 在打开光标所在的buffer
d 删除光标所在的buffer
在命令模式下:
:bn 打开当前buffer的下一个buffer
:bp 打开当前buffer的前一个buffer
:b"num" 打开指定的buffer,"num"指的是buffer开始的那个数字,比如上图,我想打开list_audit.erb,输入:b7就ok了
以下的两个功能需要在~/.vimrc中增加:
let g:miniBufExplMapCTabSwitchBufs = 1
<C-Tab> 向前循环切换到每个buffer上,并在但前窗口打开
<C-S-Tab> 向后循环切换到每个buffer上,并在但前窗口打开 注:MiniBufExplore默认是这两个快捷键,可是在ubuntu10.04中不能使用,原因可能是bash中已经定义了ctrl+tab快捷键所以我们可以更换此快捷键
在~/.vim/plugin/minibufexpl.vim中
找到
" noremap <C-TAB> :call <SID>CycleBuffer(1)<CR>:<BS> noremap <C-TAB> :call <SID>CycleBuffer(1)<CR>:<BS>
noremap <C-S-TAB> :call <SID>CycleBuffer(0)<CR>:<BS>
重新定义成自己的map即可
我的为
noremap <silent> <leader>n :call <SID>CycleBuffer(1)<CR>:<BS>
noremap <silent> <leader>N :call <SID>CycleBuffer(0)<CR>:<BS>
这样就可以用,n ,N 进行buffer切换(let mapleader = "," 我已在~/.vimrc中定义leader)
如果在~/.vimrc中设置了下面这句:
let g:miniBufExplMapWindowNavVim = 1
则可以用<C-h,j,k,l>切换到上下左右的窗口中去,就像:
C-w,h j k l 向"左,下,上,右"切换窗口.
在~/.vimrc中设置:
let g:miniBufExplMapWindowNavArrows = 1
是用<C-箭头键>切换到上下左右窗口中去
以下是MiniBufExplorer的几个命令:
:MiniBufExplorer " Open and/or goto Explorer
:CMiniBufExplorer " Close the Explorer if it's open
:UMiniBufExplorer " Update Explorer without naviting
:TMiniBufExplorer " Toggle the Explorer window open and closed
如果你用gvim的话,MiniBufExplorer会出现多个窗口的烦人问题,我一直没能很好地解决这个问题,一般都是用:CMiniBufExplorer命令把MiniBufExplorer窗口给close掉
如果你在.vimrc(windows底下的是_vimrc)中配置了mapleader,如我的
let mapleader = "," "Set mapleader
你就可以在normal模式下用,mbc代替 :CMiniBufExplorer命令
其他命令为:
:MiniBufExplorer ,mbe
:CMiniBufExplorer ,mbc
:UMiniBufExplorer ,mbu
:TMiniBufExplorer ,mbt
推荐大家一个安装vim插件的脚本,可以实现一个命令就把常用插件安装好,很方便:一个具有类似于IDE功能的容易安装的VIM
MiniBufExplorer现在是vim默认安装的插件了吧。
记住几个常用的命令(从SO上学来的):
- :e <filename> 打开文件
- :ls 当前打开的buf
- :bn 下一个buf
- :bp 前一个buf
- :b<n> n是数字,第n个buf
- :b<tab> 自动补齐
- :bd 删除buf