ctags 的使用
来源:互联网 发布:网络活动论坛 编辑:程序博客网 时间:2024/05/22 00:36
ctags 在使用vim编程和浏览代码是非常有用。可以用CTRL+]和CTRL+t 来回跳转关键字。
先生成自己工作目录的tags。最简单粗暴用法:
这样会生成一个tags文件。
不过,这种有个问题,成员变量没有包含在里面。所以自动完成对象的成员时没有提示。
解决办法:
–fields=[+|-]flags
–fields指定tags的可用扩展域(extension fields),以包含到tags入口。
i:继承信息Inheritance information
a:类成员的访问控制信息 Access (or export) of class members
S: 常规签名信息,如原型或参数表 Signature of routine(e.g. prototype or parameter list)
–extra=[+|-]flags
指定是否包含某种扩展信息到tags入口。
q:包含类成员信息(如c++,java,Eiffel)。
但就算是C 语言的结构,也需要这两个参数设置才能获取成员信息。
这样就能自动完成结构和类的成员了。
但是,对于系统的函数,还是没有跳转。如socket定义,inetaddr_in这样的结构没有自动变量完成。
最简单做法:
然后在.vimrc里设置
这样虽然基本能跳转到系统函数定义,一个问题是某些系统函数并没有加入到systags里。
如/usr/incluce/socket.h的socket系列函数,memset等很多关键函数都没有到tag里:
这是因为 __THROW的宏定义让ctags不再认为该系列函数是函数。
同理,如memcpy系列函数:
如/usr/include/string.h的
还有attribute_pure ,nonull等属性,都需要忽略。如果需要#if 0里面的定义,可以–if0=yes来忽略 #if 0这样的定义。
这样.vim/systags里面是全的,但内容过多。一个函数定义的跳转,会有几十个候选。这时我们可以简化一下,将-R去掉,自己指定目录:
还可以包含一些自己编程需要的路径。注意后面加*号。
这样生成的系统tags就少多了。不会有太多不相干的定义。
- ctags的使用
- ctags的使用
- ctags的使用
- ctags的基本使用
- ctags的安装使用
- ctags 的配置使用
- ctags的使用
- ctags 的简单使用
- ctags 的使用
- vim ctags的使用
- ctags的简单使用
- ctags的使用
- ctags的使用
- ctags的使用
- ctags 和 taglist 的使用
- ctags、vim、Tlist的使用
- ctags、vim、Tlist的使用
- ctags和cscope的使用
- android 使用Tabhost 发生could not create tab content because could not find view with id 错...
- Eclipse中LogCat不刷新怎么办
- iOS 73 (Dev) 问题解决:UIViewController之间push操作时,iOS7中NavBar右侧有一块暗色出现
- list利用迭代器迭代
- php 换行符 PHP_EOL
- ctags 的使用
- 管道编程
- 链表
- Spring MVC
- lamp 安装
- exploring expect
- 网站如何选择合适空间?
- Cocos2d-x3.3beta0创建动画的3种方式
- 线下编程2题-Peter的x