Grip-grab 🧤
A circumstancially faster, more lightweight, ripgrep-inspired alternative.
❯ gg "\b(Read|Write)Half[^<]" tokio/src
https://github.com/user-attachments/assets/2c5ed221-77f4-4a75-9f1a-b96341f3313b
Installation
Using Cargo
cargo install grip-grab
NOTE: if using zsh with the git
plugin, you might need to unalias gg
in order for grip-grab's gg
to work:
echo 'unalias gg' >> ~/.zshrc
source ~/.zshrc
Usage
❯ gg --help
A somewhat faster, more lightweight, ripgrep-inspired alternative.
Usage: gg [OPTIONS] [PATTERN] [PATH]
Arguments:
[PATTERN] a regex pattern to search for
[PATH] path in which to search recursively
Options:
-e, --patterns <PATTERNS>
you can specify multiple patterns using -e "pattern1" -e "pattern2" etc
-I, --ignore-paths <IGNORE_PATHS>
paths to ignore when recursively walking target directory
-G, --disregard-gitignore
disregard .gitignore rules when recursively walking directory (defaults to false)
-M, --max-results <MAX_RESULTS>
upper boundary for the number of results to expect (will panic if #results > max_results) [default: 1000]
-T, --n-threads <N_THREADS>
number of threads to use [default: 4]
-U, --multiline
enable multiline matching
--json
output in JSON format
-f, --file-paths-only
output file paths only
-A, --absolute-paths
output absolute paths (defaults to relative)
-C, --disable-colored-output
disable colored output (colored by default)
-t, --filter-filetypes <FILTER_FILETYPES>
filter on filetype (defaults to all filetypes)
-h, --help
Print help
-V, --version
Print version
Examples
Basic usage
❯ gg "\b(Read|Write)Half[^<]" tokio/src
JSON output
❯ gg --json unsplit tokio/src | jq
Filenames only
❯ gg -f "\b(Read|Write)Half[^<]" tokio/src
Notes
This lightweight utility is largely based on a couple of crates from the extraordinary ripgrep tool. Its aim is to provide a minimal and lightweight version that can be easily integrated in other programs for search-related purproses.
Description
Languages
Rust
100%