← Vim道場

空行を足す

空行を1つ入れたいだけなのに <kbd>o</kbd> を押すと挿入モードに入るので、必ず <kbd>Esc</kbd> で戻ることになります。Neovim 0.11からは、ノーマルモードのまま空行だけを足すマッピングが標準で入っています。

第8章 Neovimだと違うところレッスン 35 / 36

o / O との違い

oO は「空行を作ってそこに書き始める」キーなので、空行だけが欲しいときは Esc で戻る手間が付いてきます。しかも o はカーソルが新しい行へ移るので、元の行で作業を続けたいときは戻る操作も要ります。

ここで使ったマッピングは、行を足すだけでカーソルを動かしません。「あとで何か書く」のではなく「間を空けたい」ときのためのものだと考えると使い分けが決まります。

角カッコの仲間

Neovim 0.11では、[] で始まるマッピングがまとめて標準に入りました。空行のほかにも、Quickfixリストの前後([q / ]q)、バッファの前後([b / ]b)、診断の前後([d / ]d)などが同じ形で並んでいます。「[ が前、] が後ろ」という向きだけ覚えておけば、対象が変わっても同じ感覚で押せます。

この練習ページはバッファが1つしか無いので、空行の2つだけを扱っています。ほかのものは実際のNeovimで :help [ から辿れます。

回数を付けてまとめて空ける

3]␣ のように前に数字を付けると、その数だけ空行が入ります。区切りを大きく取りたいときに、同じキーを何度も押さずに済みます。

入れすぎたときは u で1回ぶんまとめて戻ります。回数を含めて1つの変更として記録されるためです。

カーソルが動かない利点

このマッピングは行を足すだけでカーソルの位置を変えません。そのため、直前にやっていた操作の続きをそのまま打てます。o を使うと挿入モードに入って行も移るので、元の作業に戻るまでに Esc と移動が挟まります。

小さな差に見えますが、コードの間隔を調整しているときのように何度も繰り返す作業では、この2手が積み上がります。目的が「書く」ではなく「空ける」ときは専用のキーを使う、という考え方です。

Vimでも同じキーを使いたいとき

Neovim 0.11で標準に入ったこれらのマッピングは、もともと vim-unimpaired というプラグインが提供していたものです。Vimでも同じプラグインを入れれば [␣]␣ がそのまま使えます。

このプラグインは空行以外にも、行の入れ替え([e / ]e)や設定の切り替え(yo で始まる一群)など、対になった操作をまとめて提供しています。Neovimに入ったのはその一部なので、両方を使う人はプラグイン側で揃えておくと迷いません。

このレッスンで扱うキー

キー動き
[␣上に空行を足す
]␣下に空行を足す

関連記事

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