← Vim道場

範囲を選んで操作する

ここまでは「操作してから範囲を指定する」形でした。ビジュアルモードはその逆で、先に範囲を選んでから操作します。選択中は範囲が色で見えるので、どこまで消えるか分からないときに確実です。

第4章 範囲を扱うレッスン 20 / 36

先に操作か、先に範囲か

dw は「消す」を決めてから「単語1つ分」を指定する形、vwd は「単語1つ分」を選んでから「消す」を決める形です。結果は同じになります。

慣れてくると dw のほうがキーが少なく速いのですが、範囲が複雑で一発で言い当てにくいときや、消える範囲を目で確かめてから実行したいときはビジュアルモードが確実です。両方使えると詰まりません。

3つ目のビジュアルモード

文字単位の v、行単位の V のほかに、矩形(長方形)で選ぶ Ctrl-v があります。複数行の同じ桁をまとめて消したり、行頭に同じ文字を一括で挿入したりできます。

選択中にもう一度同じキーを押すと選択を解除できます。Esc でも抜けられます。

選ぶ向きを変える o

選択している最中に o を押すと、カーソルが範囲の反対側の端へ移ります。始点を1文字ずらして選び始めてしまったときに、いったん抜けて選び直さずに済みます。

範囲を広げていて「反対側をもう少し伸ばしたい」と思ったときにも使えます。選択を作り直すよりキーが少なくて済みます。

ビジュアルモードでしか使わないキー

選択中は、ノーマルモードとは意味の違うキーがいくつかあります。U は選択範囲を大文字に、u は小文字にします。J は選んだ行をまとめて1行につなぎ、> < は選んだ行の字下げを変えます。

ノーマルモードの u は取り消しなので、選択したまま u を押して驚くことがあります。ビジュアルモードに入っているかどうかは、画面の下の表示で確かめられます。

選んだ範囲にコマンドを流す

選択中に : を押すと、コマンドラインに :'<,'> という範囲があらかじめ入った状態で始まります。ここに続けて s/foo/bar/g と書けば、選んだ範囲だけを置換できます。

ファイル全体を :%s で置換すると触りたくない箇所まで変わってしまう、という場面でこの形が効きます。第6章の置換とグローバルコマンドは、この範囲指定と組み合わせて使うことが多くなります。

このレッスンで扱うキー

キー動き
v文字単位で選ぶ
V行単位で選ぶ
d選んだ範囲を削除
y選んだ範囲をコピー

関連記事

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