假定,现在有一个需求,公司的产品将只支持 chrome 浏览器 88 以上的版本,让我去改代码。 需求很简单吧,只要找到位置,改一下版本验证。可是,当初写代码的人走了,其他人都不知道在哪里。
那这个时候就要去搜索代码了。
比如,我现在用 rg 工具( vim 下,leaderF 自带的,其他相关的支持正则表达式的工具应该类似),怎么搜索呢?
直接“chrome version” 会把两个单词看成一体的,而不是“或”的关系。
其实,我知道这个的本质上就是正则表达式的书写。 以前也专门花时间去学习过相关的内容。 但是这玩意儿好像用的次数很少,等到用的时候以前学的又都忘光了。
所以有没有那种 cheatsheets,或者,把常用的搜索源代码的一些正则表达式总结一下。
1
superrichman 2021-03-04 08:33:36 +08:00 via iPhone
ctrlsf.vim
|
2
cslive 2021-03-04 08:43:14 +08:00
JetBrains 全家桶双击 shift
|
3
hengstchon 2021-03-04 08:48:38 +08:00 via Android
chrome.*?version|version.*?chrome
|
4
jfhy0901 2021-03-04 08:59:00 +08:00 via Android
全局查找,一般用 jetbrains
|
5
jiangwei2222 2021-03-04 09:03:44 +08:00
jetbrains 全家桶都行。如果需要自己造的话写脚本导入 es,然后用 es 搜索
|
6
huang86041 2021-03-04 09:15:03 +08:00
你永远不知道别人写的变量名是什么,还不如搜这个人的修改记录.
|
7
yazoox OP |
8
xarthur 2021-03-04 09:26:30 +08:00 via iPhone
fzf
|
9
xarthur 2021-03-04 09:27:02 +08:00 via iPhone
还有 ag
|
10
aloxaf 2021-03-04 09:30:57 +08:00
请好好学习正则表达式
|
11
Hconk 2021-03-04 09:35:08 +08:00
这种我都是从界面的字符串搜索入手,比如弹出框不支持,那就搜弹出的字符串,找到调用的的地方 ,回溯调用关系,很快就定位到了。猜变量名不太靠谱。
|
14
oneisall8955 2021-03-04 09:40:52 +08:00 via Android
用 idea 打开,想怎么搜就怎么搜
|
15
UserDMM 2021-03-04 09:53:57 +08:00
我一般用类似于 Anytxt searcher 这种全局全文检索工具来搜索,还可以预览代码查看上下文,个人觉得很方便。
现在对于我来说,和 Everything 一样,是必不可少的工具了。 推荐给你试试 |
16
YoRolling 2021-03-04 10:02:09 +08:00
当然是 tldr 啊
|
17
renmu123 2021-03-04 10:12:22 +08:00 via Android
你重新写一个把他那个覆盖得了😏😏
|
18
CEBBCAT 2021-03-04 10:28:31 +08:00
在这种问题上我不太相信正则或者说"chrome.*?version"这样的匹配模式能帮助你找到相关代码,从业务入手才是关键,
比如楼上 @Hconk 说的从文案入手,或者我建议从业务逻辑入手,去找那些程序入口处的代码,抑或者如果知道怎么触发之前的旧逻辑,那就触发一次看看日志是哪里输出的 |
19
tusj 2021-03-04 10:33:30 +08:00
“需求很简单吧,只要找到位置,改一下版本验证”
|
20
rrfeng 2021-03-04 10:39:39 +08:00
git grep 不行吗?
|
21
yazoox OP @tusj 兄弟,我明白你的意思。很多时候,找到代码在哪里,可能都不止一天。我只是举个例子。我就是想知道搜索代码的常用 regex
|
22
tusj 2021-03-04 16:46:58 +08:00
@yazoox 其实是我看到这句,突然有种一言难尽的感觉。
1 可能以前的代码里就没有判断版本的地方,所以怎么搜都搜不到。 2 这样简单地一刀切方案通常都是坑,大概率过两几天发现大多用户访问有问题,又得改回来。 最后就是,我一般不会一次写很复杂的正则去搜,先:grep -iR version ./ 整个目录树递归搜一把,先观察结果有多少。如果量少,几十行,就一个个看。如果量大,几百行,再接管道补充条件:grep -iR version ./ | grep -i chrome |
23
bigtang 2023-05-30 08:37:04 +08:00
chromium 的源代码 tanglib.com 可以全文检索, ”chrome version“ 不连在一起搜索可以搜索 chrome "version"
|