跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教一下在已有代码库中快速搜索代码的技巧。比如,使用 rg 这种工具。有没相关主题文章?
未分類
6 3 月 2021

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

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

資深大佬 : yazoox 0

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

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

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

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

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

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

大佬有話說 (22)

  • 資深大佬 : superrichman

    ctrlsf.vim

  • 資深大佬 : cslive

    JetBrains 全家桶双击 shift

  • 資深大佬 : hengstchon

    chrome.*?version|version.*?chrome

  • 資深大佬 : jfhy0901

    全局查找,一般用 jetbrains

  • 資深大佬 : jiangwei2222

    jetbrains 全家桶都行。如果需要自己造的话写脚本导入 es,然后用 es 搜索

  • 資深大佬 : huang86041

    你永远不知道别人写的变量名是什么,还不如搜这个人的修改记录.

  • 主 資深大佬 : yazoox

    @cslive @jfhy0901 @jiangwei2222 没看懂,这个 jetbrains 全局查找有啥特别么?

  • 資深大佬 : xarthur

    fzf

  • 資深大佬 : xarthur

    还有 ag

  • 資深大佬 : aloxaf

    请好好学习正则表达式

  • 資深大佬 : Hconk

    这种我都是从界面的字符串搜索入手,比如弹出框不支持,那就搜弹出的字符串,找到调用的的地方 ,回溯调用关系,很快就定位到了。猜变量名不太靠谱。

  • 資深大佬 : lightjiao

    @yazoox #7 用过的 IDE 中,Jetbrain 系列的全文字符串搜索是最快的

  • 資深大佬 : lightjiao

    @lightjiao #12 我用过的是指代 VS 、Jetbrains 、VScode 、Sublime

  • 資深大佬 : oneisall8955

    用 idea 打开,想怎么搜就怎么搜

  • 資深大佬 : UserDMM

    我一般用类似于 Anytxt searcher 这种全局全文检索工具来搜索,还可以预览代码查看上下文,个人觉得很方便。
    现在对于我来说,和 Everything 一样,是必不可少的工具了。
    推荐给你试试

  • 資深大佬 : YoRolling

    当然是 tldr 啊

  • 資深大佬 : renmu123

    你重新写一个把他那个覆盖得了

  • 資深大佬 : CEBBCAT

    在这种问题上我不太相信正则或者说”chrome.*?version”这样的匹配模式能帮助你找到相关代码,从业务入手才是关键,

    比如上 @Hconk 说的从文案入手,或者我建议从业务逻辑入手,去找那些程序入口处的代码,抑或者如果知道怎么触发之前的旧逻辑,那就触发一次看看日志是哪里输出的

  • 資深大佬 : tusj

    “需求很简单吧,只要找到位置,改一下版本验证”

  • 資深大佬 : rrfeng

    git grep 不行吗?

  • 主 資深大佬 : yazoox

    @tusj 兄弟,我明白你的意思。很多时候,找到代码在哪里,可能都不止一天。我只是举个例子。我就是想知道搜索代码的常用 regex

  • 資深大佬 : tusj

    @yazoox 其实是我看到这句,突然有种一言难尽的感觉。
    1 可能以前的代码里就没有判断版本的地方,所以怎么搜都搜不到。
    2 这样简单地一刀切方案通常都是坑,大概率过两几天发现大多用户访问有问题,又得改回来。

    最后就是,我一般不会一次写很复杂的正则去搜,先:grep -iR version ./ 整个目录树递归搜一把,先观察结果有多少。如果量少,几十行,就一个个看。如果量大,几百行,再接管道补充条件:grep -iR version ./ | grep -i chrome

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具