之前一直使用vim+ctags+cscope来弄c的代码,最近看同事使用gtags,觉得在搜索方面要高级很多,网上大多都是emacs+gtags的资料,而vim的则比较少,这里搞通了之后,做个记录。
1.下载、安装 global
wget http://tamacom.com/global/global-6.6.2.tar.gz
tar xzvf global-6.6.2.tar.gz
cd global-6.6.2
./configure
make && make install
2.将生成的文件拷贝到.vim对应的目录
cp gtags-cscope.vim gtags.vim ~/.vim/plugin/
(我没有使用vbundle安装插件,因此直接拷贝到了plugin目录)
3.在代码的根目录中执行
cd ~/postgresql-10.1
gtags
会生成几个文件:GPATH GRTAGS GTAGS
4.在.vimrc中添加gtags配置
1 2 3 4 5 6 7 8 |
|
(即使添加这些,我的cscope和ctags还是照样可以使用)
5.打开代码,可以使用了,但是效果和emacs还是有点不一样:
1)在根目录中,可以查找某个函数,然后打开文件
1 2 |
|
2)打开文件
1 |
|
3)使用Gtags查找:Gtags pg_parse_query(这里会自动补全,使用tab键)
结果显示在quickfix中,多条结果可以用鼠标来点击,或者cn下一条,cp上一条来选择
6.其他几个使用说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
7.在之前ctags+cscope中,查找定义和查找使用都很方便,但是有时候是找不到目标的···
有一种情况最不好找了,一个函数记得一部分名称,没法搜索到,但是用gtags后就好搜索了,会自动补全。
8.cscope中常用的几个命令:
cs find s : 查找符号,会显示列表出来
cs find g :查找定义
cs find c: 查找调用本函数的函数
cs find c: 查找本函数调用的函数
cs find t:查找本字符串
9.使用vimgrep也有局限性,只能查找具体的文件,不能自动查找所有的子目录。
配好之后感觉还是很爽的,这样查找起来方便很多。
严以律己、宽以待人