介绍
# ripgrep (rg)
快速、智能的递归搜索。默认尊重 `.gitignore`。
## 快速开始
### 基本搜索 ```bash # Search for "TODO" in current directory rg "TODO"
# Case-insensitive search rg -i "fixme"
# Search specific file types rg "error" -t py # Python files only rg "function" -t js # JavaScript files ```
### 常用模式 ```bash # Whole word match rg -w "test"
# Show only filenames rg -l "pattern"
# Show with context (3 lines before/after) rg -C 3 "function"
# Count matches rg -c "import" ```
## 高级用法
### 文件类型过滤 ```bash # Multiple file types rg "error" -t py -t js
# Exclude file types rg "TODO" -T md -T txt
# List available types rg --type-list ```
### 搜索修饰符 ```bash # Regex search rg "user_\d+"
# Fixed string (no regex) rg -F "function()"
# Multiline search rg -U "start.*end"
# Only show matches, not lines rg -o "https?://[^\s]+" ```
### 路径过滤 ```bash # Search specific directory rg "pattern" src/
# Glob patterns rg "error" -g "*.log" rg "test" -g "!*.min.js"
# Include hidden files rg "secret" --hidden
# Search all files (ignore .gitignore) rg "pattern" --no-ignore ```
## 替换操作
```bash # Preview replacements rg "old_name" --replace "new_name"
# Actually replace (requires extra tool like sd) rg "old_name" -l | xargs sed -i 's/old_name/new_name/g' ```
## 性能技巧
```bash # Parallel search (auto by default) rg "pattern" -j 8
# Skip large files rg "pattern" --max-filesize 10M
# Memory map files rg "pattern" --mmap ```
## 常见用例
**在代码中查找 TODO:** ```bash rg "TODO|FIXME|HACK" --type-add 'code:*.{rs,go,py,js,ts}' -t code ```
**在特定分支中搜索:** ```bash git show branch:file | rg "pattern" ```
**查找包含多个模式的文件:** ```bash rg "pattern1" | rg "pattern2" ```
**带上下文和颜色进行搜索:** ```bash rg -C 2 --color always "error" | less -R ```
## 与 grep 的对比
- **更快:** 通常比 grep 快 5-10 倍 - **更智能:** 尊重 `.gitignore`,跳过二进制文件 - **默认设置更好:** 递归、彩色输出、行号 - **更简单:** 常用任务的语法更简洁
## 提示
- `rg` 通常比 `grep -r` 更快 - 使用 `-t` 进行文件类型过滤,而不是 `--include` - 与其他工具结合使用:`rg pattern -l | xargs tool` - 在 `~/.ripgreprc` 中添加自定义类型 - 使用 `--stats` 查看搜索性能
## 文档
GitHub: https://github.com/BurntSushi/ripgrep 用户指南: https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md