Enterキーを押すだけで近くのテキストオブジェクトを選択してくれる「wildfire.vim」

@kasumiiです。こんにちは。

Vimのテキストオブジェクトをもっと使いこなしたいなーと思いつつ、wildfire.vimという便利なプラグインに手を出してしまいました。

gcmt/wildfire.vim · GitHub

上記ページのGIFアニメがとてもわかりやすいです。

わたしはNeoBundleを使っているので、.vimrc に1行追加してインストール。

NeoBundle 'gcmt/wildfire.vim'

使い方はすごく簡単。基本的にバシバシEnterキーを押していくだけでそのへんにあるテキストオブジェクトを次々と選択してくれます。ありがたい。

・ノーマルモードでEnterを押すと一番近くのテキストオブジェクトを選択
・もう一度Enterを押すとさらにその外側のテキストオブジェクトを選択
2 + Enterで2番めのテキストオブジェクトを選択

勢い余ってEnterキーを押しすぎちゃっても安心。

・行きすぎちゃったらBackspace(MacならDelete)でひとつ前のテキストオブジェクトに戻る

キーマッピングを変えたいときは以下。

let g:wildfire_fuel_map = "<ENTER>"
let g:wildfire_water_map = "<BS>"

デフォルトで選択されるテキストオブジェクトは次の7つになっているので、好きなものを追加したり削除したり。テキストオブジェクトについては:help text-objectsを参照。

let g:wildfire_objects = ["i'", 'i"', "i)", "i]", "i}", "ip", "it"]

ファイルタイプごとにどのテキストオブジェクトを選択するかも決められます。

let g:wildfire_objects = {
    \ "*" : ["i'", 'i"', "i)", "i]", "i}", "ip"],
    \ "html,xml" : ["at"],
\ }

カスタマイズの仕方とか、以下のブログ記事が参考になりました。ありがとうございます。

【参考】wildfire.vimでVim力を下げる – Weblog – Hail2u.net

確かにこのプラグイン、便利すぎてVim力が下がりますね\(^o^)/