ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
- fanhe
- 帖子: 2357
- 注册时间: 2007-03-24 23:45
ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
例如 getpid getppid 这些,我暂时发现扫描unistd.h会这样,不知道扫描其他头文件会不会出现类似问题
还是我没加某些选项?
反正我现在没法补全getpid了,换过几个选项,查看扫描过的tags,还没没发现getpid符号
到底啥问题啊,google没找到这类问题,郁闷死了
你们有这种情况吗
还是我没加某些选项?
反正我现在没法补全getpid了,换过几个选项,查看扫描过的tags,还没没发现getpid符号
到底啥问题啊,google没找到这类问题,郁闷死了
你们有这种情况吗
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
有。是 ctags 的原因。不知道怎么解决。
-
- 帖子: 490
- 注册时间: 2009-06-20 23:53
Re: ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
看过libc头文件就知道,有些比如malloc之类的函数是扫描不出来的……声明比一般的函数复杂。
cedet ctags之类的都扫描不全,扫描时可能要结合正则补充了。
cedet ctags之类的都扫描不全,扫描时可能要结合正则补充了。
-
- 帖子: 490
- 注册时间: 2009-06-20 23:53
Re: ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
LinuxSir我没注册,在这里回帖,以免楼主破坏了Cscope的名声,Cscope比*tags强大太多了。
宏定义和结构那是肯定有的!
见下图!
宏定义和结构那是肯定有的!
见下图!
- fanhe
- 帖子: 2357
- 注册时间: 2007-03-24 23:45
Re: ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
我的意思是,怎样可以使vim在宏上面按ctrl-]直接跳到宏的定义风间星魂 写了:LinuxSir我没注册,在这里回帖,以免楼主破坏了Cscope的名声,Cscope比*tags强大太多了。
宏定义和结构那是肯定有的!
见下图!
我只知道现在是靠ctags来跳的,但是函数的定义可以用cscope来跳
我想不用ctags,仅仅用cscope来实现所有源代码的跳转
所以看代码的时候我想仅仅用cscope,不用那半残的ctags
所以怎么使vim用cscope来实现ctrl-]跳到宏啊,结构啊之类的定义处呢?
另外,怎么用正则来补全ctags的扫描来的,提供个参数线索也好,man页太长不适合看
btw,codelite的tags貌似是用sql来查询的,而且扫描的时候没发现缺少符号,至少getpid之类不会少
不知道codelite用什么来生成tags的
- fanhe
- 帖子: 2357
- 注册时间: 2007-03-24 23:45
Re: ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
好像解决了,用:cstag能随便跳
看代码的时候能扔掉ctags了,现在ctags唯一的存在理由是,omni补全……
但是符号都扫描不全,怎么补全啊,郁闷啊
还有,好像我找不到etags,主页在哪里,我看看etags是不是也是扫描不全,难道已经死了?
看代码的时候能扔掉ctags了,现在ctags唯一的存在理由是,omni补全……
但是符号都扫描不全,怎么补全啊,郁闷啊
还有,好像我找不到etags,主页在哪里,我看看etags是不是也是扫描不全,难道已经死了?
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
Re: ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
因为 ctags 只做模式匹配,不会展开宏
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
-
- 帖子: 490
- 注册时间: 2009-06-20 23:53
Re: ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
etags是emacs自带的。生成的tag vim不能用,而且这玩意不如ctags。。直接让vim扫描头文件补全就行了,最多慢点。
- sunsol
- 帖子: 55
- 注册时间: 2009-01-04 21:55
Re: ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
alias cctags='ctags --language-force=c++ --c++-kinds=+p --fields=+iaS --extra=+q -I "__nonnull __dead2 __pure2 __unused __packed __aligned __section __always_inline __wur __THROW __attribute_pure__ __attribute__ __asm G_GNUC_PURE G_GNUC_MALLOC G_GNUC_NULL_TERMINTED G_GNUC_ALLOC_SIZE G_GNUC_ALLOC_SIZE2 G_GNUC_PRINTF G_GNUC_SCANF G_GNUC_FORMAT G_GNUC_NORETURN G_GNUC_CONST G_GNUC_UNUSED G_GNUC_NO_INSTRUMENT" '
- dwl301
- 帖子: 1131
- 注册时间: 2007-04-14 11:17
Re: ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
对于.h中声明的函数的参数如果是两行,好像 ctags -R 生成的索引就 没有这个函数
应该是 ctags 本身的问题 ……
应该是 ctags 本身的问题 ……
- greatgarlic
- 帖子: 1794
- 注册时间: 2007-07-11 12:31
- 来自: neverland
- 联系:
Re: ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
来问问,有人解决了么。unistd.h中无法索引write()
- fanhe
- 帖子: 2357
- 注册时间: 2007-03-24 23:45
Re: ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
unistd.h 有很多宏, 而这些宏ctags 无法感知, 于是就会出现很多的问题greatgarlic 写了:来问问,有人解决了么。unistd.h中无法索引write()
参考楼上某楼添加 -I 参数来让 ctags 感知那些宏就行了
ctags 毕竟不是一个完整的 c/c++ 预处理器
- greatgarlic
- 帖子: 1794
- 注册时间: 2007-07-11 12:31
- 来自: neverland
- 联系:
Re: ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
-I 各种参数加上了,生成的tags文件中也能找到write()在unistd中的extern声明,但诡异的是自动补全里找不到,我很无语fanhe 写了:unistd.h 有很多宏, 而这些宏ctags 无法感知, 于是就会出现很多的问题greatgarlic 写了:来问问,有人解决了么。unistd.h中无法索引write()
参考楼上某楼添加 -I 参数来让 ctags 感知那些宏就行了
ctags 毕竟不是一个完整的 c/c++ 预处理器
- fanhe
- 帖子: 2357
- 注册时间: 2007-03-24 23:45
-
- 帖子: 3
- 注册时间: 2012-06-10 22:52
Re: ctags 扫描 unistd.h 总是缺少getpid等等的几个符号
谢谢了 应该是是宏的问题
sunsol 写了:alias cctags='ctags --language-force=c++ --c++-kinds=+p --fields=+iaS --extra=+q -I "__nonnull __dead2 __pure2 __unused __packed __aligned __section __always_inline __wur __THROW __attribute_pure__ __attribute__ __asm G_GNUC_PURE G_GNUC_MALLOC G_GNUC_NULL_TERMINTED G_GNUC_ALLOC_SIZE G_GNUC_ALLOC_SIZE2 G_GNUC_PRINTF G_GNUC_SCANF G_GNUC_FORMAT G_GNUC_NORETURN G_GNUC_CONST G_GNUC_UNUSED G_GNUC_NO_INSTRUMENT" '