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 加えるだけでよかった。あとはコマンドプロンプトが一瞬立ち上がるのをどうにかしたい。引き続きおしえて君。
CVS でプロクシを通す
Debian の CVS って proxy パッチ当たってるんだ。ソースから作るのが面倒くて cvs 使ってなかった。今の所来てから初。
cvs -z3 -d ":pserver;proxy=proxy.example.jp;proxyport=9999:anonymous@cvs.sourceforge.net:/cvsroot/vim" co -P vim7
「"」(ダブルクォート)で括るのを忘れて(途中セミコロンがあるのでシェルが折っちゃう)、時間を無駄にした。orz
プロクシが使えるかの確認方法:[cvs-ml 1397] Re: Anonymous CVS pserver¤òproxy ·Ðͳ¤Ç»ÈÍѤ¹¤ë¾ì¹ç
面倒くさいので、早く Subversion になって欲しい。
ウィンドウサイズの変更
水平分割(CTRL-W s) 時に縦のサイズを変更する方法は知ってたのだけれども、垂直分割(CTRL-W v) 時に横幅を変更する方法が今日までわからなかった。
:help の「|usr_08.txt| Splitting windows」じゃなくて「|windows.txt| commands for using multiple windows and buffers」にあったのね。
- 現在のウィンドウ高を減らす
- CTRL-W -
- 現在のウィンドウ高を増やす
- CTRL-W +
- 現在のウィンドウ幅を減らす
- CTRL-W
- 現在のウィンドウ幅を増やす
- CTRL-W >
もちろん、-+<>の前には増減する(行|幅)数を指定できる。
filetype 変更
なんかすぐ忘れるのでメモ。
拡張子が無く且つ shebang 行が無かったりすると、ファイルタイプの認識に失敗し syntax や highlight が効かない事がある。さもありなん。
そーゆうとき、一時しのぎに変更する方法:
:set ft=ruby
ft は短縮名。正式には filetype。
しょっちゅう編集するならファイル末尾のコメント行にコマンドを埋め込む。
# vim: set filetype=ruby
具体的には ~/.irbrc とかね。
正規表現 - 最小一致
苦手なんですよ vim の正規表現。() にエスケープが要るトコとかなんか最悪。今日は最小マッチがわからなかったので調べました。
<tr><td bgcolor="#ffc0cb">0-0</td><td bgcolor="#ffc0cb">0-1</td><td>0-2</td></tr> <tr><td>1-0</td><td>1-1</td><td>1-2</td></tr> <tr><td bgcolor="#ffc0cb">2-0</td><td>2-1</td><td bgcolor="#ffc0cb">2-2</td></tr>
といった<tr hoge=〜>や<td fuga=〜>や</td>や</tr>タグにマッチさせるには、<[\/]*\t[rd].\{-}> なわけです。.*? で[はてな]使いたし。/ の有る無しに ?(0もしくは1文字マッチ)が使えないのもつらい。[はてな]使わせろ。
今日のポイント:
- \{-}
- 最小一致