ClawSkills logoClawSkills

Ripgrep

Blazingly fast text search tool - recursively searches directories for regex patterns with respect to gitignore rules.

Introduction

# 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

More Products