安装winmanager 插件
.vimrc 配置
" 设置winmanager
let g:NERDTree_title="[NERDTree]"
"let g:winManagerWindowLayout="NERDTree|TagList"
let g:winManagerWindowLayout='NERDTree|TagList,BufExplorer'
"let g:winManagerWindowLayout = "FileExplorer|TagList"
function! NERDTree_Start()
exec 'NERDTree'
endfunction
function! NERDTree_IsValid()
return 1
endfunction
"nmap wm :WMToggle<CR>
" 设置界面分割
"设置winmanager的宽度,默认为25
let g:winManagerWidth = 25
"定义打开关闭winmanager快捷键为F10
"nmap <silent> <F10> :WMToggle<cr><Leader>q
nmap <silent> <F10> :WMToggle<cr>
"在进入vim时自动打开winmanager
let g:AutoOpenWinManager = 1
"自动退出Winmanager
"autocmd bufenter * if (winnr("$") == 2 && exists("b:NERDTreeType") &&b:NERDTreeType == "primary") | qa | endif
在.vim/plugin/winmanager.vim中添加,别加在函数里,建议在最后添加
"set auto open Winmanager
if g:AutoOpenWinManager
autocmd VimEnter * nested call s:StartWindowsManager()|3wincmd w|q
"autocmd VimEnter * nested call s:StartWindowsManager()|1wincmd w
endif
以上|swincmd w|q 目的是切换到空白buf并q掉。要修改以下代码才能解决bug
修改:
打开winmanager.vim,找到函数function! <SID>ToggleWindowsManager(),加入两行,修改后整个函数如下:
" toggle showing the explorer plugins.
function! <SID>ToggleWindowsManager()
if IsWinManagerVisible()
call s:CloseWindowsManager()
else
call s:StartWindowsManager()
"NERD_tree need this. 打开时会有一个空白窗口,要把他关闭
exe '3wincmd w'
exe 'q'
end
endfunction
参考以下:
https://www.cnblogs.com/ifys/archive/2010/10/24/1860610.html
发现每次打开winmanager都会出现一个空白的buffer。试验了好多次,但是Nerd_tree调用的函数就是会打开一个新窗口。因为如此,将bufExplorer和NERD_Tree放在一起会显示不正常。NERD_Tree放在下面的窗口也会出错,实在比较郁闷。。。。看了下NERD_Tree的代码,没看懂,只好再次改winmanager的代码了。
打开winmanager.vim,找到函数function! <SID>ToggleWindowsManager(),加入两行,修改后整个函数如下:
" toggle showing the explorer plugins.
function! <SID>ToggleWindowsManager()
if IsWinManagerVisible()
call s:CloseWindowsManager()
else
call s:StartWindowsManager()
" NERD_tree need this. 打开时会有一个空白窗口,要把他关闭。
exe '1wincmd w'
exe 'q'
end
endfunction
解决Vim使用Winmanager插件时自动启动与自动退出方法
https://blog.csdn.net/xuanwu_yan/article/details/43736299
解决Vim使用Winmanager插件时自动启动与自动退出方法
相信大家对Vim的感情是又爱又恨,爱他的无比强大,但想要真正使用他进行开发确又得花费大量时间习惯他的操作,但同时他又有很多的不足。对熟悉Visual Studio的人来讲(我)很是不爽。安装插件就是解决方案。
背景
按照两个前人的博客安装插件,分别为:
http://www.kuqin.com/shuoit/20140814/341684.html
http://blog.csdn.net/bokee/article/details/6633193
第一个是使用pathogen进行插件管理,但是装完Nerdtree和Tagbar之后发现好难看,大概是这样
没办法,只有按照第二个链接继续安装一个叫做Winmanager的插件,但是不能够自动启动,百度一下,于是有了以下解决方法:
一、自动打开
参照[3],我们可以在~/.vimrc中设置:
let g:AutoOpenWinManager = 1
- 1
同时,修改~/.vim/plugin/winmanager.vim文件,加入
"set auto open Winmanager
if g:AutoOpenWinManager
autocmd VimEnter * nested call s:StartWindowsManager()|'q'|4wincmd w
endif
我给大家解释一下,’q’解决出现空白窗口现象,后面4wincmd w
表示模拟4次w按键使光标自动跳转到打开的文件,而不是Nerdtree或者Tagbar窗口。OK,现在打开一个文件之后直接长这样:
但是退出此文件时,需要使用:qa命令,如何做到自动退出Winmanager呢?
二、自动退出
这个是一个比较近似的做法,和[3]不同的是我修改了自动退出Nerdtree的语句。判断当前窗口包含几个子窗口,如果有2个的话自动退出。在~/.vimrc中加入
"自动退出Winmanager
autocmd bufenter * if (winnr("$") == 2 && exists("b:NERDTreeType") &&b:NERDTreeType == "primary") | qa | endif
至此结束。
[1] http://www.kuqin.com/shuoit/20140814/341684.html
[2] http://blog.csdn.net/bokee/article/details/6633193
[3] http://www.cnblogs.com/ifys/archive/2010/10/24/1860610.html
https://blog.csdn.net/xuanwu_yan/article/details/43736299