【问题标题】:How to ignore struct declarations and consider only definitions in cscope?如何忽略结构声明并仅考虑 cscope 中的定义?
【发布时间】:2009-07-24 03:25:30
【问题描述】:

我总是使用 vim + cscope 来检查符号定义,我发现 cscope 总是采用如下声明:

struct sk_buff;

作为一个定义,这使得 vim 总是显示一个很长的文件列表以供选择。确实,我只想要定义:

struct sk_buff {
  ...
};

似乎 ctags 可以解决这个问题,但是 cscope 可以处理这个问题吗?或者我错了。

查了cscope源码,发现lex和yacc源码很难从头修改。

【问题讨论】:

  • 在cscope(fscanner.l)的源码中添加一个lex规则来忽略这种定义,现在可以了。也发现cscope还有很多需要改进的地方,或者不适合大项目的源码浏览。
  • Arghhh,为什么它做不到?!它已经可以为函数做到了!

标签: vim cscope


【解决方案1】:

你是对的,你不能只用 cscope 做到这一点。
我每天在小型和大型项目中都使用 cscope+ctags 和 vim。
我发现使用这些工具最有效的方法是在 vim 和 cscope_maps.vim 插件中使用它们。

这可能对您没有帮助,但它对我过去有所帮助,请查看this site 以获取有关一起使用它们的信息。我会警告您,如果您使用 cscope_maps.vim 插件,您可能需要对其进行编辑并注释掉 "set cscopetag" 选项。

【讨论】:

    猜你喜欢
    • 2013-07-08
    • 2020-07-08
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 2013-03-29
    • 2012-06-10
    • 1970-01-01
    相关资源
    最近更新 更多