← Vim道場

中身をまとめて狙う

ここまでは「カーソルからどこまで」で範囲を決めてきました。テキストオブジェクトは「いま囲まれているもの」を単位にするので、単語の途中にいても、カッコのどこにいても、その中身をまるごと指定できます。先頭までカーソルを動かす手間が消えます。

レッスン 10 / 17

i と a の対

テキストオブジェクトは i(inner・中身だけ)か a(around・囲みも含む)に、対象を表す1文字を続けて書きます。iw なら単語、i" なら引用符、i( ならカッコです。

この2文字はオペレータの後ろに置くもので、単独では使えません。d c y のどれと組み合わせても同じ範囲になるので、覚える対象は「範囲の指定の仕方」だけで済みます。

なぜ cw より ciw なのか

cw はカーソルから右だけを消すので、単語の途中で押すと前半が残ります。そのため cw を使うには先に b などで単語の先頭へ戻る必要があります。

ciw は単語のどこにいても同じ結果になるので、移動の手間が消えます。カーソル位置を意識しなくてよくなるぶん、考えることが1つ減るのが大きな利点です。

ほかの対象

ここで扱った以外にも、タグ(it / at)、段落(ip / ap)、文(is / as)などがあります。プラグインを入れると対象を自分で増やすこともできます。

この練習ページでは単語・引用符・カッコの3種類だけを扱っています。まずはこの3つが手に馴染めば、実際の編集のほとんどは間に合います。

このレッスンで扱うキー

キー動き
ciw単語を書き換え
daw単語を空白ごと削除
ci"引用符の中身を書き換え
ci(カッコの中身を書き換え

関連記事

レッスン一覧へ戻る