☰
ripgrep 快速上手:三步完成一次全库代码搜索
2026/10/26 18:48:40 网站建设 项目流程

ripgrep 快速上手:三步完成一次全库代码搜索

【免费下载链接】ripgrepripgrep recursively searches directories for a regex pattern while respecting your gitignore项目地址: https://gitcode.com/GitHub_Trending/ri/ripgrep

ripgrep(简称 rg)是一款代码搜索工具,递归扫描目录里的正则匹配,默认跳过隐藏文件、二进制文件和 .gitignore 中声明的内容。读完这篇,你只需三步就能跑通第一次搜索。

它解决了什么问题

你可能有过这种体验:在一个几万行的大仓库里找一段代码,grep 慢得让人想换台电脑,结果还混进来一堆编译产物和依赖目录的噪音,真正有用的一行被淹没了。

ripgrep 的出发点是"少搜无用的、快搜有用的":它按行读取文件,用并行搜索和自动过滤把target/、node_modules/这类目录直接跳过,所以在绝大多数场景下,它的速度是传统逐文件遍历方式的数倍。而且同一套命令在 Windows、macOS、Linux 上行为一致,不用为平台差异操心。

三步跑起来

第 1 步:安装。macOS 和 Linux 一条命令即可(源码安装的话用git clone https://gitcode.com/GitHub_Trending/ri/ripgrep):

brew install ripgrep # Debian/Ubuntu 可用:sudo apt install ripgrep

第 2 步:第一次搜索。进入任意项目目录,搜一个你确定存在的词:

rg "hello" .

第 3 步:看懂输出。每行结果都是文件路径:行号:匹配内容三段式,比如src/main.rs:42:hello, world。哪一行、在哪个文件、第几行,扫一眼就知道,不用再打开文件确认位置。

5 个高频参数速查

参数作用什么时候用
-l只列出有匹配的文件名不关心内容,只要知道"哪些文件里有"
-i忽略大小写搜Error时不想漏掉error
-tpy只搜 Python 文件(py可换任意类型)在混合语言仓库里只搜一种语言
-d 2最多往下搜 2 层目录目录太深、太慢,只关心浅层
-uu无视 .gitignore 且搜索隐藏文件目标文件被忽略规则挡在外面时

这些参数可以随便叠加,比如rg -il "TODO"就是"忽略大小写、只列文件名的 TODO 搜索"。参数全貌可参考仓库里的 GUIDE.md。

两个真实小场景

场景一:在大型仓库里揪出所有 TODO。接手老项目想看看遗留了多少待办,又不想被依赖目录刷屏,加上类型限定:

rg "TODO" -t rust

结果只来自 Rust 源文件,配合-l可以先看"哪些文件还有坑",再逐个点开。

场景二:跳过不想搜的目录。仓库里有个vendor/目录存了上游代码,噪音太大。用 gitignore 风格的排除规则一行搞定:

rg "TODO" -g '!vendor'

-g接受的模式和你写在 .gitignore 里的一模一样,!表示排除,比维护额外的忽略文件省事得多。

和谁搭配更好用

  • fzf:把 ripgrep 的输出喂给它的模糊查找器,键盘上敲几个字母就能跳到你真正想看的那一行。
  • bat:ripgrep 告诉你在哪个文件哪一行,bat 用带语法高亮的 cat 把那段代码漂亮地展示出来。
  • fd:ripgrep 按内容找,fd 按文件名找,两个组合起来就是"内容 + 文件名"的双通道检索。

写在最后

ripgrep 的设计哲学很简单:默认值替你做了正确的决定,你只管搜。今天装好它,明天你大概率会忘了 grep 的拼写。更多用法细节可以看仓库自带的 GUIDE.md 和 FAQ.md,参数变更历史在 CHANGELOG.md。

【免费下载链接】ripgrepripgrep recursively searches directories for a regex pattern while respecting your gitignore项目地址: https://gitcode.com/GitHub_Trending/ri/ripgrep

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询