vim使用winmanager整合nerd tree和taglist
winmanager插件安装
• 插件简介
winmanager is a plugin which implements a classical windows type IDE in Vim-6.0. Basically, you have the directory tree and the buffer list as 2 windows which stay on the left and the editing is done in a seperate area on the left. People have already made excellent File and Buffer explorers seperately and I thought that it might be a cool idea to combine them both. winmanager.vim combines the standard File Explorer which ships with Vim6.0 and a Buffer Explorer written by Jeff Lanzarotta into one package. It has the following features:
winmanager是一款在Vim-6.0中实现经典窗形IDE的插件。总的来说,用户可以在Vim编辑器左边拥有目录树和缓冲列表,同时在右边拥有一块独立的区域来完成编辑。已经有人单独编写出优秀的文件浏览器和缓冲浏览器插件,因此我认为结合二者将是一个很不错的想法。winmanager.vim包含了一个基于Vim6.0的标准文件浏览器和一个由Jeff Lanzarotta编写的缓冲浏览器。它拥有以下特性:
1. the buffer listing is dynamic: i.e as you keep changing windows, editing new files, etc, the buffer list changes dynamically. the window also resizes dynamically, i.e it tries to occupy the minimum possible space to display all the currently listed windows. also, only the filename (i.e without path) is displayed in this window. however, the full path name is echoed on the command line as one moves around.
1. 缓冲列表是动态的:譬如你一直在进行改变窗口、编辑新文件等诸如此类的操作,缓冲列表将动态随之改变。窗口大小也会动态进行调整,譬如它将尝试占用尽可能小的空间来显示当前窗口条目。因此,只有文件名才会在该窗口显示。当一个文件移动时,全路径名将在命令行处显示。
2. the file explorer window doesn't actually edit a directory. It's a new empty file with modifiable off, etc. so that it doesnt eat up buffer numbers as you roam around the directory tree. I found the original behaviour slightly annoying... Also, I didnt find a way to change drives i.e go from c:/ to h:/ in the original explorer.vim. therefore i have added a tiny new mapping 'C' which changes the currently displayed directory to pwd.
• 安装方法
▶ 下载winmanager,下载地址:http://www.vim.org/scripts/script.php?script_id=95;
▶ 存放路径,在Windows系统下路径为:vim安装路径\vimXX\,在Linux系统下安装路径为:/usr/share/vim/vimXX/;
▶ 将下载的解压包解压,将包中的doc、plugin目录覆盖到存放路径下。
• .vimrc文件配置
winmanager的配置:
" winmanager配置 let g:NERDTree_title='NERD Tree' let g:winManagerWindowLayout='NERDTree|TagList' function! NERDTree_Start() exec 'NERDTree' endfunction function! NERDTree_IsValid() return 1 endfunction
" 绑定F2到winmanager
nmap <silent> <F2> :WMToggle<CR>
taglist相关配置的修改:
" 绑定F8快捷键 " 使用winmanager时,不使用快捷键 " nnoremap <silent> <F8> :TlistToggle<CR> " 启动Vim后,自动打开taglist窗口。 " 使用winmanager时,将自动打开窗口关闭 let Tlist_Auto_Open = 0
NERD tree相关配置的修改:
" 绑定F2到NERDTreeToggle
" 使用winmanager时,不使用快捷键
" map <F2> :NERDTreeToggle<CR>
另外,在windows下使用时,打开winmanager时会出现一个空buff,如果想在打开时候自动关闭这个buff,这里有两种方法:
▶ 修改开关快捷键
" 绑定F2到winmanager nmap <silent> <F2> :if IsWinManagerVisible() <BAR> WMToggle<CR> <BAR> else <BAR> WMToggle<CR>:q<CR> endif <CR>
▶ 修改winmanager.vim
" toggle showing the explorer plugins. function! <SID>ToggleWindowsManager() if IsWinManagerVisible() call s:CloseWindowsManager() else call s:StartWindowsManager() " 增加启动时候关闭空buff代码 exe 'q' end endfunction
修改完毕,按下F2都可以方便地开关winmanager了: