← Vim道場

矩形で選んでまとめて編集する

文字単位でも行単位でもなく、長方形に選ぶモードがあります。複数行の同じ桁をまとめて消したり、行頭に同じ文字を一気に足したりできるので、似た形の行が並んでいるときに効きます。

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

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

文字単位の v、行単位の V に続く3つ目が矩形選択(Ctrl-v)です。選んだ範囲が長方形になるので、複数行の「同じ桁」をまとめて扱えます。

この練習ページでは Ctrl-v をVimのキーとして受け取っているので、ページ上ではブラウザの貼り付けが効きません。実機のVimでも同じキーです(Windowsでは貼り付けと衝突するため Ctrl-q が割り当てられていることがあります)。

入力は1行目にしか見えない

IA で入力している最中、画面に出るのは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直前の選択を復元

関連記事

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