便利な機能
対応するタグに移動
()
、{}
、[]
など、括弧を表す記号の上で%
をタイプすると、対応する括弧に移動させることができますが、matchit
を有効にすれば、HTML
のタグやRuby
のdef...end
なども%
で移動出来るようになります。
以下を.vimrc
に書くことでmatchit
を有効化出来ます。
.vimrc
if!exists('loaded_matchit')
runtime macros/matchit.vimendif
テキストオブジェクト
テキストオブジェクト
はテキストのまとまり(オブジェクト)を表すコマンドのことで、オペレーター
と組み合わせることでその範囲に対して操作を行うことが出来ます。
このテキストオブジェクトですが、HTML
のタグを表すものもあって、<p>vim</p>
というコードがカーソル行にあった場合、
テキストオブジェクト | 該当範囲 |
---|---|
at | <p>vim</p> |
it | vim |
になります。1
そして、オペレーターと組み合わせて、ノーマルモード時に実行すると以下のような操作が出来ます。
オペレーター+テキストオブジェクト | 操作 |
---|---|
cat | <p>vim</p> を変更 |
cit | vim を変更 |
dat | <p>vim</p> を削除 |
dit | vim を削除 |
yat | <p>vim</p> をヤンク |
yit | vim をヤンク |
プラグイン
vim-textobj-ruby
Ruby
のブロックを対象にするテキストオブジェクトr
を追加します。
vim-textobj-userが必要です。
vim-smartinput-endwise
Ruby
のdef...
やif...
を入力して、Enter
を押すとend
を自動入力します。
vim-smartinputが必要です。
unite-rails
Rails
のModel
やView
、Controller
のファイルを一覧表示して選択できます。
uniteが必要です。
a
で始まる場合はselect "a"n object
(オブジェクト自体を選択)、i
で始まる場合はselect an "inner" object
(オブジェクトの内側を選択)を表しています。 ↩