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 --release
rm-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-run
cargopublish
gitpush
- 从
./target/release/igrepper
在 Github 上创建发布版
依赖项
~3–4.5MB
~71K SLoC