前阵子在一个老项目里翻代码,几千个文件用 grep 跑一遍要好几秒,还总把 node_modules 和 .git 里的东西翻出来,结果里一堆噪声。其实后来被朋友安利了 ripgrep(命令行里叫 rg),试一次就回不去了。其实
它最让我舒服的是零配置。默认递归整个目录,自动跳过 .gitignore 里列的文件和二进制,不用手动加 -r 和一堆 --exclude。我这种懒人 literally 不用想参数,直接 rg “关键字” 就完事。
速度上,rg 是 Rust 写的,走高效字符串匹配,大仓库里基本秒回。多个第三方 benchmark 结论比较一致:带 ignore 规则的中等以上仓库,它比 GNU grep 快数倍到一个数量级。我自己那个带 node_modules 的前端老仓库,grep 扫全文得等好几秒还满是噪声,rg 默认跳过这些,几乎瞬时。
生态也省心,和 fzf、vim、VSCode 都能接上,Vim 里 :Rg 一下就出结果。btw 它不是让你抛弃 grep,只是日常搜代码这事,它确实把体验拉高了一截。OK,安利完毕,有兴趣的自己 brew install ripgrep 试试。