请教一下在已有代码库中快速搜索代码的技巧。比如,使用 rg 这种工具。有没相关主题文章?

2021-03-04 08:22:47 +08:00
 yazoox

假定,现在有一个需求,公司的产品将只支持 chrome 浏览器 88 以上的版本,让我去改代码。 需求很简单吧,只要找到位置,改一下版本验证。可是,当初写代码的人走了,其他人都不知道在哪里。

那这个时候就要去搜索代码了。

比如,我现在用 rg 工具( vim 下,leaderF 自带的,其他相关的支持正则表达式的工具应该类似),怎么搜索呢?

直接“chrome version” 会把两个单词看成一体的,而不是“或”的关系。

其实,我知道这个的本质上就是正则表达式的书写。 以前也专门花时间去学习过相关的内容。 但是这玩意儿好像用的次数很少,等到用的时候以前学的又都忘光了。

所以有没有那种 cheatsheets,或者,把常用的搜索源代码的一些正则表达式总结一下。

2340 次点击
所在节点    程序员
23 条回复
yazoox
2021-03-04 15:08:57 +08:00
@tusj 兄弟,我明白你的意思。很多时候,找到代码在哪里,可能都不止一天。我只是举个例子。我就是想知道搜索代码的常用 regex
tusj
2021-03-04 16:46:58 +08:00
@yazoox 其实是我看到这句,突然有种一言难尽的感觉。
1 可能以前的代码里就没有判断版本的地方,所以怎么搜都搜不到。
2 这样简单地一刀切方案通常都是坑,大概率过两几天发现大多用户访问有问题,又得改回来。

最后就是,我一般不会一次写很复杂的正则去搜,先:grep -iR version ./ 整个目录树递归搜一把,先观察结果有多少。如果量少,几十行,就一个个看。如果量大,几百行,再接管道补充条件:grep -iR version ./ | grep -i chrome
bigtang
345 天前
chromium 的源代码 tanglib.com 可以全文检索, ”chrome version“ 不连在一起搜索可以搜索 chrome "version"

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/758240

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX