碎碎念
大家平时用vs或者vs code里自带的函数/变量搜索工具,去查代码,可能也足够了
在vs code里ctrl+P可以调出搜索框
但有包括但不限于以下这种情况的时候,需要全局的文本搜索工具:
- 面对大量源码(例如UE5)的时候,只听说某段代码,但不知道具体位置,想查询
- 面对海量输出日志,想检查里面有没有某个报错或提示
另外它还有以下优点:
- 查询某行代码在哪些代码文件里时,可以很清楚地列出名单
- 支持汉字搜索
安装
-
Windows版安装包链接:https://blog.bccn.net/%E9%9D%99%E5%A4%9C%E6%80%9D/67392
-
解压安装包。
-
配置环境变量
搜索“环境变量”,打开系统属性面板 > 环境变量 > 系统变量一栏找到path去编辑 > 添加ag.exe所在的目录
-
随便打开一个cmd窗口,输入
ag
,如果能成功打印一系列提示,说明安装成功啦
拓展知识:环境变量的用户变量与系统变量的区别
使用
- 查询当前目录下,所有包含字符串"str"的文件。注意"str"会被识别为正则表达式。
ag -a "str"
- 查询当前目录下所有的.cpp文件,包含字符串"str"的
ag --cpp "str"
- 不要使用正则表达式,直接搜索包含字符串"f()"的文件
ag -Q "f()"
其他
-
照着网上抄的指令,但是回车之后没有结果,也没有报错
-> 如果你和我一样也是在查ue5的源码,那很可能是因为你的目录太高了,要查的文件太多or太杂,silver它crash了
此时建议在深一层、代码更集中的地方查,例如UE5 > engine > source -
str不能包含与正则表达式产生歧义的字符,例如
(
、.
、*
,否则要在这些字符前面加\
转义