ふと、コンソール上でアスキーアートでフロー図を作成する方法ってあるのかなと調べてみたところ、vim以外だと2つほど見かけたので記述してみる。

1. groffを用いる

manページの作成などに用いられるgroffを用いることで、roffのフォーマットを使ってアスキーアートでフロー図を簡単に生成できるらしい。 以下、実行例。

blacknon@BS-PUB-UBUNTU-01:~$ cat ascii.roff
.PS
box "box1";
line
box "box2";
.PE
blacknon@BS-PUB-UBUNTU-01:~$ groff -T ascii -p ascii.roff | head -5
+------+     +------+
|      +-----|      |
| box1 |     |box2  |
+------+     +------+

blacknon@BS-PUB-UBUNTU-01:~$ groff -T ascii -p <(echo -e '.PS\nbox "box1";\nline\nbox "box2";\n.PE') | head -5
+------+     +------+
|      +-----|      |
| box1 |     |box2  |
+------+     +------+

2. graph-easyを用いる

perlで書かれているツールで、graph-easyというコマンドを使うことで、特定のフォーマットで記述された内容をパイプで渡してアスキーアートのフローチャートを生成させることができるようだ。 Ubuntuであればaptからインストールが行える。

blacknon@BS-PUB-UBUNTU-01:~$ echo "[box1] -- test --> [box2-1],[box2-2]" | graph-easy
+--------+  test   +--------+
|  box1  | ------> | box2-1 |
+--------+         +--------+
  |
  | test
  v
+--------+
| box2-2 |
+--------+

もっと細かく指定可能で、 日本語だとこちら、及びこちらの情報が参考になるので、細かい使い方についてはそちらを参考にするといいだろう。