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 文本处理

MIT 许可证

4.5MB
2.5K SLoC

Rust 2K SLoC // 0.0% comments Python 489 SLoC // 0.1% comments

igrepper - 交互式grep器

使用即时反馈过滤和探索文本。正则表达式在每次按键时都会重新评估。也适用于快速开发和测试正则表达式。

安装

以下任选其一

  1. 下载二进制文件
    不设置Rust环境安装,从最新版本中获取igrepper二进制文件: https://github.com/igoyak/igrepper/releases
    然后使用chmod使其可执行,并将其放在您的PATH中。

  2. 使用cargo安装
    cargo安装 igrepper

  3. 从源代码构建和运行
    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/tmuxurxvt 时颜色损坏。作为解决方案,您可以
    • 运行 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