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

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

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

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

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

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

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

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

2325 次点击
所在节点    程序员
23 条回复
superrichman
2021-03-04 08:33:36 +08:00
ctrlsf.vim
cslive
2021-03-04 08:43:14 +08:00
JetBrains 全家桶双击 shift
hengstchon
2021-03-04 08:48:38 +08:00
chrome.*?version|version.*?chrome
jfhy0901
2021-03-04 08:59:00 +08:00
全局查找,一般用 jetbrains
jiangwei2222
2021-03-04 09:03:44 +08:00
jetbrains 全家桶都行。如果需要自己造的话写脚本导入 es,然后用 es 搜索
huang86041
2021-03-04 09:15:03 +08:00
你永远不知道别人写的变量名是什么,还不如搜这个人的修改记录.
yazoox
2021-03-04 09:25:17 +08:00
@cslive @jfhy0901 @jiangwei2222 没看懂,这个 jetbrains 全局查找有啥特别么?
xarthur
2021-03-04 09:26:30 +08:00
fzf
xarthur
2021-03-04 09:27:02 +08:00
还有 ag
aloxaf
2021-03-04 09:30:57 +08:00
请好好学习正则表达式
Hconk
2021-03-04 09:35:08 +08:00
这种我都是从界面的字符串搜索入手,比如弹出框不支持,那就搜弹出的字符串,找到调用的的地方 ,回溯调用关系,很快就定位到了。猜变量名不太靠谱。
lightjiao
2021-03-04 09:38:18 +08:00
@yazoox #7 用过的 IDE 中,Jetbrain 系列的全文字符串搜索是最快的
lightjiao
2021-03-04 09:39:14 +08:00
@lightjiao #12 我用过的是指代 VS 、Jetbrains 、VScode 、Sublime
oneisall8955
2021-03-04 09:40:52 +08:00
用 idea 打开,想怎么搜就怎么搜
UserDMM
2021-03-04 09:53:57 +08:00
我一般用类似于 Anytxt searcher 这种全局全文检索工具来搜索,还可以预览代码查看上下文,个人觉得很方便。
现在对于我来说,和 Everything 一样,是必不可少的工具了。
推荐给你试试
YoRolling
2021-03-04 10:02:09 +08:00
当然是 tldr 啊
renmu123
2021-03-04 10:12:22 +08:00
你重新写一个把他那个覆盖得了😏😏
CEBBCAT
2021-03-04 10:28:31 +08:00
在这种问题上我不太相信正则或者说"chrome.*?version"这样的匹配模式能帮助你找到相关代码,从业务入手才是关键,

比如楼上 @Hconk 说的从文案入手,或者我建议从业务逻辑入手,去找那些程序入口处的代码,抑或者如果知道怎么触发之前的旧逻辑,那就触发一次看看日志是哪里输出的
tusj
2021-03-04 10:33:30 +08:00
“需求很简单吧,只要找到位置,改一下版本验证”
rrfeng
2021-03-04 10:39:39 +08:00
git grep 不行吗?

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

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

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

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

© 2021 V2EX