13

我将 cscope 用于一个带有 vim 的大型项目,但没有 vim 映射(他们出于某种奇怪的原因冻结了 vim)。我在 vim 中使用 cscope 命令,并且我希望能够在整个代码中找到结构成员的用途。

假设我有这样的事情:

  1 typedef struct _s{
  2     
  3     int x;
  4 } S;
  5  
  6 int main(){
  7
  8     int x = 1;
  9
 10     S my_s;
 11
 12     my_s.x = 5;
 13
 14     return my_s.x;
 15 }

如果我发出命令“cs fs x”,它将返回 S 的成员变量和本地主变量。有没有办法只能找到 S 的成员变量的出现?

4

2 回答 2

4

我认为没有任何方法可以让 cscope 区分局部变量 x 和结构成员变量。

我们在我的公司解决这个问题的方法是对成员变量使用独特的命名方案,以帮助区分它们:

typedef struct _s{    
    int s_x;
} S;

一开始有点尴尬,但是一旦你习惯了它,它确实使浏览代码变得更容易。通常唯一符只是与结构相关的几个字符,它不会把事情弄得乱七八糟。

于 2011-05-31T19:31:27.147 回答
-1

您可以将光标放在结构变量“my_s”上,然后按组合键“gd”,而不是搜索 x。这会将您定位在 my_s 的定义上,然后使用 cscope 查找 S 的定义。

于 2011-06-01T06:29:28.473 回答