| 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 |
ripgrep (rg)
Fast, smart recursive search. Respects .gitignore by default.
Quick Start
Basic search
rg "TODO"
rg -i "fixme"
rg "error" -t py
rg "function" -t js
Common patterns
rg -w "test"
rg -l "pattern"
rg -C 3 "function"
rg -c "import"
Advanced Usage
File type filtering
rg "error" -t py -t js
rg "TODO" -T md -T txt
rg --type-list
Search modifiers
rg "user_\d+"
rg -F "function()"
rg -U "start.*end"
rg -o "https?://[^\s]+"
Path filtering
rg "pattern" src/
rg "error" -g "*.log"
rg "test" -g "!*.min.js"
rg "secret" --hidden
rg "pattern" --no-ignore
Replacement Operations
rg "old_name" --replace "new_name"
rg "old_name" -l | xargs sed -i 's/old_name/new_name/g'
Performance Tips
rg "pattern" -j 8
rg "pattern" --max-filesize 10M
rg "pattern" --mmap
Common Use Cases
Find TODOs in code:
rg "TODO|FIXME|HACK" --type-add 'code:*.{rs,go,py,js,ts}' -t code
Search in specific branches:
git show branch:file | rg "pattern"
Find files containing multiple patterns:
rg "pattern1" | rg "pattern2"
Search with context and color:
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