Filter and explore text with instant feedback. The regex is re-evaluated at every keypress. Also useful for quickly developing and testing regular expressions.

Either:
Download binary
To install without setting up a rust environment, grab the igrepper binary from the latest
release: https://github.com/igoyak/igrepper/releases
Then make it executable with chmod and put it in your PATH.
Install using cargo
cargo install igrepper
Build and run from source code
cargo run
Dependencies
Ubuntu: apt-get install xsel for clipboard support
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
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) |
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
Tested on Ubuntu 20.04
screen/tmux and urxvt. As a workaround, you can either:
export TERM=rxvt-unicode-256colorterm screen-256color to your .screenrcUbuntu: apt-get install libncurses-dev
cargo build --release
cargo publish