8 stable releases
| 1.3.6 | Jun 1, 2025 |
|---|---|
| 1.3.5 | Apr 7, 2024 |
| 1.3.4 | Jul 3, 2023 |
| 1.3.3 | Nov 3, 2022 |
| 0.1.0 | Apr 19, 2021 |
#91 in Text processing
572 downloads per month
4.5MB
2.5K
SLoC
igrepper - The interactive grepper
Filter text with regex, re-evaluated at every keypress, minimizing thec feedback loop.
Installation
Either:
-
Download binary
To install without setting up a rust environment, grab theigrepperbinary from the latest release: https://github.com/igoyak/igrepper/releases
Then make it executable withchmodand put it in yourPATH. -
Install using cargo
cargo install igrepper -
Build and run from source code
cargo run
Dependencies
Ubuntu: apt-get install xsel for clipboard support
Usage
Recommended .bashrc additions:
alias i='igrepper'
iman() {
man "$1" | igrepper --context 3
}
Read input from pipe:
dmesg | i
Read input from file:
i /etc/fstab
Create a grep command using ctrl-g:
See context around matches:
Reload the file as it changes (similar to tail -f):
i -f somefile.log
Commands:
Edit the current regex by typing.
Movement:
| Command | Action |
|---|---|
Up/Down/Left/Right/PageUp/PageDown |
Scroll |
ctrl-u/ctrl-d |
Half-page scroll |
Searching:
| Command | Action |
|---|---|
ctrl-n/ctrl-j/Enter |
Accept current regex, start a sub-search |
ctrl-p |
Revert sub-search |
ctrl-i |
Toggle case sensitivity |
ctrl-v |
Toggle inverted |
ctrl-r/ctrl-t |
Decrease/Increase context-lines |
Exporting:
| Command | Action |
|---|---|
ctrl-e |
Copy current match to clipboard |
ctrl-g |
Copy equivalent grep command to clipboard |
F1 |
Pipe current match to the configured external editor |
(Inside vim) F1 |
Pipe current buffer to igrepper (add map <F1> :silent :w !igrepper<CR>:q!<CR> to your .vimrc) |
Configuration
External editor
Set the environment variable IGREPPER_EDITOR to a command and arguments, separated by whitespace, to customize which
editor is used when pressing F1. The command must support reading from STDIN.
Example .bashrc configuration:
export IGREPPER_EDITOR="vim -R -" # vim in read-only mode (default)
export IGREPPER_EDITOR="code -" # vscode
export IGREPPER_EDITOR="nano -v -" # nano in read-only mode
Supported platforms
Tested on Ubuntu 20.04
Known issues
- No unicode support
- Broken colors when using
screen/tmuxandurxvt. As a workaround, you can either:- Run
export TERM=rxvt-unicode-256color - Add
term screen-256colorto your.screenrc
- Run
Dev dependencies
Ubuntu: apt-get install libncurses-dev
Build release version
Either:
cargo build --releaserm -r dockertarget; docker build . -t igrepperbuild && docker run --name igrepperbuild igrepperbuild && docker cp igrepperbuild:/tmp/target/release dockertarget; docker rm igrepperbuild
Publish release
- Bump version in Cargo.toml
- Bump version in main.rs
cargo publish --dry-runcargo publishgit push- Create release in Github from
./target/release/igrepper
Dependencies
~3–4.5MB
~79K SLoC