一句話摘要: 在 Claude Code 裡,ripgrep 的價值不是快幾毫秒,而是讓 agent 少讀錯幾個檔案。
1. rg 就是 ripgrep,用哪個 rg 決定搜尋是否真的在跑
rg 是 ripgrep 的執行檔名稱。Claude Code 預設走捆綁的 Node wrapper;要讓 Grep 工具走你本機的 rg,設 USE_BUILTIN_RIPGREP=0。
rg --version # 看真正生效的是哪個
which -a rg # 比對 PATH 順序
這次環境:系統 rg 13.0.0 → 升級到 15.2.0 置於 ~/.local/bin/rg(~/.local/bin 在 PATH 首位)。Claude Code 的 settings.json 與 ~/.zshrc 兩處皆設 USE_BUILTIN_RIPGREP=0;重開 Claude Code 後生效(已知有忽略設定檔的舊回報,實測以 which rg 為準)。
文件陷阱:官方有寫在 env-vars 頁(Set to 0 to use system-installed rg),但 settings 頁沒有——只查一處就會誤判為「未文件化」。
2. README 上的「更快」不是證據
一份主張 ripgrep 已不是最快的清單,七個替代品逐一查(2026-08-25,crates.io + GitHub API):
| 清單上的宣稱 | 查證結果 |
|---|---|
| frg「每種模式都比 rg 快」 |
qhkm/fastripgrep 約 ★14,建立與最後推送同一天(2026-03-24),之後五個月沒動。crates.io 上叫 frg 的是另一專案 |
| xerg「比 grep 快 34 倍」 | crates.io xerg v0.2.1,下載約 142 次;描述裡沒有該倍數 |
| shim「結構查詢改送 ast-grep」 |
PKM-M84/shim 約 ★2,機制被清單講反了——實為「先跑 rg,再用 ast-grep 去噪」 |
| xgrep「重複搜尋快 46 倍」 |
momokun7/xgrep 約 ★14,crates.io 同名為另一套件 |
| seek「把 zoekt 包成單一 binary」 | 查無此物 |
| fastgrep「某編輯器官方部落格背書」 | 假,原文無此工具亦無 Claude Code |
對照:ripgrep 約 ★67.6k,ast-grep 約 ★15.6k。
可複製的查核指令:
curl -s -A "your-ua" https://crates.io/api/v1/crates/<name> \
| jq -r '.crate | .max_version, .downloads, .description'
gh api repos/<owner>/<repo> \
--jq '"★\(.stargazers_count) created=\(.created_at[0:10]) pushed=\(.pushed_at[0:10])"'
3. 要換就換「能省 token」的,不是「能快幾毫秒」的
Agent 的成本是它塞回上下文的內容量。更準的搜尋比更快的搜尋更省。
// demo.rs
/// 這個函式取代了舊的 load_config,不要再呼叫 load_config。
fn load_config() -> String {
let hint = "usage: load_config <path>";
println!("{hint}"); String::new()
}
fn main() {
// TODO: load_config 之後要改成非同步
let _ = load_config();
}
$ rg -w -c 'load_config' demo.rs
5 # 註解、定義、字串、TODO、真正的呼叫
$ ast-grep run -p 'load_config()' -l rust demo.rs
demo.rs:10: let _ = load_config(); # 只有真正的呼叫
陷阱:ast-grep -p 'unwrap()' 在上千處呼叫的專案上回 0;正確是 $X.unwrap()。每個新 pattern 先在已知有命中的地方跑一次。小專案建索引永遠回不了本,先量再換。
4. 從可信到可查的最小清單
- 切系統
rg:~/.local/bin/rg 15.2.0+USE_BUILTIN_RIPGREP=0兩處設定,which -a rg驗證。 - 精準搜尋:
ast-grep run -p 'load_config()' -l rust <path>;pattern 錯是靜默失敗,先驗。 - 效能宣稱:先看
gh api的最後推送與下載量,再看第三方測量——沒有就當待驗證。
本文 7 宣稱查核與 demo.rs 範例皆可按上列指令自行複驗。

Top comments (0)