Skip to content

Ripgrep

地表最速程式碼搜尋神器

軟體分類 開發工具 / 程式碼搜尋
開發廠商 Andrew Gallant (BurntSushi)
Stars
0
Forks
0
License
MIT / UNLICENSE
Version
v14.1.0
Update
OS

產品說明

Ripgrep (指令為 rg) 是一款以 Rust 語言開發的命令列搜尋工具,它的目標很簡單:取代傳統的 grep,並且做得更快、更聰明。

對於開發者來說,使用 grep 最大的痛點往往是「速度慢」以及「搜尋到一堆垃圾檔案」(例如 node_modules.git 資料夾內的內容)。Ripgrep 完美解決了這兩個問題。它預設會自動讀取你的 .gitignore 檔案,自動忽略那些你不想搜尋的目錄與編譯檔;同時,得益於 Rust 的正則表達式引擎優化與平行處理技術,它的搜尋速度往往比 grep 快上數倍甚至數十倍,是大規模程式碼庫(Codebase)檢索的不二之選。

核心特色:

  • 極致效能:在基準測試中,Ripgrep 的搜尋速度持續領先 grepackThe Silver Searcher (ag)
  • 智慧過濾:預設尊重 .gitignore.ignore 規則,自動跳過隱藏檔與二進位檔案,讓你專注於真正的原始碼。
  • 跨平台支援:在 Windows、Mac 與 Linux 上皆能保持一致的高效能表現(不依賴 Cygwin 或 MSYS)。
  • 功能豐富:支援 Unicode、多行搜尋、壓縮檔搜尋以及豐富的輸出格式設定。

常用指令

Ripgrep 的指令設計特意與 grep 保持相似,降低學習門檻,但預設行為更符合現代開發需求。

啟動與基礎操作

# 在當前目錄下遞迴搜尋 "function_name"
rg function_name

# 搜尋並顯示行號 (預設開啟) 與上下文 (前後各 3 行)
rg -C 3 error_message
指令 / 參數功能說明傳統 grep 對照
rg <字串>遞迴搜尋當前目錄下的所有檔案grep -r <字串> .
rg -i <字串>不分大小寫搜尋 (Case Insensitive)grep -i
rg -t py <字串>只搜尋特定類型的檔案 (例如 Python)grep --include=*.py
rg -T js <字串>排除特定類型的檔案 (例如 JS)無簡單對應
rg -u不忽略隱藏檔 (.gitignore 仍生效)grep -r
rg -uu搜尋所有檔案 (包含隱藏檔與 .gitignore)grep -r
rg -l <字串>只列出包含該字串的檔名 (List)grep -l
rg –stats顯示搜尋統計資訊 (耗時、匹配行數)

進階技巧:與其他工具的組合

  • 指定檔案類型搜尋
    Ripgrep 內建了大量檔案類型別名,你不需要記住副檔名:

    rg -t rust "struct"  # 只在 .rs 檔案中搜尋
    rg -t md "title"     # 只在 Markdown 檔案中搜尋
    rg --type-list       # 列出所有支援的檔案類型
    
  • 與 Fzf 結合 (互動式搜尋內容)
    這是一個非常強大的組合技,透過 rg 搜尋內容,再透過 fzf 進行二次篩選並預覽:

    rg --line-number --no-heading --color=always --smart-case "關鍵字" | fzf --ansi
    

    (許多 IDE 外掛如 Vim 的 Telescope 或 VS Code 的搜尋核心,底層皆是呼叫 Ripgrep)


操作介面