2个版本
0.1.1 | 2023年10月11日 |
---|---|
0.1.0 | 2023年3月10日 |
#8 在 #visualize
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