OpenGrok使用说明

作者 by adtxl / 2021-06-07 / 暂无评论 / 672 个足迹

OpenGrok一个快速、便于使用的源代码搜索与对照引擎。它帮助你搜索,对照,定位你的源代码树。它能够明白各种程序文件格式和版本控制历史记录。

full search

进行全文搜索,会匹配所有的单词、字符串、标识符以及数字等,例如在frameworks 下通过 Full Search 搜索”activity”,则会显示所有包含 activity 字符(忽略大小写)的结果,即使是注释也会显示出来。

image.png

Definition

搜索符号定义相关的代码,例如搜索staerActivityIfNeeded函数的定义,如下图所示,从搜索结果可以看出,右侧绿色字体表明了是位于Activity类中的方法;

image.png

Symbol

搜索符号,例如可以搜索类中的成员变量等。下图是通过Symbol搜索WINDOW_HIERARCHY_TAG的结果;

image3edca2118a540f94.png

File Path

搜索源码文件名中包含给定字符串的文件,例如想要搜索文件名包含Activity的源码文件,则可以在File Path中填入Activity进行搜索,结果如下图所示:

imageb838ba64c5711ab7.png

others

  • 对于有空格或其他字符的搜索,需要使用双引号括起来
  • 布尔操作

+表示包含此字符串,-表示不包含此字符串。
例如在 Full Search 中搜索包含 activity字符串但是不包含 service 字符串的源文件,可以填入+"activity" -"service"(去掉双引号同样可以,但是对于不可分割的词且两者间包含空格则双引号不可去,
此规则适用于所有的搜索规则,例如 Full Search "final String",双引号去除表示或的关系,这个与 Google 的搜索规则是一样的);
也可以使用 AND(&&),"+",OR(||),NOT(!)以及"-"(AND 等必须全部大写),例如搜索既包含 final 又包含 String 的源码文件,可以 Full Search 中填入”final” AND “String”;

  • 使用通配符

”?”代表一个字符,”*”代表多个字符(“?”和”*”不可用于字符串的开头);

  • 模糊查询

可以使用”~”搜索包含与提供的字符串拼写类似的源码文件等内容;

  • 转义字符

OpenGrok 中使用到的特殊字符包括+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ ,因此如果需要搜索的内容中包含这些特殊字符,可以使用\进行转义,例如搜索(1+1):2,可以这样1+11+1\:2

独特见解