用途:ripgrep(rg)是面向行的递归搜索工具,用正则表达式在目录中查找文本,默认遵循 .gitignore,速度远快于 grep。适合在代码库、书籍、文档或超大文件中定位内容,也用于按模式筛选文件。
主要能力:支持大小写不敏感(-i)、智能大小写(-S)、整词(-w)、固定字符串(-F)、上下文行(-A/-B/-C)、行号(-n)、仅文件名(-l)、无匹配文件(--files-without-match)、计数(-c/--count-matches)、仅匹配部分(-o)、反向匹配(-v)、多行(-U)、替换预览(-r,不修改文件)。可按类型(-t/-T,如 py、js、ts、go)、glob(-g)、文件大小(--max-filesize)、深度(--max-depth)过滤,支持隐藏文件(--hidden)、符号链接(-L)、忽略规则(--no-ignore,-u 可叠加至 -uuu)。输出支持 --json、--vimgrep、--stats。可搜索 gzip 等压缩文件(-z)与二进制文件(--binary/-a)。
使用方式:基本命令为 rg "pattern" [path];例如 rg -t py "def main"、rg -g "*.tsx" "useState"、rg -C 3 "keyword" book.txt。退出码:0 有匹配、1 无匹配、2 出错,可用于脚本判断。
适用场景:查找函数/变量/字符串出现位置、TODO/FIXME 注释、导入语句、类与错误处理定义;在书籍文档中找章节标题或引用;搜索过大而无法整体读取的文件,可配合 -m 限制匹配数、-b 显示字节偏移、head/tail 分页。
限制:需要完整文件内容时应改用读取工具;仅按文件名匹配用 glob/find;结构化 JSON 查询用 jq,列处理用 awk,流式替换用 sed(rg 的 -r 仅预览不改文件)。默认跳过隐藏文件与忽略文件,需显式开启;二进制文件默认跳过;复杂正则(如前后查找)需 -P 启用 PCRE2。
性能建议:尽量指定具体路径、用 -t 代替 -g、无需正则时用 -F、已知结构时限制深度、保留 gitignore 生效、用 -w 词边界。
安装方式与许可、价格等信息暂未提供。