VIM插件:wmgraphviz
Graphviz是一个开源的“画图”工具,跟所见即所得的画图工具不同,它提供命令行的“画图”方式,在画图之前,先要把图形转换成对应的dot脚本,Graphviz会读取该脚本,解析并绘制。Graphviz适合把结构化信息表示成抽象的图表,所以在网络,软件工程等领域都有广泛的运用。
下面是官方文档的一个2叉搜索树的例子,可以一窥dot语言的简洁,和最终生成图形的优美。
//
// bs.gv
//
// Created on 24-09-2014 by root
//
digraph bs {
node [shape = record,height=.1];
node0[label = "<f0> |<f1> G|<f2> "];
node1[label = "<f0> |<f1> E|<f2> "];
node2[label = "<f0> |<f1> B|<f2> "];
node3[label = "<f0> |<f1> F|<f2> "];
node4[label = "<f0> |<f1> R|<f2> "];
node5[label = "<f0> |<f1> H|<f2> "];
node6[label = "<f0> |<f1> Y|<f2> "];
node7[label = "<f0> |<f1> A|<f2> "];
node8[label = "<f0> |<f1> C|<f2> "];
"node0":f2 -> "node4":f1;
"node0":f0 -> "node1":f1;
"node1":f0 -> "node2":f1;
"node1":f2 -> "node3":f1;
"node2":f2 -> "node8":f1;
"node2":f0 -> "node7":f1;
"node4":f2 -> "node6":f1;
"node4":f0 -> "node5":f1;
}
生成的图形:

我常用VIM来编辑文件,今天要介绍的是在VIM上编辑dot脚本的插件:wmgraphviz.vim,它提供如下的功能:
- 语法高亮
- 代码补全/Snippet support
- 实时编辑查看
- Quickfix window for errors and warnings
他的安装和使用都很简单,不需要过多的配置,具体参看这里。
下面是在我电脑上实时编辑dot文件的截图:

在VIM下编辑dot文件,执行 :w 保存,左边的图表就会实时更新。
相关资源:
http://abruzzi.iteye.com/blog/433278
http://abruzzi.iteye.com/blog/429042
http://www.graphviz.org/
https://github.com/wannesm/wmgraphviz.vim
浙公网安备 33010602011771号