1、tagglist
http://vim.wendal.net/scripts/script.php?script_id=273下载,目前版本4.6,下载后解压
.vim文件(脚本文件,可用vim自行编辑)拷贝至~/.vim/plugin下
.txt文件(帮助文件)拷贝至~/.vim/doc下
打开vim后普通模式下:TlistToggle即可看到效果
编辑下~/.vimrc使之更容易使用:
"插件相关:taglist
let Tlist_Show_One_File=1 "设置Tlist对象仅为当前文件
let Tlist_Exit_OnlyWindow=1 "设置窗口关闭,当Tlist为仅存窗口时
let Tlist_Show_Menu=1 "区别显示菜单
set updatetime=1500 "设置Tlist刷新时间
map<silent><leader>ll :TlistToggle<cr> "设置无回显快捷命令",ll":显示taglist
上文中<leader>需自己配置,下同
还有许多选项,可以参考:h taglist中关于vimrc配置选项
2、winmanager
http://vim.wendal.net/scripts/script.php?script_id=95下载,目前版本2.3,作者停止更新,有人后续接手,增加了些功能,但害怕不稳定,所以没采用
安装方法基本同上,不累述
普通模式下:WMToggle即可
同样在~/.vimrc中增加习惯自己到配置
"插件相关:winmanager3.2
let g:winManagerWidth=30 "宽度
let g:persistentBehaviour=0 "设置窗口关闭:窗口数为1时退出vim
let g:winManagerWindowLayout='FileExplorer|TagList|minibufexpl' "设置窗口:','同一窗口,'|'额外窗口
map<silent><leader>ww :WMToggle<cr> "设置无回显快捷命令",ww":显示WMToggle
3、由于每次编译均需更改vimrc,网上由种vimrc在保存后自我加载方法,在此与大家分享下
map<silent><leader>ss :source ~/.vimrc<cr> "设置无回显快捷命令",ss":重载vimrc
map<silent><leader>ee :e ~/.vimrc<cr> "设置无回显快捷命令",ee":编辑vimrc
autocmd! bufwritepost .vimrc source ~/.vimrc "自动重载.vimrc
4、BufExplorer
http://vim.wendal.net/scripts/script.php?script_id=42下载,目前版本7.3.6,但似乎存在问题,建议下载老版本,本人下的是7.2.8
如上安装后,增加部分自定义配置
"插件相关:BufExplorer
let g:bufExplorerDefaultHelp=0 "显示帮助
let g:bufExplorerFindActive=0 "激活窗口
let g:bufExplorerSplitRight=1 "设置位置
5、MiniBufExpl
http://vim.wendal.net/scripts/script.php?script_id=159下载
自定义配置部分
"插件相关:minibufexpl
let g:miniBufExplMapWindowNavVim=1 "设置快捷移动:ctrl+hjkl快捷移动
let g:miniBufExplMapWindowNavArrows=1 "设置快捷移动:ctrl+方向键快捷移动
let g:miniBufExplorerMoreThanOne=1 "窗口数为1时设置minibuf启动
let g:miniBufExplForceSyntaxEnable=0 "防止语法高亮消失
let g:miniBufExplModSelTarget=1 "防止插件窗口被buf窗口抢占
吐槽下,这个插件虽然直观,但并不大好用,容易引起多窗口,minibuf窗口超出maxsize,buf跳跃到别的插件窗口等问题,比较纠结,有人知道怎么屏蔽这些错误,请不吝指教
6、cscope
目前该插件算是标准插件,一般不用自己安装,所有就贴下配置
"插件相关:ctags & cscope
set autochdir "自动跳转至当前目录
set tags=tags; "设置ctags对象目录为当前目录
if has("cscope") "逻辑:自动添加cscope.out
set csprg=/usr/bin/cscope "指定cscope命令
set cst "设置:tag行为为:cstag:默认nocst
set csto=0 "设置:cstag查找顺序,优先:cscope
set nocsverb "暂时屏蔽无cscope.out错误
set cscopequickfix=s-,c-,d-,i-,t-,e-
"设置cscope匹配quickfix,'-'清空原结果
let cscope=findfile("cscope.out", ".;")
if !empty(cscope) && filereadable(cscope)
let cscope_pre=getcwd()
let cscope_file=printf("%s/%s", cscope_pre, cscope)
exe "cs add" cscope_file cscope_pre
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
set csverb "设置cscope数据库错误提示
endif
快捷键按照个人喜好再做设置:
map<silent><leader>ffs :cs find s <C-R>=expand("<cword>")<CR><CR>
map<silent><leader>ffg :cs find g <C-R>=expand("<cword>")<CR><CR>
map<silent><leader>ffc :cs find c <C-R>=expand("<cword>")<CR><CR>
map<silent><leader>fft :cs find t <C-R>=expand("<cword>")<CR><CR>
map<silent><leader>ffe :cs find e <C-R>=expand("<cword>")<CR><CR>
map<silent><leader>fff :cs find f <C-R>=expand("<cfile>")<CR><CR>
map<silent><leader>ffi :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
map<silent><leader>ffd :cs find d <C-R>=expand("<cword>")<CR><CR>
对于其中到模式i,d还有些疑惑,望有人解惑
7、a.vim
切换声明定义文件,功能简单易用,贴下配置
"插件相关:a.vim
map<silent><leader>aa :A<cr>
map<silent><leader>ii :IH<cr>
8、quickfix
map<silent><leader>cn :cn<cr>
map<silent><leader>cp :cp<cr>
map<silent><leader>cl :ccl<cr>
map<silent><leader>cw :cw 10<cr>
"跳转next/pre;打开/关闭quickfix窗口
9、grep
let Grep_OpenQuickfixWindow=1
let Grep_Default_Filelist='*.c *.cpp *.h'
"quickfix自动弹出,grep默认查找文件
map<F3>n :Grep<cr>
grep到快捷键可以多样化,使用正则表达式来匹配相应字符串
10、showmarks
书签插件,http://vim.wendal.net/scripts/script.php?script_id=152下载,版本是2.2,存在bug,网上有相应到修复补丁
用来做文件间跳转以及代码段标识还是很方便到
"插件相关:showemarks
"<leader>命令:mt(开启/关闭),mh(删除当前行),ma(删除当前文件),mm(标记当前行)
"显示所有字母标记位,g'进行不同buf间mark跳转
let g:showmarks_include="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
let showmarks_hlline_lower=1
let showmarks_hlline_upper=1
可以做个F2到map映射,用来当前buf上切换