This is a new minor version release of ripgrep that contains some minor new
features and a panoply of bug fixes.
Releases provided on Github for x86_64
will now work on all target CPUs, and
will also automatically take advantage of features found on modern CPUs (such
as AVX2) for additional optimizations.
This release increases the minimum supported Rust version from 1.20.0 to
1.23.0.
It is anticipated that the next release of ripgrep (0.10.0) will provide
multi-line search support and a JSON output format.
BREAKING CHANGES:
- When
--count
and--only-matching
are provided simultaneously, the
behavior of ripgrep is as if the--count-matches
flag was given. That is,
the total number of matches is reported, where there may be multiple matches
per line. Previously, the behavior of ripgrep was to report the total number
of matching lines. (Note that this behavior diverges from the behavior of
GNU grep.) - Octal syntax is no longer supported. ripgrep previously accepted expressions
like\1
as syntax for matchingU+0001
, but ripgrep will now report an
error instead. - The
--line-number-width
flag has been removed. Its functionality was not
carefully considered with all ripgrep output formats.
See #795 for more
details.
Feature enhancements:
- Added or improved file type filtering for Android, Bazel, Fuschia, Haskell,
Java and Puppet. - FEATURE #411:
Add a--stats
flag, which emits aggregate statistics after search results. - FEATURE #646:
Add a--no-ignore-messages
flag, which suppresses parse errors from reading
.ignore
and.gitignore
files. - FEATURE #702:
Support\u{..}
Unicode escape sequences. - FEATURE #812:
Add-b/--byte-offset
flag that shows the byte offset of each matching line. - FEATURE #814:
Add--count-matches
flag, which is like--count
, but for each match. - FEATURE #880:
Add a--no-column
flag, which disables column numbers in the output. - FEATURE #898:
Add support forlz4
when using the-z/--search-zip
flag. - FEATURE #924:
termcolor
has moved to its own repository:
https://github.com/BurntSushi/termcolor - FEATURE #934:
Add a new flag,--no-ignore-global
, that permits disabling global
gitignores. - FEATURE #967:
Rename--maxdepth
to--max-depth
for consistency. Keep--maxdepth
for
backwards compatibility. - FEATURE #978:
Add a--pre
option to filter inputs with an arbitrary program. - FEATURE fca9709d:
Improve zsh completion.
Bug fixes:
- BUG #135:
Release portable binaries that conditionally use SSSE3, AVX2, etc., at
runtime. - BUG #268:
Print descriptive error message when trying to use look-around or
backreferences. - BUG #395:
Show comprehensible error messages for regexes like\s*{
. - BUG #526:
Support backslash escapes in globs. - BUG #795:
Fix problems with--line-number-width
by removing it. - BUG #832:
Clarify usage instructions for-f/--file
flag. - BUG #835:
Fix small performance regression while crawling very large directory trees. - BUG #851:
Fix-S/--smart-case
detection once and for all. - BUG #852:
Be robust with respect toENOMEM
errors returned bymmap
. - BUG #853:
Upgradegrep
crate toregex-syntax 0.6.0
. - BUG #893:
Improve support for git submodules. - BUG #900:
When no patterns are given, ripgrep should never match anything. - BUG #907:
ripgrep will now stop traversing after the first file when--quiet --files
is used. - BUG #918:
Don't skip tar archives when-z/--search-zip
is used. - BUG #934:
Don't respect gitignore files when searching outside git repositories. - BUG #948:
Use exit code 2 to indicate error, and use exit code 1 to indicate no
matches. - BUG #951:
Add stdin example to ripgrep usage documentation. - BUG #955:
Use buffered writing when not printing to a tty, which fixes a performance
regression. - BUG #957:
Improve the error message shown for--path separator /
in some Windows
shells. - BUG #964:
Add a--no-fixed-strings
flag to disable-F/--fixed-strings
. - BUG #988:
Fix a bug in theignore
crate that prevented the use of explicit ignore
files after disabling all other ignore rules. - BUG #995:
Respect$XDG_CONFIG_DIR/git/config
for detectingcore.excludesFile
.