按本文所述方法添加配置vim插件后,可在gvim中实现如下功能:
追踪对象定义 | CTRL+] |
跳回 | CTRL+T |
追踪对象调用 | CTRL+U |
在文件/工程中grep | F3 |
查看quickfix结果 | F6/F7 |
buffer间切换 | CTRL+TAB |
.c/.h对应文件打开 | F12 |
添加书签 | CTRL+F2 |
跳转至下一书签 | F2 |
代码补全 | TAB |
原型提示 | 左圆括号( |
代码折叠/展开 | ZA |
安装中文帮助手册
1.在 此处下载中文帮助的文件包
2.解压并执行文件夹中的脚本
./vimdoc.sh -i
ctags
1.使用命令
sudo apt-get install ctags #安装ctags
2.在工程目录下,使用命令
ctags -R
生成tags文件,该文件建立了工程中所有对象的索引关系
3.在gvim下使用命令
:set tags=[tags文件路径]
4.以后即可采用
- CTRL+]:跳转到定义
- CTRL+T:跳回
Tips:修改程序后, 比如增加了函数定义, 删除了变量定义, tags文件不能自动rebuild, 必须手动再运行一下命令
ctags -R
taglist
1.在 此处下载taglist包
2.解压后,将taglist.vim和taglist.txt分别放在~/.vim/plugin和~/.vim/doc下
3.在~/.vimrc中添加如下两行
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
4.在gvim下使用命令
:Tlist
5.随后使用中,用鼠标选中左侧对象名,按space键在gvim最下方显示定义,按enter键跳转到定义
winmanager
1.在 此处下载winmanager包
2.解压,将.vim和.txt分别放在~/.vim/plugin和~/.vim/doc下
3.在~/.vimrc中添加如下两行
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
Tips:第二行wm后面有一个空格,不要遗漏
4.之后使用中,在normal模式(即刚进入gvim时的模式)输入wm,可同时开启taglist和winmanager
cscope
1.使用命令
sudo apt-get install cscope #安装cscope
2.使用命令
cscope -Rbq #建立cscope映射文件
3.进入gvim,使用命令
:cs add [工程目录]/cscope.out [工程目录]
4.之后使用中,使用命令
:cs find c|d|e|f|g|i|s|t name
- g:查找本定义
- c:查找调用本函数的函数
- d:查找本函数调用的函数
5.使用命令
:cw
可打开quickfix窗口
6.在~/.vimrc文件中加如下三行
nmap <C-U> :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <F6> :cn<cr>
nmap <F7> :cp<cr>
将追踪对象调用快捷键映射为CTRL+U
将查看quickfix结果快捷键映射为F6/F7
MiniBufExplorer
1.在 此处下载插件,拷至~/.vim/plugin/下
2.在~/.vimrc中添加如下
let g:miniBufExplMapCTabSwitchBufs = 1
3.在此后使用中,当打开多个文件时会自动弹出MiniBufExplorer窗口,使用CTRL+TAB在各个buffer间切换
A
1.在 此处下载插件,拷至~/.vim/plugin/下
2.在~/.vimrc中添加一行
nnoremap <silent> <F12> :A<CR>
3.使用中,使用F12快速在新buffer打开对应.c/.h文件
grep
1.在 此处下载插件,拷至~/.vim/plugin/下
2.在~/.vimrc中添加一行
nnoremap <silent> <F3> :Grep<CR>
3.使用时使用F3在工程中查找光标处的对象名
visualmark
1.在 此处下载插件,拷至~/.vim/plugin/下
2.编辑~/.vim/plugin/visualmark.vim,找到包含"en_US"的一行,注释起来,并添加如下一行
exec ":lan POSIX"
3.修改高亮颜色,编辑~/.vim/plguin/visualmark.vim,找到如下几行修改颜色
if &bg == "dark" // 根据你的背景色风格来设置不同的书签颜色
highlight SignColor ctermfg=white ctermbg=blue guifg=wheat guibg=peru
else // 主要就是修改guibg的值来设置书签的颜色
highlight SignColor ctermbg=white ctermfg=blue guibg=grey guifg=RoyalBlue3
endif
4.使用时使用CTRL+F2在光标处添加书签,使用F2在书签间切换
自动补全
1.在~/.vimrc中添加如下两行
filetype plugin indent on
set completeopt=longest,menu
2.使用时,按下CTRL+X再按CTRL+O即可自动补全
supertab
1.在 此处下载插件
2.在~/.vimrc中添加如下几行
let g:SuperTabRetainCompletionType=2
let g:SuperTabDefaultCompletionType="<C-X><C-O>"
3.使用时直接用TAB键自动补全即可
代码折叠
1.在~/.vimrc中添加两行
set foldmethod=syntax
set foldlevel=100 " 启动vim时不要自动折叠代码
2.使用时,输入ZA可以在当前位置打开/关闭折叠
echofunc
1.在 此处下载插件
2.需要tag文件的支持,在创建tag文件时,需要加参数--fields=+lS,即整个命令如下
ctags -R --fields=+lS
3.使用时,在函数名后添加圆括号(时会在quickfix栏提示函数原型,另外,鼠标指向函数名时也会提示原型
配置完成后
1.进入工程目录2.使用命令
ctags -R --fields=+lS #生成ctags文件用于追踪对象定义
:set tags=[tags文件路径] #关联ctags文件
cscope -Rbq #生成cscope文件用于追踪对象引用
3.进入gvim(每次打开gvim时都要使用)
在normal模式下输入wm打开taglist和winmanager
使用命令
:cs add [工程目录]/cscope.out [工程目录] #关联cscope文件
:cw #打开quickfix窗口