← Vim道場

消す範囲を指定する

dd で1行消せることは分かりました。Vimが強いのはここからで、d のあとに「どこまで」を移動のキーで渡せます。覚えた移動がそのまま削除範囲の指定になるので、キーの数だけ削除の種類が増えます。

第2章 文字を直すレッスン 7 / 36

オペレータ + モーション

d のように「何をするか」を決めるキーをオペレータ、w$ のように「どこまで」を決めるキーをモーションと呼びます。Vimの編集はこの2つの掛け算になっていて、オペレータ3つとモーション10個を覚えれば30通りの操作ができます。

だから前のレッスンで覚えた移動は、そのまま削除・コピー・書き換えの範囲指定として使い回せます。移動のキーを増やすことが、そのまま編集操作を増やすことになります。

D は d$ の短縮形

行末まで消す d$ は使用頻度が高いので、D という1キーの別名が用意されています。同じように Cc$Yyy です。

また、オペレータを同じ文字で2回続けると「1行まるごと」の意味になります。dd がそれで、ccyy も同じ規則です。

dw は行をまたがない

行の最後の単語の上で dw を押しても、次の行の先頭までは消えず、その行の末尾で止まります。w は本来なら次の単語の先頭まで進むモーションなので、そのまま適用すれば改行を巻き込むはずですが、Vimはオペレータと組み合わせたときだけこの例外を設けています。

行をまたいで消したい場合は、次の行に移ってから dd するか、第5章で扱う J で先に行を連結します。

モーションは移動のキーなら何でも渡せる

d の後ろに置けるのは w e $ だけではありません。第1章で覚えた Gf もそのまま使えて、dG はカーソル行からファイル末尾まで、df, は次のカンマまでを消します。d3j のように数字を挟むこともできます。

移動のキーを1つ覚えるたびに、削除・コピー・書き換えの3つが同時に増えるという構造になっています。Vimのキーを丸暗記ではなく組み合わせで覚えられるのはこのためです。

消す範囲に自信がないときは選んでから消す

どこまで消えるか読み切れないときは、第4章のビジュアルモードで範囲を選んでから d を押す方法があります。選択中は反転表示で範囲が見えるので、確認してから消せます。

慣れると d とモーションの組み合わせのほうが速くなりますが、入り組んだ範囲を扱うときは経験を積んだ人でもビジュアルモードを使います。どちらが正しいというものではありません。

このレッスンで扱うキー

キー動き
dw単語1つ分を削除
de単語の末尾まで削除
d$行末まで削除

関連記事

レッスン一覧へ戻るキーの逆引き一覧検定を受ける