在Vim中使用gtags
之前一直使用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配置
set cscopetag " 使用 cscope 作为 tags 命令 set cscopeprg='gtags-cscope' " 使用 gtags-cscope 代替 cscope "gtags.vim 设置项 let GtagsCscope_Auto_Load = 1 let CtagsCscope_Auto_Map = 1 let GtagsCscope_Quiet = 1
(即使添加这些,我的cscope和ctags还是照样可以使用)
5.打开代码,可以使用了,但是效果和emacs还是有点不一样:
1)在根目录中,可以查找某个函数,然后打开文件
root@seg01 postgresql-10.1]# global -x pg_parse_query pg_parse_query 596 src/backend/tcop/postgres.c pg_parse_query(const char *query_string)
2)打开文件
[root@seg01 postgresql-10.1]# vim src/backend/tcop/postgres.c
3)使用Gtags查找:Gtags pg_parse_query(这里会自动补全,使用tab键)
结果显示在quickfix中,多条结果可以用鼠标来点击,或者cn下一条,cp上一条来选择
6.其他几个使用说明
01.Gtags func:查看定义处 02.Gtags -r func:查看引用处 03.Gtags -s text:查看未被数据库定义的tags 04.copen:打开quick fix显示窗口 05.cclose:关闭quick fix显示窗口 06.cn:下一项 07.cp:上一项 08.cl:列出查询到的相关项 09.ccN:到列表中第N个符号处 10.Gtags -g pattern:搜索pattern指定的字符串 11.Gtags -gie -pattern:-e选项可以用于搜索’-‘字符,但是基础搜索,没有元字符,-i选项忽略大小写,类似于grep的选项 12.GtagsCuorsor:取决于光标位置,要是在定义处,查询其引用,要是在引用处,跳转至其定义处,否则就是Gtags -s命令 13.Gtags -P text:查询包含text的路径名,Gtags -P后接/dir/为列出叫做dir目录下文件,后接\.h$列出所有的include文件 14.Gtags -f file:列出file里的符号,Gtags -f %则列出当前文件的符号
7.在之前ctags+cscope中,查找定义和查找使用都很方便,但是有时候是找不到目标的···
有一种情况最不好找了,一个函数记得一部分名称,没法搜索到,但是用gtags后就好搜索了,会自动补全。
8.cscope中常用的几个命令:
cs find s : 查找符号,会显示列表出来
cs find g :查找定义
cs find c: 查找调用本函数的函数
cs find c: 查找本函数调用的函数
cs find t:查找本字符串
9.使用vimgrep也有局限性,只能查找具体的文件,不能自动查找所有的子目录。
配好之后感觉还是很爽的,这样查找起来方便很多。
相关文章
- Linux 中 VIM 的使用
- 在vim中设置将tab自动转化为4个空格
- Linux 使用vim命令编辑文件内容
- 忘记使用sudo导致vim编辑完文件无权限保存时的解决方法
- 教你用NeoBundle管理Vim插件
- 从源代码编译 Vim 8.0
- Vim 自动补全神器:YouCompleteMe
- 提高 Vim 和 Shell 效率的 9 个建议
- 整理了一周近万字讲解linux基础开发工具vim,gdb,gcc,yum等的使用
- Linux ubuntu下载vim
- Vim 中使用cscope
- 《Vim实用技巧(第2版)》——第2章 普通模式 2.1停顿时请移开画笔
- 【Linux】vim的使用详解-Linux编辑器
- 转 :Vim文件编码识别与乱码处理
- vim 使用笔记
- linux下vi与vim区别以及vim的使用-------vim编辑时脚本高光显示语法
- win7(64)使用vim碰到的奇怪问题
- VIM下的cscope使用方法(图文并茂&简易上手)
- 【Linux篇<Day03>】——vim编辑器的使用、挂载操作
- Vim命令相关
- Linux系统下不使用vi、vim、touch等方法来创建文件或追加内容
- vim column operate
- vim最简单的补全方式
- jupyter中使用熟悉的vim
- Vim简明教程【CoolShell】
- Vim查找替换及正则表达式的使用
- VIM使用技巧5
- VIM的修炼等级
- VIM使用技巧3
- VIM使用技巧2
- vim编辑shell
- [Linux] Vim 和 Tmux使用