perltidyがらみでvimのコマンドとか調べました

http://subtech.g.hatena.ne.jp/sekimura/20060507/p1
vimで保存するときにperltidyを実行する方法を教えていただいたのでやってみた。
というかあまりに初心者なのでまずコマンドの意味がわからなかったので調べるところから。

au BufWritePost *.pl :%! perltidy

auはautocmdの略でBufWritePostはバッファをファイルに書き込んだ後で*.plは拡張子がplのファイルで:以降がコマンドで%で全行が対象(特定行なら1,27とか)で!以降がシェルのコマンドでperltidyを実行。
たしかにうざいかも。保存しただけなのに勝手に変わっちゃうのって想像以上に変な感じだ。

map ,ptv <Esc>:'<,'>! perltidy<CR>

mapはキーを割り当てる役割でここでは,ptvに割り当てでノーマルモードで:以降を実行する。'<,'>はヴィジュアルモードの選択範囲を選択する(Vim完全バイブルのP117)。で、そこを対象にしてperltidyを実行。,ptvって打つのはヴィジュアルモードで範囲選択した後で。,ptvってすばやく打たないと、例えばpで止まってるとフツーにペーストするので注意。
ふむ。
さらに。
http://subtech.g.hatena.ne.jp/sekimura/20060412/p1
を見てみるとファイル全体に対して実行ってのもある。

map ,pt <Esc>:%! perltidy<CR>

さっきのやつとほぼ同じで%だから対象がファイル全体になる。

    • -

なるほど。
というわけで自動で実行とかじゃなくてこっちから指定したときに実行のほうがやっぱりいいですね。
そしてvimの奥は深い。
もっと勉強しなければ。
ありがとうございました。