在 vim 中使用 cscope 仅在给定文件中查找符号

Find symbol only in given files using cscope in vim

我想转到给定文件中的一个符号(比如 main)。 是否可以使用 cscope 将搜索范围限制为给定文件?

:cs find s main

没有这个,当我寻找像 main 这样的符号时,我在我的项目中得到了一百多个结果,我必须识别并输入像 90 这样的数字才能导航到该符号。

转到感兴趣的文件并使用 vim 搜索来搜索符号的选项对于像“main”这样的常见词来说很麻烦,这些词可能会在文件中出现几次。

Is it possible to restrict the scope of search to given files with cscope?

没有。 Cscope 本身不允许您这样做,所以 Vim 的 cscope 集成也不允许。

如果你想走出这个特定的洞,你可能需要考虑一些事情......

  1. 如果它不能满足您的要求,您使用的工具是否正确?

  2. 为什么要跳转到特定文件中的特定 main()?你接下来做什么?

    在我看来,跳转到 main() 本身似乎没有任何作用,因为它通常是一个入口点。因此,“跳转到 foo.c 中的 main()”并不比“跳转到 foo.c”好多少。这似乎只是另一个中间步骤。

  3. 是否有另一种方法可以做到这一点?

  4. 我是否应该放弃该工作流程而改用更好的工作流程?

如果您知道 foo.c 中有一个 main(),则可以使用一些更简单的 cscope 替代方法,例如:

:grep main foo.c

或:

:find +/main foo.c