Edited at

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

More than 3 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