最近重新捡回纯命令行干活,顺手安利一个老而弥坚的小工具:ripgrep,大家都叫它 rg。
先说结论:在稍大点的代码库里做全文检索,它现在是我默认的选择。以前在 repo 里捞一个函数的所有调用点,grep 慢得够我起身泡杯茶,换 rg 之后基本敲完回车结果就蹦出来了。底层是 Rust 写的,正则走 regex crate,对 UTF-8 和花哨 pattern 都稳,百万行量级的项目也能秒级返回,跟 ack、ag 比体感快一截。
最省心的是开箱即用。默认就尊重 .gitignore,自动跳过隐藏文件和二进制,不用像调 grep 那样写一长串 exclude。新 clone 一个项目,直接 rg “TODO” 出来的就是干净结果,没噪音。
再就是生态好。跟 fzf 配合做模糊跳转,或者塞进 Neovim 的 telescope / fzf.vim 当 backend,整个搜索流就顺了。我现在 vim 里随手 :Rg 一下,比 IDE 全局搜还跟手。
简单说小项目用啥都行,代码一多 rg 是真的香。你们平时搜代码都用什么?