#graph #tui #dot #dag #visualize

app dot-viewer

在类似Vim的TUI中查看大型DAG的查看器/调试器

2个版本

0.1.1 2023年10月11日
0.1.0 2023年3月10日

#8#visualize

MIT 许可证

67KB
1.5K SLoC

dot-viewer

dot-viewer 是一个基于TUI的dot格式图调试器,灵感来自Vim。

1. 入门

a. 前提条件

i. Graphviz

dot-viewer 使用C语言绑定到 Graphviz (v7.0.6) 来解析dot格式文件。

系统环境应能找到并包含以下头文件。

#include <gvc.h>
#include <cgraph.h>

选项1. 从软件包管理器安装Graphviz

来自Linux,

$ sudo apt install graphviz-dev

来自普通的Ubuntu,你可能还想安装这些。

$ sudo apt install build-essentials cmake
$ sudo apt install clang

来自Mac,

$ brew install graphviz

来自Apple Silicon Mac,并 添加一个环境变量

export CPATH=/opt/homebrew/include

选项2. 从源代码构建Graphviz

或者,尝试按照 指南 从源代码构建。

ii. xdot.py

dot-viewer 使用 xdot.py 渲染子图,这是一个交互式的dot可视化器。

要求在命令行中 xdot 可执行,以便以下内容能正常工作。

$ xdot *.dot

b. 安装

i. 初始化

首先初始化并更新子模块 dot-graph

$ git submodule init
$ git submodule update

ii. 运行

然后运行crate。

$ cargo run --release [path-to-dot-file]

这将在终端上打开一个TUI屏幕。

2. 功能

使用 dot-viewer,用户可以

在TUI中使用以下方式遍历图

  • 转到当前选定节点的下一个/上一个节点
  • 对节点名称进行模糊搜索
  • 对节点名称和属性进行正则表达式搜索

使用以下方式创建和导出子图

  • 子图树选择
  • 对搜索匹配应用过滤器
  • 当前选定节点的邻近节点 n

快捷键

一般

命令 操作
  :q<C-R> 退出 dot-viewer
  :帮助<CR> 显示帮助
esc   回到主屏幕

按下 esc 返回普通模式,无论您是否确定自己在做什么...

模式切换

esc 所有 普通
/ 普通 模糊搜索
r 普通 正则表达式搜索
: 普通 命令

普通

操作
c 关闭当前标签页(视图)
h/l 在当前、上一个、下一个列表之间移动焦点
j/k 在焦点列表中遍历
n/N 在匹配节点之间移动
gg 移动到焦点列表中的顶部节点
G 移动到焦点列表中的底部节点
tab/backtab 在标签页之间移动
操作
tab 自动完成搜索关键字
enter 应用搜索

例如,在模糊搜索模式下,/g1_s14_t100,在正则表达式搜索模式下,r(H: ., D: .)

命令

命令 操作
  筛选 在当前匹配项上应用筛选,打开新标签页(视图)
  邻居[深度] 在新标签页(视图)中获取当前节点的最多 depth 个邻居
  导出[()文件名] 将当前标签页(视图)导出为 dot
  xdot[()文件名] 使用文件名或默认的 exports/current.dot 启动 xdot
  子图 打开一个弹出窗口显示子图树
tab   自动完成命令
enter   执行命令

所有导出的文件都保存在项目根目录下的 exports 目录中。

最近导出的文件已复制到 exports/current.dot

子图弹出窗口

操作
h/j/k/l 遍历树
enter 将根更改为所选子图,打开新标签页(视图)

帮助弹出窗口

操作
h/j/k/l 遍历帮助信息

依赖

~16–29MB
~412K SLoC