空行を足す
空行を1つ入れたいだけなのに <kbd>o</kbd> を押すと挿入モードに入るので、必ず <kbd>Esc</kbd> で戻ることになります。Neovim 0.11からは、ノーマルモードのまま空行だけを足すマッピングが標準で入っています。
o / O との違い
o と O は「空行を作ってそこに書き始める」キーなので、空行だけが欲しいときは 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に入ったのはその一部なので、両方を使う人はプラグイン側で揃えておくと迷いません。
このレッスンで扱うキー
| キー | 動き |
|---|---|
| [␣ | 上に空行を足す |
| ]␣ | 下に空行を足す |