矩形で選んでまとめて編集する
文字単位でも行単位でもなく、長方形に選ぶモードがあります。複数行の同じ桁をまとめて消したり、行頭に同じ文字を一気に足したりできるので、似た形の行が並んでいるときに効きます。
3つ目のビジュアルモード
文字単位の v、行単位の V に続く3つ目が矩形選択(Ctrl-v)です。選んだ範囲が長方形になるので、複数行の「同じ桁」をまとめて扱えます。
この練習ページでは Ctrl-v をVimのキーとして受け取っているので、ページ上ではブラウザの貼り付けが効きません。実機のVimでも同じキーです(Windowsでは貼り付けと衝突するため Ctrl-q が割り当てられていることがあります)。
入力は1行目にしか見えない
I や A で入力している最中、画面に出るのは1行目だけです。残りの行に反映されるのは Esc を押した瞬間なので、途中で「効いていない」と思って中断しないでください。
選んだ範囲より短い行があるときは、A なら足りないぶんが空白で埋められます。$ で行末まで伸ばしておけば、長さの違う行でもそれぞれの末尾に入ります。
選び直したいとき
選択を解除したあとで「やっぱりさっきの範囲に」と思ったら gv です。直前の選択範囲がそのまま復活します。ビジュアルモードの種類(文字・行・矩形)も一緒に戻ります。
選択中に o を押すと、範囲の反対側の端にカーソルが移ります。選び始める位置を間違えたときは、これで伸ばす向きを変えられます(この練習ページでは扱っていません)。
矩形選択が向いている場面
桁が揃っている複数行に同じ手を入れるとき、矩形選択がいちばん短く済みます。行末にセミコロンをまとめて足す、先頭に # を付けてコメントアウトする、表の1列だけを消す、といった作業です。
逆に、桁が揃っていないなら向きません。行ごとに位置が違うものを扱うときは、第6章のマクロか置換のほうが確実です。矩形選択は「四角く切り取れるか」を先に考えてから使うと失敗しません。
c で列ごと書き換える
Ctrl-v で選んでから c を押すと、選んだ矩形が消えて挿入モードに入ります。打った内容は Esc を押した時点で全行に反映されます。I が「手前に足す」、A が「後ろに足す」なのに対し、c は「その列を差し替える」です。
変数名の接頭辞をまとめて変えるときのように、消してから打ち直したい場面ではこちらが向きます。
Ctrl-v が奪われているとき
Windowsの標準的な設定や、ターミナルの設定によっては Ctrl-v が貼り付けに割り当てられていて、Vimまで届かないことがあります。その場合は代わりに Ctrl-q が矩形選択に割り当てられています。
この練習ページはブラウザ上で Ctrl-v を受け取っているので、ページ上ではブラウザの貼り付けが効きません。ページの外で文章をコピーしてから貼りたい場合は、キーボードのキーを直接押して入力してください。
このレッスンで扱うキー
| キー | 動き |
|---|---|
| Ctrl-v | 矩形選択を始める |
| I | 選んだ左端に一括で入力 |
| A | 選んだ右端に一括で入力 |
| d | 選んだ長方形を削除 |
| gv | 直前の選択を復元 |