Help us understand the problem. What is going on with this article?

MacでVimでPlantUMLの編集環境を作る

More than 5 years have passed since last update.

スクリーンショット 2015-04-20 19.56.58.png

今でもクラス図やパッケージ図などはAstahなどを利用することが多いですが、シーケンス図に関して言えば圧倒的にPlantUMLが便利だと感じています。シーケンス図は、レイアウトに関しては機械的なレイアウトが有効的なことが多いので、こっちの方が便利ですね。

シンタクスハイライトだけならやることは簡単、vimにaklt/plantuml-syntaxを導入するだけです。

NeoBundleを利用しているのであれば、

" pluntumlのシンタクスハイライトと:makeコマンド
NeoBundle "aklt/plantuml-syntax"

を書いて:NeoBundleInstallでとりあえず、 *.pu か *.uml か *.plantuml でシンタクスハイライトが効くようになります。

あとは:makeで画像の出力と表示をするようにしましょう。
まず、$HOME/local/lib/plantuml.jarを置いておき、

#!/bin/bash
java -jar $HOME/local/lib/plantuml.jar -tpng $@
open ${@%%.*}.png

上記のシェルスクリプトを$HOME/dotfile/plantumlというファイル名として実行権限を付けおいておきましょう。そして、.vimrc

" plantumlスクリプトの設定
let g:plantuml_executable_script="~/dotfiles/plantuml"

以上を記述しておけば:makeを実行することで、画像を出力し、.pngファイルの拡張子が関連付けられたビュアーで自動的にその画像を開いてくれるようになります。

スクリーンショット 2015-04-20 20.05.28.png

以上のような感じでビュアーで開かれます。とても便利です。

なお、他の開発環境に関しては、こちらにもまとまっていますが、ちょっとしたものを書くときにはvimが大変便利です。

追伸

以上の例のために書いたシーケンス図を張っておきます。あと、この設定がされたdotfilesはこちらに上がっています。

@startuml
title 家計簿アプリの家計簿取得シーケンス

participant "ユーザー"

box "家計簿システム" #LightBlue
    participant "Play"
    participant "Redis"
    participant "MySQL"
end box

"ユーザー" -> "Play" : 家計簿を取得
"Play" -> "Redis" : ユーザーID、今月という時間をキーに取得
    alt キャッシュヒット
        "Play" <-- "Redis" : 家計簿情報または家計簿がないという情報
    else キャッシュミス
        "Play" <-- "Redis" : キャッシュされていないという情報
        "Play" -> "MySQL" : 家計簿取得
        "Play" <-- "MySQL"
        alt 家計簿情報あり
            "Play" ->> "Redis" : 非同期に\n家計簿情報を格納
        else 家計簿情報なし
            "Play" ->> "Redis" : 非同期に\n家計簿がないという情報を格納
        end
    end
"ユーザー" <-- "Play" : 家計簿情報または家計簿がないという情報
@enduml
sifue
N高等学校でプログラミングを教えているプログラマーで、学園のIT担当。「高校生からはじめる プログラミング」著者 ( https://www.amazon.co.jp/dp/4046019557/ ) 。 言語: Scala/JavaScript/Java ゲーム: LoL/フォトナ/クラロワ
https://www.soichiro.org/
dwango
Born in the net, Connected by the net.
https://dwango.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away