Filter and explore text, having the regex re-evaluated at every keypress to minimize the feedback loop. Also useful for quickly developing and testing regular expressions for other applications.
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
.
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
. Workaround: export TERM=rxvt-unicode-256color
Ubuntu: apt-get install libncurses-dev
cargo build --release