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