注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

多多的爹

 
 
 

日志

 
 

读程序,学习Linux编程(九)  

2010-08-16 16:48:56|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

3.2. 使用ctags

前面介绍过vim的插件,不知ctags是vim自带的功能还是插件,无需另行安装,安装vim以后,这个东东就已经存在了。

VS有一个功能,将光标放到函数、变量的上面,点击键盘F12,会自动跳转到函数或者变量的声明或者定义地方。如果有多个声明或者定义,会弹出一个对话框让你选择。不过VS的这个功能,做得一般,首先需要将工程编译过才可以找到这些符号定义的位置,弹出的对话框太小,经常看不到后面的内容。另外当面对一个大工程的时候,VS会在后台不断的做分析,导致整个机器非常慢(这个问题我在某篇博客里提到过解决的办法)。跳转后可以通过VS的Navigate Back返回,快捷键嘛需要自己设定。

VA也具有这样的功能,不过更简单并且效率更高。VA只有在第一次启动的时候才会检测一下,并且检测过的都有缓存,无需编译之类的过程。如果有多个选项,会有一个浮动窗口弹出,供你选择最合适的跳转位置。VA快捷键是alt+g,返回是ctrl+?。

ctags干的就是同样的事情。不过ctags没有那么能干,需要人为的生成分析索引文件tags。

首先在终端中,进到了tinyproxy的目录,然后分析Linux的头文件:

cd /usr/src/tinyproxy-1.6.3

sudo ctags –R /usr/include

通过ls –l,可以看到当前目录下生成了一下tags文件。再把tinyproxy的分析内容加进去:

sudo ctags –R –a ./

ctags命令将指定目录下的所有文件进行分析,并将分析的结果保存到了tags中。参数-R表示对所有子目录进行分析。-a表示将分析的结果追加到tags文件中。第一次我们生成tags的时候,还没有tags文件,第二次分析当前目录时,我们就必须用-a将分析的结果追加进来,否则tags文件会被覆盖。

分析结果出来后,我们就可以在vim里直接使用了。查找的快捷键是ctrl+],返回的快捷键是ctrl+t。赶紧试一下吧。

我使用后,发现ctags有3个比较恶心人的问题:

1. 因为要依赖tags文件,我们必须在tags文件所在的目录启动vim。否则vim找不到tags。

2. tags的内容需要手动生成。如果你一直在那里写程序,思如泉涌,一口气写了几万行代码,那这些代码都没有索引,因此用ctags无法跳转。

3. ctags不像VS或者VA那样能查找到多个跳转结果,对于你要查找的内容,只有一个,所以有时候会查到一个没什么用的extern声明处,让人欲哭无泪。

唉,凑合吧,总比没有好,是吧。

  评论这张
 
阅读(1)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017