8个版本 (稳定版)
| 1.3.5 | 2024年4月7日 |
|---|---|
| 1.3.4 | 2023年7月3日 |
| 1.3.3 | 2022年11月3日 |
| 1.3.2 | 2022年6月7日 |
| 0.1.0 | 2021年4月19日 |
#116 in 文本处理
4.5MB
2.5K SLoC
igrepper - 交互式grep器
使用即时反馈过滤和探索文本。正则表达式在每次按键时都会重新评估。也适用于快速开发和测试正则表达式。

安装
以下任选其一
-
下载二进制文件
不设置Rust环境安装,从最新版本中获取igrepper二进制文件: https://github.com/igoyak/igrepper/releases
然后使用chmod使其可执行,并将其放在您的PATH中。 -
使用cargo安装
cargo安装 igrepper -
从源代码构建和运行
cargo运行
依赖项
Ubuntu: 使用apt-get install xsel以支持剪贴板
使用方法
推荐的.bashrc添加内容
alias i='igrepper'
iman() {
man "$1" | igrepper --context 3
}
从管道读取输入
dmesg | i
从文件读取输入
i /etc/fstab
使用ctrl-g创建grep命令

查看匹配项周围的上下文

在文件更改时重新加载文件(类似于tail -f)
i -f somefile.log
命令
通过输入编辑当前正则表达式。
移动
| 命令 | 动作 |
|---|---|
Up/Down/Left/Right/PageUp/PageDown |
滚动 |
ctrl-u/ctrl-d |
半页滚动 |
搜索
| 命令 | 动作 |
|---|---|
ctrl-n/ctrl-j/Enter |
接受当前正则表达式,开始子搜索 |
ctrl-p |
撤销子搜索 |
ctrl-i |
切换大小写敏感度 |
ctrl-v |
切换反转 |
ctrl-r/ctrl-t |
减少/增加上下文行数 |
导出
| 命令 | 动作 |
|---|---|
ctrl-e |
将当前匹配项复制到剪贴板 |
ctrl-g |
将等效的 grep 命令复制到剪贴板 |
F1 |
将当前匹配项通过管道传递到配置的外部编辑器 |
(在 vim 中) F1 |
将当前缓冲区传递给 igrepper (将以下命令添加到您的 .vimrc) |
配置
外部编辑器
将环境变量 IGREPPER_EDITOR 设置为命令和参数,以空格分隔,以自定义在按下 F1 时使用的编辑器。该命令必须支持从 STDIN 读取。
示例 .bashrc 配置
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
支持的平台
在 Ubuntu 20.04 上进行测试
已知问题
- 无 Unicode 支持
- 使用
screen/tmux和urxvt时颜色损坏。作为解决方案,您可以- 运行
export TERM=rxvt-unicode-256color - 将
term screen-256color添加到您的.screenrc
- 运行
开发依赖
Ubuntu: apt-get install libncurses-dev
构建发布版本
以下任选其一
cargobuild --releaserm-r dockertarget;docker build. -t igrepperbuild&&docker run--name igrepperbuild igrepperbuild&&docker cp igrepperbuild:/tmp/target/release dockertarget;docker rm igrepperbuild
发布发布版
- 在 Cargo.toml 中提升版本
- 在 main.rs 中提升版本
cargopublish --dry-runcargopublishgitpush- 从
./target/release/igrepper在 Github 上创建发布版
依赖项
~3–4.5MB
~71K SLoC