#pager #logs #command #key-bindings #side #cli #chew

app bvr

一个旨在帮助您处理日志的分页器

4 个版本

0.0.4 2024年1月10日
0.0.3 2024年1月3日
0.0.2 2023年12月22日
0.0.1 2023年11月4日

#712 in 命令行实用工具

每月 44 次下载

MIT 许可证

560KB
5K SLoC

bvr

BVR CLI

用 Rust 编写的强大分页器,专为处理日志而构建。

BVR(发音为 "beaver")仍在积极开发中。

动机

我需要一个能够处理大型日志文件且快速响应的分页器。我特别讨厌用 grep 搜索文件,然后将其传递给 less,退出后再用不同的正则表达式进行 grep。我想比较日志文件。我还需要大量其他功能,在其他任何分页器中都找不到。

目标

  • 快速且响应迅速
  • 直观且易于使用
    • 直观的快捷键
    • 鼠标支持
  • 目标用途:滚动浏览日志文件
    • 多路复用
  • 从头开始构建,以模块化
  • 简单且易于理解的代码库

非目标

  • 语法高亮
  • 编辑文件

功能

进行中或计划

功能 描述 进度
命令补全 使用选项卡完成命令。 计划中
过滤预设 启动时添加预设过滤器。 完成 MVP
自定义快捷键 自定义程序的快捷键。 完成 MVP
自动换行 自动换行长行。 完成 MVP

基本支持

功能 描述 进度
管道文件 查看其他程序的管道输出,例如 cat file | bvr 基本
状态栏 查看分页器的当前状态。 基本
命令 使用模态命令与分页器交互。 基本
水平滚动 水平滚动视图。 基本
导出输出 将活动过滤器的数据导出到文件。 完成
鼠标支持 使用鼠标与 TUI 交互。 完成
过滤(正则表达式) 选择并禁用累加搜索过滤器。 完成
过滤交集 通过它们的交集而不是它们的并集来组合过滤器。 完成
过滤匹配跳转 跳转到下一个或上一个匹配过滤器的行。 完成
多路复用 通过选项卡或窗口查看多个文件。 完成
跟随输出 在加载数据时不断向下滚动。 完成

内置快捷键

  • 将来将添加自定义快捷键。

正常模式

这是默认模式。您可以滚动浏览文件。

快捷键 描述
向上键向下键 平移视图。
n p 平移到下一个/上一个活动匹配项。
Home/g 平移视图到文件末尾。
End/G 平移视图到文件末尾(跟随输出)。
PageUpPageDown/Space 按页平移视图。
Shift + 向上键向下键 按半页平移视图。

命令模式

在此模式下,您可以输入命令与翻页器交互。

命令 描述
:退出
:q
退出。
:打开<文件>
:o
在新的标签页/视图中打开文件。
:关闭
:c
关闭当前标签页/视图。
:切换
:m
在窗口或标签之间切换多路复用模式。
:mux tabs :mux split
:m t :m s
将多路复用设置为相应的模式。
:pb pbcopy 将活动过滤器的输出复制到剪贴板。
:过滤正则表达式<正则表达式>
:f r<正则表达式>
创建一个新的搜索正则表达式的过滤器。
:过滤文本<文本>
:f l<正则表达式>
创建一个新的搜索文本的过滤器。
:过滤清除
:f c
清除所有过滤器。
:过滤合并
:f|
为过滤复合使用合并策略(默认)。
:过滤交集
:f&
为过滤复合使用交集策略。
:<数字> 转到特定的行号(如果不可用则最近的)。

注意: findfilter 的别名。

视觉模式

在此模式下,您可以选择要书签的行。

快捷键 描述
向上键向下键 移动选择光标。
n p 选择下一个/上一个活动匹配项。
Shift + 向上键向下键np 将选择光标扩展为选择范围。
SpaceEnter 在当前行切换书签。

过滤模式

在此模式下,您可以切换从书签或搜索中切换的过滤器,以在查看器中省略或包含某些行。

快捷键 描述
EscTab 退出选择模式(进入查看器模式)。
: 进入命令模式。
i 进入选择模式。
向上键向下键 更改选定的过滤器。
SpaceEnter 切换选定的过滤器。

模式无关

快捷键 描述
Esc 退出选择模式(进入正常模式)。
Ctr; + C 退出程序。
: 进入命令模式。
/ 创建一个新的过滤器。
? 创建一个新的(文本)过滤器。
v 进入视觉模式。
Tab 进入过滤模式。
`~ 切换选定的视图(向前和向后)。
1 .. 9 将选定的视图切换到第 n 个缓冲区。

依赖关系

~9–23MB
~321K SLoC