现在的位置: 首页C++, linux, 操作系统>正文
利用ctags,实现应用库函数的跳转
2012年05月14日 C++, linux, 操作系统 暂无评论 ⁄ 被围观 1,754 次+

首先安装ctags,安装过程网上很多,就不多讲,安装之后执行ctags -R,就可以在本项目内实现代码跳转了,但不能跳转到不是在本项目的代码中定义的tag。例如在上面的图中,本地定义了一个类A,在main函数中定义了一个A类的对象,我们可以按“Ctrl+]”组合键跳转到class A那一行。然后可以按“Ctrl+O”跳转回来。

如果想实现跳转到非本项目的tag,则必须让Vim知道这些tag在哪。刚才的项目在/home/user/code/目录下,现在假设又有一个项目在/home/user/program/下,那么我们需要在此项目下生成program这个项目的tags文件(还是用上面的ctags命令)。

生成之后,要告知Vim,需要在Vim的配置文件中(/home/user/.vimrc)添加下面的内容:

" -- ctags setting --
set tags=tags
set tags+=./tags        " add current directory's generated tags file
set tags+=~/program/tags " add new tags file

最后一行就表示在搜寻tags文件的时候,也要搜寻/home/user/program/文件夹下的tags文件。保存以后重启,此时应该就能实现不同项目间的跳转了。这是因为我们经常会基于一些库开发软件,我们需要查看库中函数或者类的定义的时候,会经常需要此功能。

 

 

例如最近在用的protobuf库,首先进入到该库的代码路径:cd /home/user/protobuf2.41

,执行ctags -R,生成tags,然后编辑sudo vim /etc/vim/vimrc,在末尾添加:

" -- ctags setting --
set tags=tags
set tags+=./tags        " add current directory's generated tags file
set tags+=~/protobuf2.41 " add new tags file

 

重新打开vim,就发现以前跳转不过去的函数现在也可以跳转了。在vim的命令行状态也可以执行:set tags+=~/protobuf2.41临时加载一个tags,但是只在本次有效。

Wopus问答

给我留言

留言无头像?


×
腾讯微博