Crates.io | igrepper |
lib.rs | igrepper |
version | 1.3.5 |
source | src |
created_at | 2021-04-19 07:10:00.494693 |
updated_at | 2024-04-07 17:08:36.406688 |
description | The interactive grepper |
homepage | |
repository | |
max_upload_size | |
id | 386540 |
size | 5,122,457 |
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-256color
term screen-256color
to your .screenrc
Ubuntu: apt-get install libncurses-dev
Either:
cargo build --release
rm -r dockertarget; docker build . -t igrepperbuild && docker run --name igrepperbuild igrepperbuild && docker cp igrepperbuild:/tmp/target/release dockertarget; docker rm igrepperbuild
cargo publish --dry-run
cargo publish
git push
./target/release/igrepper