Ripgrep is a command line tools that searches patterns under your current directory, like the good old grep, but with faster speed. In this post, I list some of the commonly-used flags for ripgrep.
command | Description |
---|---|
rg image utils.py | Search in a single file utils.py |
rg image src/ | Search in dir src/ recursively |
rg image | Search image in current dir recursively |
rg '^We' test.txt | Regex searching support (lines starting with We ) |
rg -i image | Search image and ignore case (case-insensitive search) |
rg -s image | Smart case search |
rg -F '(test)' | Search literally, i.e., without using regular expression |
rg image -g '*.py' | File globing (search in certain files), can be used multiple times |
rg image -g '!*.py' | Negative file globing (do not search in certain files) |
rg image --type py or rg image -tpy 1 | Search image in Python file |
rg image -Tpy | Do not search image in Python file type |
rg -l image | Only show files containing image (Do not show the lines) |
rg --files-without-match image | Show files not containing image |
rg -v image | Inverse search (search files not containing image ) |
rg -w image | Search complete word |
rg --count | Show the number of matching lines in a file |
rg --count-matches | Show the number of matchings in a file |
rg neovim --stats | Show the searching stat (how many matches, how many files searched etc.) |
How to enable shell completion for ripgrep?#
The binary release of ripgrep also
include completion files for Bash, Zsh. When we extract the binary release, the
completion file is under completion/_rg
. For zsh, we should move this file to
one of the paths in env variable $fpath
.
How to exclude directories#
To exclude directories, we also use the -g
option. For example, to exclude
dir1
and dir2
, use the following command:
rg pattern -g '!dir1/' -g '!dir2/'
Changelog
update: 2020-12-03, add --stats
option
References#
To list the supported filetypes, use
rg --type-list
. ↩︎