Vimで.dotファイルの保存と同時にSVGへ変換して、さらにそのSVGからPNGに変換
if has("autocmd") autocmd BufWritePost *.dot silent :!"c:Program Files\Graphviz2.20\bin\dot.exe" -Tsvg <afile> > "<afile>:p.svg" && "C:Documents and Settings\baba\My Documents\bin\inkscape\inkscape.exe" "<afile>:p.svg" --export-png="<afile>:p.png" endif
私が今やってるのが Windows でPATH通してないので、コマンド名のところがアレですが、Unix の人は適宜置き換えてください。
出力されるSVGとPNGのファイル名が、*.dot.svg, *.dot.png になってるのは、
試してないけど、Unix の人はこうなると思う:
if has("autocmd") autocmd BufWritePost *.dot silent :!dot -Tsvg <afile> > <afile>:r.svg && inkscape <afile>:r.svg --export-png=<afile>:r.png endif
すっきりだね。SVG → PNG 変換は inkscape じゃなくて、rsvg 使った方が良いかもね。
あとはバックグラウンド実行にしたい。保存のたびに待たされるのがいやん。Vimスクリプトエキスパート求む。
追記:
silent 加えるだけでよかった。あとはコマンドプロンプトが一瞬立ち上がるのをどうにかしたい。引き続きおしえて君。