如何结合vim使用ctags 查找变量或者函数被“调用”的位置??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何结合vim使用ctags 查找变量或者函数被“调用”的位置??相关的知识,希望对你有一定的参考价值。

ctags可以查看函数或者是变量被 调用 的位置吧???
额~~查看 定义 位置的方法我会了,现在是查看 被调用 的位置!

参考技术A tags内不包含调用点,只包含函数定义的位置信息,所以不能查找所有调用。
这个在linux下使用shell命令:
grep -Pn 'helloword\s*\(' **/*.cpp
参考技术B 查看被调用的位置,就需要使用cscope了 参考技术C 不能吧。只能在出现函数名或者变量名的时候反查它的定义。

一般观察函数的调用关系,或者监视变量的更改,都是在调试的时候进行的。这样的动态观察比静态观察更有意义。静态观察即是指代码级的分析,再牛X的编辑器也不可能分析出代码的运行时调用情况。
比如使用 gdb 里的 watch 监视变量,用 break + bt 观察函数的调用栈。如果只想知道函数的调用关系,也可以用 gprof 类似的软件生成函数调用表。

vim插件ctags的安装与使用

LINUX系统下看程序或者编程序时,看到一个函数经常需要知道该函数的定义,这时ctags就派上用场了,其安装和使用方法如下:

安装方法:

sudo apt-get install ctags (ubuntu)

(RedHat系列使用:yum install ctags)

若不成功,可能是因为源的问题,换一下软件源update后重新执行上述命令即可。

使用方法:

1.生成标签文件
在当前目录下(运行$提示符后面的命令):
$ctags -R .
-R表示recursive,递归,为当前目录及其子目录中的c文件生成标签文件。最后一个.表示在当前目录。
运行完当前目录会多一个文件tags,就是c标签的索引文件。

2.跳转
1)用vim打开一个已经建过标签的c文件
2)ctrl+] 找到光标所在位置的标签定义的地方
3)ctrl+t 回到跳转之前的标签处
注意:此时运行vim,必须在"tags"文件所在的目录下运行。否则,运行它会找不到"tags"文件,而需要在vim中用":set tags="命令设定"tags"文件的路径。对于一个稍微大点的项目,你可能在任何一个目录下打开vim,然而在每个目录下都生成一个tags文件并不 是个好主意,那么如何解决呢?方法是在.vimrc中增加一行:
set tags=tags;/
这是告诉vim在当前目录找不到tags文件时请到上层目录查找。

参考文章:http://blog.csdn.net/duguteng/article/details/7412652

以上是关于如何结合vim使用ctags 查找变量或者函数被“调用”的位置??的主要内容,如果未能解决你的问题,请参考以下文章

vim 中Ctags的安装和使用

ctags使用

ubuntu下安装ctags和taglist

linux ctags

vim插件ctags的安装与使用

vim中ctags应用