LoginSignup
41

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-04-20

スクリーンショット 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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41