使用vim/cscope在linux内核中查找符号定义

使用vim/cscope在linux内核中查找符号定义,linux,vim,linux-kernel,ctags,cscope,Linux,Vim,Linux Kernel,Ctags,Cscope,我正在使用gvim/vim和cscope/ctags在linux内核中查找符号定义。 源代码非常庞大。当我想以“tag device”命令为例搜索结构设备时,vim将向我推荐数百个实例。因为它将提出名为device的全局变量,即名为device的结构成员。 还有什么可以改进的吗? 可以告诉vim/cscope/tag只查找结构定义吗?这一点,您可能已经知道了。我通过cscopevim命令缩小了范围 :cs f e结构设备{ 请参阅cscope vim命令的用法 cscope命令: 添加:添加新

我正在使用gvim/vim和cscope/ctags在linux内核中查找符号定义。 源代码非常庞大。当我想以“tag device”命令为例搜索结构设备时,vim将向我推荐数百个实例。因为它将提出名为device的全局变量,即名为device的结构成员。 还有什么可以改进的吗?
可以告诉vim/cscope/tag只查找结构定义吗?

这一点,您可能已经知道了。我通过cscopevim命令缩小了范围

:cs f e结构设备{
请参阅cscope vim命令的用法

cscope命令:
添加:添加新数据库(用法:添加文件| dir[pre-path][flags])
查找:查询模式(用法:查找c | d | e | f | g | i | s | t名称)
c:查找调用此函数的函数
d:查找此函数调用的函数
e:找到这个白鹭图案
f:找到这个文件
g:找到这个定义
i:查找文件#包括此文件
找到这个C符号
t:找作业给
帮助:显示此消息(用法:帮助)
kill:终止连接(用法:kill#)
重置:重新连接所有连接(用法:重置)
显示:显示连接(用法:显示)

我的评论可能与此没有直接关系。我曾使用过cscope,但发现lxr更方便。因此,我建议使用lxr而不是cscope。您也可以在尝试基于web的lxr,并体验一下。如果您想远离vim,那么eclipse将非常强大。我不确定eclipse和Linux内核是否能很好地结合在一起nationI过去使用过它。它在我的i3核心cpu/3 GB ram上速度较慢。但后来我被迫在虚拟机上工作,这变得不切实际。感谢您发布答案。与其发布指向外部网站的链接,您能否在您的答案中包含链接/文章的实质内容,以防网站不再可用。Yes、 但您必须考虑空格…有时我使用方法。我将选项g-添加到cscopequickfix变量(set cscopequickfix=+g)因此,我可以在快速修复窗口中显示搜索结果,然后是cs f g…然后我可以快速搜索快速窗口以找到结构定义或我想要的任何内容。您指的是什么空间?cs f e struct…往往比较慢。它比cs f g慢。是的,它使整个源代码变灰。这是一种折衷。如果您有很多定义的话这将缩小源代码中结构定义的范围。