IdeaVimでxキーで文字削除する際にレジスタを汚さないようにする
OSの機能(cmd + x
、cmd + v
)ではなくIdeaVimのdd
を使う場合に、移動先にゴミがあったのでx
キーで削除して、いざペーストしようとしたら、x
キーで削除したゴミが貼り付けられてしまった。「なんでだよムキーっ」とイラッとした経験を持つ人はきっと多いはずです。
そんなことにならないように、xキーで文字削除する際にレジスタを書き換えないようにする設定です。正確に言うと、IdeaVimではなくVimの設定の話ですけどね。
~/.ideavimrcを作成して以下の2行を書くだけ。
nnoremap x "_x
vnoremap x "_x
意味としてはノーマルモードとビジュアルモードにおいて、Xキーのキーマッピングを"_x
に書き換えるという意味です。
"_
とはなんぞやという話ですが、これはブラックホールレジスタという特殊なレジスタを表しています。Xキーのデフォルトの挙動は、1文字デフォルトのレジスタに移動するというものですが、この移動先をブラックホールレジスタに指定してやるという意味になります。