#
首先,VI(M)是一种信仰。
然后扯一下关于MiniBufExplorer插件,主要的作用是实现缓冲区之间的切换,比BufExplorer更加小巧,界面如图所示,下载链接在这里
这个插件在windows下使用的问题主要是在切换的时候会切换到一个No Name的初始缓冲区,这样我本来打开了三个文件,却总在四个文件直接来回切换,同时默认的:bd删除缓冲区命令和:q关闭文件命令在windows下也存在一些问题,:bd不能关闭最后的窗口,:q又直接关闭几个缓冲区。
针对如上问题,做以下的改进
1 修改MiniBufExplorer插件的切换代码,切换时不停留在No Name缓冲区 2 在_vimrc文件中重新绑定关闭快捷键的代码,加入窗口数的判断
针对第一个问题,我们修改minibufexpl.vim里的如下代码
" Skip any non-modifiable buffers, but don't cycle forever
" This should stop us from stopping in any of the [Explorers]
while (getbufvar(l:curBuf, '&modifiable') == 0 || bufname('%')=='') && l:origBuf != l:curBuf
主要是bufname为空(初始缓冲区)的时候再跳转一次。
针对第二个问题,我们在_vimrc文件中重定义绑定和退出函数
" 如果只有一个窗口,那么直接退出
function! CustomExit()
if (winbufnr(2) == -1)
q
else
bd
endif
endfunction
nmap wq :w:call CustomExit()
nmap q :call CustomExit()
nmap w :w
nmap x :bd!:call CustomExit()
nnoremap :MBEbn
nnoremap :MBEbp
最后,为了windows下使用方便,可以配置一下右键,请在regedit中添加如下项,然后默认值设置为”E:\Vim im73\gvim.exe” -p –remote-silent “%1”,gvim路径请自行修改
这样就可以用右键菜单打开gvim,打开两个以上文件的时候,可以用shift l shift h切换左右菜单,q退出文件等等。