rg "pattern" # search in current directory
rg "pattern" path/to/dir # search in specific directory
rg -i "pattern" # case-insensitive
rg -w "word" # whole word match
rg "pattern" file.txt # search in a single file
rg -t py "pattern" # search Python files
rg -T py "pattern" # exclude Python files
rg -t py -t js "pattern" # search Python and JS files
rg -g "*.toml" "pattern" # glob include
rg -g "!*.min.js" "pattern" # glob exclude
rg -g "*.{rs,toml}" "pattern" # multiple extensions
rg --max-depth 3 "pattern" # limit search depth
rg -d 3 "pattern" # shorthand for max-depth
rg "pattern" --ignore-file .customignore
rg --no-ignore "pattern" # ignore .gitignore
rg --no-ignore-vcs "pattern" # ignore VCS ignore files only
rg "start.*end" # basic regex
rg -e "pat1" -e "pat2" # multiple patterns (OR)
rg -f patterns.txt # patterns from file
rg -F "literal.*string" # fixed string (no regex)
rg -U "line1\nline2" # multi-line mode
rg "\bword\b" # word boundary
rg -C 3 "pattern" # 3 lines before and after
rg -B 2 "pattern" # 2 lines before
rg -A 2 "pattern" # 2 lines after
rg --context-separator "---" "pattern"
rg -n "pattern" # show line numbers (default)
rg --no-line-number "pattern" # hide line numbers
rg -l "pattern" # list filenames only
rg --files-without-match "pattern"
rg -c "pattern" # count matches per file
rg --count-matches "pattern" # count total matches
rg -o "pattern" # show only matching parts
rg --json "pattern" # JSON output
rg --vimgrep "pattern" # vim quickfix format
rg --type-list # list all file types
rg -t css "color" # CSS files
rg -t html "href" # HTML files
rg -t rust "fn main" # Rust files
rg -t markdown "TODO" # Markdown files
rg -t sh "echo" # Shell scripts
rg --hidden "pattern" # search hidden files
rg --no-hidden "pattern" # exclude hidden files (default)
rg --binary "pattern" # search binary files
rg --no-binary "pattern" # skip binary files (default)
rg -a "pattern" # treat all files as text
rg -r "replacement" "pattern" # preview replacement (no file change)
rg -r '$1' "(\w+)" # use capture groups
rg -r '$1$new$3' "(old)(.*)($)" "pattern"
rg --sort path "pattern" # sort by file path
rg --sortr modified "pattern" # sort by modification time (desc)
rg --sort accessed "pattern" # sort by access time
rg -m 100 "pattern" # max 100 matches
rg -m 0 "pattern" # unlimited matches
rg --config-file ~/.ripgreprc # use config file
rg --no-config "pattern" # ignore config
echo '--smart-case' >> ~/.ripgreprc
echo '--max-columns=150' >> ~/.ripgreprc
echo '--colors="match:fg:red"' >> ~/.ripgreprc
rg -j 4 "pattern" # use 4 threads
rg --max-filesize 10M "pattern" # skip files larger than 10MB
rg --mmap "pattern" # use memory-mapped I/O
rg --no-mmap "pattern" # disable memory-mapped I/O
rg --fast "pattern" # reduce regex complexity
# Find all TODO/FIXME in code
rg -n "TODO|FIXME|HACK" -t py -t rs -t js
# Find function definitions
rg "fn \w+" -t rust
rg "(def|class) \w+" -t py
rg "function \w+" -t js
# Search for IP addresses
rg "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" access.log
# Find secret patterns
rg -i "password|secret|api_key|token" --type-add 'lock:*.lock' -t lock
# Extract URLs from files
rg -o "https?://[^\s)]+" -N --no-filename
# Count pattern per file, sorted
rg -c "error" --sort path
# Search in recently modified files
rg "pattern" --sortr modified --max-depth 5
# Preview find-and-replace
rg -r "newFunc" "oldFunc" -t go
rg "pattern" # 在当前目录搜索
rg "pattern" path/to/dir # 在指定目录搜索
rg -i "pattern" # 忽略大小写
rg -w "word" # 全词匹配
rg "pattern" file.txt # 在单个文件中搜索
rg -t py "pattern" # 搜索 Python 文件
rg -T py "pattern" # 排除 Python 文件
rg -t py -t js "pattern" # 搜索 Python 和 JS 文件
rg -g "*.toml" "pattern" # glob 包含
rg -g "!*.min.js" "pattern" # glob 排除
rg -g "*.{rs,toml}" "pattern" # 多个扩展名
rg --max-depth 3 "pattern" # 限制搜索深度
rg -d 3 "pattern" # 限制深度的简写
rg "pattern" --ignore-file .customignore
rg --no-ignore "pattern" # 忽略 .gitignore
rg --no-ignore-vcs "pattern" # 仅忽略 VCS 忽略文件
rg "start.*end" # 基本正则
rg -e "pat1" -e "pat2" # 多个模式 (或)
rg -f patterns.txt # 从文件读取模式
rg -F "literal.*string" # 固定字符串 (不解析正则)
rg -U "line1\nline2" # 多行模式
rg "\bword\b" # 词边界
rg -C 3 "pattern" # 前后各 3 行
rg -B 2 "pattern" # 前 2 行
rg -A 2 "pattern" # 后 2 行
rg --context-separator "---" "pattern"
rg -n "pattern" # 显示行号 (默认)
rg --no-line-number "pattern" # 隐藏行号
rg -l "pattern" # 仅列出文件名
rg --files-without-match "pattern"
rg -c "pattern" # 每个文件的匹配数
rg --count-matches "pattern" # 总匹配数
rg -o "pattern" # 仅显示匹配部分
rg --json "pattern" # JSON 输出
rg --vimgrep "pattern" # vim quickfix 格式
rg --type-list # 列出所有文件类型
rg -t css "color" # CSS 文件
rg -t html "href" # HTML 文件
rg -t rust "fn main" # Rust 文件
rg -t markdown "TODO" # Markdown 文件
rg -t sh "echo" # Shell 脚本
rg --hidden "pattern" # 搜索隐藏文件
rg --no-hidden "pattern" # 排除隐藏文件 (默认)
rg --binary "pattern" # 搜索二进制文件
rg --no-binary "pattern" # 跳过二进制文件 (默认)
rg -a "pattern" # 将所有文件当作文本
rg -r "replacement" "pattern" # 预览替换 (不修改文件)
rg -r '$1' "(\w+)" # 使用捕获组
rg -r '$1$new$3' "(old)(.*)($)" "pattern"
rg --sort path "pattern" # 按路径排序
rg --sortr modified "pattern" # 按修改时间降序
rg --sort accessed "pattern" # 按访问时间排序
rg -m 100 "pattern" # 最多 100 个匹配
rg -m 0 "pattern" # 不限匹配数
rg --config-file ~/.ripgreprc # 使用配置文件
rg --no-config "pattern" # 忽略配置
echo '--smart-case' >> ~/.ripgreprc
echo '--max-columns=150' >> ~/.ripgreprc
echo '--colors="match:fg:red"' >> ~/.ripgreprc
rg -j 4 "pattern" # 使用 4 个线程
rg --max-filesize 10M "pattern" # 跳过大于 10MB 的文件
rg --mmap "pattern" # 使用内存映射 I/O
rg --no-mmap "pattern" # 禁用内存映射 I/O
rg --fast "pattern" # 降低正则复杂度
# 查找代码中的 TODO/FIXME
rg -n "TODO|FIXME|HACK" -t py -t rs -t js
# 查找函数定义
rg "fn \w+" -t rust
rg "(def|class) \w+" -t py
rg "function \w+" -t js
# 搜索 IP 地址
rg "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" access.log
# 查找敏感信息模式
rg -i "password|secret|api_key|token" --type-add 'lock:*.lock' -t lock
# 提取 URL
rg -o "https?://[^\s)]+" -N --no-filename
# 按文件统计模式出现次数并排序
rg -c "error" --sort path
# 搜索最近修改的文件
rg "pattern" --sortr modified --max-depth 5
# 预览查找替换
rg -r "newFunc" "oldFunc" -t go