如何在 macOS/Linux/Windows 安裝 ripgrep (rg):正則搜尋與 .gitignore

三大平台安裝 rg,跑第一條正則搜尋,並理解 .gitignore 如何過濾結果。

要在程式庫裡快速搜字串,ripgrep(命令 rg)比 grep -r 更省事:預設尊重 .gitignore,用 Rust 寫的並行搜尋也快。本教學走 hereink 讀者常用的 macOS、Linux 與 Windows 官方安裝路徑。

檢索詞是如何安裝 ripgrep 並用正則搜尋。讀完應能在專案根目錄跑第一條 rg,並知道怎樣讓結果自動跳過被忽略的檔案。

macOSHomebrew 或官方二進位
Linux套件管理器或 cargo
Windowswinget / MSI / Scoop
安裝 rg第一條搜尋gitignore 規則

ripgrep 解決什麼問題

比 grep 少踩坑

grep -r 會掃進 node_modules、dist 和 .git,輸出爆炸。rg 預設讀 .gitignore、.ignore 和全域忽略規則,適合日常在程式庫裡找符號。

正則夠用就好

rg 使用 Rust 正則引擎,支援 \d、分組、行首行尾等常見寫法。不需要背全 POSIX;先會字面量、大小寫和檔案類型過濾就能覆蓋八成場景。

在終端確認版本:rg --version。官方倉庫:github.com/BurntSushi/ripgrep。

在三大系統安裝 rg

  1. 1
    macOS(Homebrew)

    已裝 Homebrew 時執行 brew install ripgrep。驗證:which rg 與 rg --version。Apple Silicon 與 Intel 共用同一公式。

  2. 2
    Linux(發行版套件)

    Debian/Ubuntu:sudo apt update && sudo apt install ripgrep。Fedora:sudo dnf install ripgrep。Arch:sudo pacman -S ripgrep。若倉庫版本過舊,可從 GitHub Releases 下載對應架構的 tarball 解壓並把 rg 放進 PATH。

  3. 3
    Windows

    在 PowerShell 或終端執行 winget install BurntSushi.ripgrep.MSVC,或從 GitHub Releases 安裝 MSI。Scoop 使用者:scoop install ripgrep。新開終端後跑 rg --version。

  4. 4
    可選:用 Rust 安裝

    已裝 Rust 工具鏈時:cargo install ripgrep。編譯較慢,但適合套件管理器沒有 rg 的環境。

基礎正則搜尋

# 字面量(預設大小寫敏感)
rg "useState" src/

# 忽略大小寫
rg -i "error" .

# 正則:以 function 開頭的行
rg "^function\s+\w+" --type js

# 只列檔名
rg -l "TODO" .

# 顯示行號並帶上下文
rg -n -C 2 "api/v1" 

在程式庫根目錄執行時,rg 會沿目錄向上查找 .git 以定位專案根,並套用該處的忽略規則。

尊重 .gitignore 與例外

需求命令說明
預設行為rg pattern自動跳過 .gitignore 中的路徑
也搜被忽略檔案rg --no-ignore pattern除錯產物或本機設定時用,輸出會很多
額外忽略rg --glob '!*.min.js' foo在預設規則上再排除一類檔案
只搜某副檔名rg -t py "def main"-t 與 --type-list 查看內建類型
適合
在 monorepo 或前端專案裡找元件名、環境變數、TODO;CI 日誌裡快速定位報錯檔案。
不適合
需要修改檔案內容(用編輯器或 sd/sed);跨二進位大檔全文索引(考慮專用工具)。
rg 和 grep 可以完全互換嗎?

不能。rg 面向目錄樹搜尋,預設遞迴並尊重忽略規則;grep 更適合管道和單檔。很多團隊兩者並存。

為什麼搜不到 node_modules 裡的字串?

因為 node_modules 通常在 .gitignore 裡。需要時用 rg --no-ignore 或進入該目錄單獨搜,並預期更慢、結果更多。

Windows 上 rg 找不到命令?

安裝後關閉並重新開啟終端。檢查 where rg。winget/MSI 會把可執行檔放進 PATH;若用手動 zip,需自己把目錄加入使用者環境變數。

搜完程式碼要對齊方案

終端裡定位到檔案後,架構討論仍適合攤在同一張圖上。短會不必新工具棧,見 如何建立空間。

立即開會