← Vim道場
同じキーで動きが違うところ
Neovimには、Vimと同じキーなのに既定の動きが違うものがあります。設定を移してきたつもりでも動きがずれるのはここが原因なので、代表的な2つを実際に押して確かめます。
第8章 Neovimだと違うところレッスン 36 / 36
Y はなぜ変わったのか
Vimでは D が「行末まで削除」、C が「行末まで書き換え」なのに、Y だけが「行全体をコピー」でした。この不揃いを直したのがNeovimの既定で、Y は y$ になっています。行ごとコピーしたいときは yy を使います。
Vim側で同じ挙動にしたいときは nnoremap Y y$ を書きます。逆にNeovimでVimの挙動に戻したいなら vim.keymap.set('n', 'Y', 'yy') です。
Q はExモードから置き換わった
VimでQを押すと入るExモードは、コマンドを1行ずつ打ち続ける古いモードです。ほとんど使われないうえ、押し間違えて入ってしまうと抜け方が分からず戸惑う原因になっていました。Neovimではここに「最後に記録したマクロを再生」が割り当てられています。
@@ との違いは何を指すかです。@@ は最後に実行したマクロ、Q は最後に記録したマクロを再生します。記録した直後に流すなら、レジスタ名を打たずに済む Q のほうが速く済みます。
ほかにも既定が違うところ
このエディタでは扱えませんが、ほかにも Ctrl-l が検索ハイライトの解除を兼ねる、:substitute の結果がその場で見える(inccommand)、hlsearch や incsearch が最初から有効、といった違いがあります。Vimの .vimrc をそのまま持ってくると設定が重複するのはこのためです。
実機での確認は :help nvim-defaults が早く、変更の一覧は :help news にまとまっています。
このレッスンで扱うキー
| キー | 動き |
|---|---|
| Y | カーソルから行末までコピー |
| Q | 最後に記録したマクロを再生 |