← Back to Skills
Web Search

ripgrep

arnarsson By arnarsson 👁 18 views ▲ 0 votes

Blazingly fast text search tool - recursively searches directories

GitHub
---
name: ripgrep
description: Blazingly fast text search tool - recursively searches directories for regex patterns with respect to gitignore rules.
homepage: https://github.com/BurntSushi/ripgrep
metadata: {"clawdbot":{"emoji":"🔎","requires":{"bins":["rg"]},"install":[{"id":"brew","kind":"brew","formula":"ripgrep","bins":["rg"],"label":"Install ripgrep (brew)"},{"id":"apt","kind":"apt","package":"ripgrep","bins":["rg"],"label":"Install ripgrep (apt)"}]}}
---

# ripgrep (rg)

Fast, smart recursive search. Respects `.gitignore` by default.

## Quick Start

### Basic search
```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
```

### Common patterns
```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"
```

## Advanced Usage

### File type filtering
```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
```

### Search modifiers
```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]+"
```

### Path filtering
```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
```

## Replacement Operations

```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'
```

## Performance Tips

```bash
# Parallel search (auto by default)
rg "pattern" -j 8

# Skip large files
rg "pattern" --max-filesize 10M

# Memory map files
rg "pattern" --mmap
```

## Common Use Cases

**Find TODOs in code:**
```bash
rg "TODO|FIXME|HACK" --type-add 'code:*.{rs,go,py,js,ts}' -t code
```

**Search in specific branches:**
```bash
git show branch:file | rg "pattern"
```

**Find files containing multiple patterns:**
```bash
rg "pattern1" | rg "pattern2"
```

**Search with context and color:**
```bash
rg -C 2 --color always "error" | less -R
```

## Comparison to grep

- **Faster:** Typically 5-10x faster than grep
- **Smarter:** Respects `.gitignore`, skips binary files
- **Better defaults:** Recursive, colored output, line numbers
- **Easier:** Simpler syntax for common tasks

## Tips

- `rg` is often faster than `grep -r`
- Use `-t` for file type filtering instead of `--include`
- Combine with other tools: `rg pattern -l | xargs tool`
- Add custom types in `~/.ripgreprc`
- Use `--stats` to see search performance

## Documentation

GitHub: https://github.com/BurntSushi/ripgrep
User Guide: https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md
web search

Comments

Sign in to leave a comment

Loading comments...