12.0.0
ripgrep 12 is a new major version release of ripgrep that contains many bug
fixes, several important performance improvements and a few minor new features.
In case you haven't heard of it before, ripgrep is a line-oriented search
tool that recursively searches your current directory for a regex pattern. By
default, ripgrep will respect your .gitignore
and automatically skip hidden
files/directories and binary files.
In a near future release, I am hoping to add an
indexing feature
to ripgrep, which will dramatically speed up searching by building an index.
Feedback would very much be appreciated, especially on the user experience
which will be difficult to get right.
This release has no known breaking changes.
Deprecations:
- The
--no-pcre2-unicode
flag is deprecated. Instead, use the--no-unicode
flag, which applies to both the default regex engine and PCRE2. For now,
--no-pcre2-unicode
and--pcre2-unicode
are aliases to--no-unicode
and--unicode
, respectively. The--[no-]pcre2-unicode
flags may be
removed in a future release. - The
--auto-hybrid-regex
flag is deprecated. Instead, use the new--engine
flag with theauto
value.
Performance improvements:
- PERF #1087:
ripgrep is smarter when detected literals are whitespace. - PERF #1381:
Directory traversal is sped up with speculative ignore-file existence checks. - PERF cd8ec38a:
Improve inner literal detection to cover more cases more effectively.
e.g.,+Sherlock Holmes +
now hasSherlock Holmes
extracted instead
of - PERF 6a0e0147:
Improve literal detection when the-w/--word-regexp
flag is used. - PERF ad97e9c9:
Improve overall performance of the-w/--word-regexp
flag.
Feature enhancements:
- Added or improved file type filtering for erb, diff, Gradle, HAML, Org,
Postscript, Skim, Slim, Slime, RPM Spec files, Typoscript, xml. - FEATURE #1370:
Add--include-zero
flag that shows files searched without matches. - FEATURE #1390:
Add--no-context-separator
flag that always hides context separators. - FEATURE #1414:
Add--no-require-git
flag to allow ripgrep to respect gitignores anywhere. - FEATURE #1420:
Add--no-ignore-exclude
to disregard rules in.git/info/exclude
files. - FEATURE #1466:
Add--no-ignore-files
flag to disable all--ignore-file
flags. - FEATURE #1488:
Add '--engine' flag for easier switching between regex engines. - FEATURE 75cbe88f:
Add--no-unicode
flag. This works on all supported regex engines.
Bug fixes:
- BUG #1291:
ripgrep now works in non-existent directories. - BUG #1319:
Fix match bug due to errant literal detection. - BUG #1335:
Fixes a performance bug when searching plain text files with very long lines.
This was a serious performance regression in some cases. - BUG #1344:
Document usage of--type all
. - BUG #1389:
Fixes a bug where ripgrep would panic when searching a symlinked directory. - BUG #1439:
Improve documentation for ripgrep's automatic stdin detection. - BUG #1441:
Remove CPU features from man page. - BUG #1442,
BUG #1478:
Improve documentation of the-g/--glob
flag. - BUG #1445:
ripgrep now respects ignore rules from .git/info/exclude in worktrees. - BUG #1485:
Fish shell completions from the release Debian package are now installed to
/usr/share/fish/vendor_completions.d/rg.fish
.