Ripgrep 15.0
Overall reception and quality
- Commenters widely praise ripgrep as “quality software” with a clean, instructive codebase that’s enjoyable to read.
- Many say it’s a daily‑driver tool they install on every new machine and rely on both in terminals and editors (e.g., VS Code).
- Several note that ripgrep’s excellence led them to become interested in Rust more broadly.
Interface and usability vs grep / git grep
- A recurring theme:
rg patterndoes “the right thing by default” for code search:- Recurses automatically.
- Respects
.gitignore. - Skips hidden and binary files.
- Users contrast this with
grep, which needs extra flags and wrapper scripts to avoid noisy results (.git, build artifacts, vendor dirs). - Some still use
grepout of muscle memory, especially in pipelines, but others notergworks the same there and has replaced many uses ofsed/awkvia--only-matchingand--replace. - For “behave more like git grep,” people use
--hiddenplus globs to avoid.git, or pipegit ls-filesintorg, though ripgrep intentionally doesn’t read git index state.
Comparison to ugrep, ag, ack
- One thread asks if ripgrep has “caught up” to ugrep; responses flip the framing, saying ugrep has caught up to ripgrep in some cases but not all.
- Benchmarks shared in the thread show ripgrep substantially faster than ugrep in a large Chromium checkout when matching ripgrep’s default ignore behavior; less dramatic but still faster when ignoring more broadly.
- Compared to ag:
- Multiple benchmarks show 3–10× speedups on large repos and ability to handle files >2GB.
- Points raised: better Unicode support, PCRE2, multiline search, UTF‑16 handling,
--replace, preprocessors, active maintenance, and fewer bugs.
- Some ag/ack users feel speed is already “fast enough” and are reluctant to retrain, but are intrigued by features.
Ignoring rules, hidden files, and configuration
- Default behavior (respect
.gitignore, skip hidden and binary files) is seen as a major UX win for most code‑search use cases. - Others find it surprising or problematic (e.g.,
.github, CI directories under.prefixes). - Suggested solution: use
.ignore/.rgignorewith negation rules (!/.github/,!.woodpecker, etc.) to whitelist specific hidden paths without changing CLI flags. - There is resistance to hardcoded whitelists in ripgrep itself, to keep semantics simple and predictable.
Features and workflows
- Popular features mentioned:
--type/ custom types instead of ad‑hoc extension globs.--filesfor fast file lists.--replacefor simple text transformations.- Optional
--smart-case(off by default; users can alias/configure).
- Ripgrep is commonly combined with:
fdas a faster, simpler alternative tofind.fzfand editor frontends for interactive search.- LLM-based tools, with users explicitly telling agents that
rgis available.
Critiques and concerns
- Some wish for different defaults (e.g., smart‑case enabled, easier extension filters).
- Edge cases discussed:
- Searching patterns that start with
-(need-eor--). - Desire for a more expressive filename filter like ag’s regex‑based
-Ginstead of glob‑only-g.
- Searching patterns that start with
- A commenter laments the broader pattern of major releases that mix “bug fixes and performance improvements” with behavior changes users didn’t ask for, though no specific breaking change in 15.0 is highlighted in the thread.