Vim Advent Calendar 2013 : Vim で Haml を書くときに quickrun.vim を利用したらちょー捗った話

この記事は Vim Advent Calendar 2013 69日目の記事になります。
最近、Vimhaml を書く機会があったのですが、quickrun.vim を利用したら haml を書くのがちょー便利になったのでまとめておきます。

[HTML を Haml に変換する]

Haml を書いている時に HTML のコードから Haml のコードに変換したいと思うことがあると思います。
そんなときは HTML2Haml を利用するとよいでしょう。
gem でインストールすれば使用できるようになります。

$ gem install html2haml


また、次のようにして quickrun.vim を利用すれば、バッファの HTML や選択した範囲の HTML を Haml のコードに変換して出力することができます。

" HTML のデフォルトの :QuickRun を html2haml に設定
let g:quickrun_config = {
\   'html' : {
\       "type" : "html/haml"
\   },
\   'html/haml' : {
\       "command" : "html2haml"
\   },
\}

[選択した HTML のコードを Haml に置き換える]

上記の場合は Haml に変換した結果をバッファへと出力していますが、そうではなくて選択した範囲を直接 Haml のコードへと置き換えたいですね。
そういう場合は quickrun-outputter-replace_region を使用すれば実現する事ができます。

let g:quickrun_config = {
\   'html' : {
\       "type" : "html/haml"
\   },
\   'html/haml' : {
\       "command" : "html2haml"
\   },
\   'html/haml_repace' : {
\       "outputter" : "error",
\       "outputter/success" : "replace_region",
\       "outputter/error"   : "message",
\       "outputter/message/log"   : 1,
\       "runner" : "system",
\       "type" : "html/haml"
\   },
\}

" 選択した範囲を Haml に置き換えるためのマッピング
vnoremap <leader><leader>rh :QuickRun html/haml_repace<CR>


これで選択した範囲を Haml に変換することが出来ました。
quickrun-outputter-replace_region については上記の記事を参照して下さい。
Haml を書いていると『HTML のサンプルコードを Haml に書きなおす必要が…』と思うことが多いのでこれでだいぶ効率よくコーディングすることができそうです。