Vimでのフローチャートの作成と保守


7

以下は、Vimでウェブログの投稿用に作成した簡単なテキストベースのフローチャートです。

               [DNS request]
                    |
                    |
                 [Adsuck]
                    |
                    |
                 <block?>
                    |
                   / \
                  /   \
              <YES>    \-> <NO> --> [unbound lookup]
                |
                v
            [noop.py]
                |
                |
        <Have noop script?>
                |
               / \
              /   \
           <YES>   \-> <NO> --> [serve empty GIF]
             |
             v
    [serve noop script]

問題は、かなり骨が折れることです。1つのことを変更し、すべてを変更する必要があります。

これを簡単にするために何かできることはありますか?私は本当にフローチャートの上記レイアウトを気にしないようであればフローチャート-yのそれの罰金に見えるように、。フローチャートは、上記のように垂直を好んでいますが、私にとっては水平でもかまいません。

回答:


14

ASCIIアートを直接操作するためにvimを使用するのではなく、vimを使用してグラフを定義するファイル形式を編集してみませんか?

ドット形式はグラフを表すために、かなりコンパクトな方法です。例で概説したグラフの大まかな近似は次のようになります。

digraph {
  start -> adsuck;
  adsuck -> block;
  block -> noop[label="yes"];
  block -> unbound[label="no"];
  noop -> serve_noop[label="yes"];
  noop -> serve_empty[label="no"];
}

次に、PerlのGraph :: Easyモジュールを使用して、グラフをASCIIテキストを含むさまざまな出力形式にレンダリングできます。HTMLページ、SVG、PNGなども生成できます。

Perlがない場合はインストールし、Graph :: Easyをインストールします(詳細についてはcpanm Graph::Easyこちらを参照してください)。これにより、graph-easyコマンドラインツールが提供されます。作成yourgraph.dotまたは何でも(vimにはすでにドット形式の構文知識があり、関連するプラグインもあります)。

実行するgraph-easy --as ascii yourgraph.dot output.txtと、次のようなものが得られます。

                      +-------------+
                      |    start    |
                      +-------------+
                        |
                        |
                        v
                      +-------------+
                      |   adsuck    |
                      +-------------+
                        |
                        |
                        v
+------------+  no    +-------------+
|  unbound   | <----- |    block    |
+------------+        +-------------+
                        |
                        | yes
                        v
+------------+  yes   +-------------+
| serve_noop | <----- |    noop     |
+------------+        +-------------+
                        |
                        | no
                        v
                      +-------------+
                      | serve_empty |
                      +-------------+

それほどきれいではありませんが、すべてのASCIIアートを操作するよりも、ドットファイルを編集する方がはるかに簡単です。この記事は、ドット形式を使用したフローチャートの構築に関するかなり良い記事であることがわかりました。


-1

DrawItプラグインを試してみてください

DrawItは、左、右、上、下、および両方の傾斜に沿って線を描くことができるプラグインです。オプションで、行を矢印で「キャップ」できます。水平、垂直、傾斜、および交差の文字を、希望する文字に変更できます。


これを使用してフローチャートを作成および保守するにはどうすればよいですか?
Martin Tournoij、2015

ASCIIアートを描画することを目的としているため、リファクタリングが必要な場合の苦痛を軽減できます。しかし、@ JoshPetrieはおそらくドットを使用する方が良いでしょう。
Quincy Bowers

2
プラグイン推奨の回答に関するポリシーを読み、詳細を追加してください。プラグインを構成し(必要な場合)、アクティブ化する方法の具体例が参考になります。
200_success
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.