skip to content
barorin&?

NeoVimでdは純粋な削除にして、切り取りはxにするキーマップをluaで書いてみる

/ 1 min read

Table of Contents

はじめに

ご存じの通り、Vimのdコマンドは純粋な削除ではなく、切り取りと同じ挙動になってしまいます。 ブラックホールレジスタ_をつければいいのですが、面倒なのでキーマッピングを変えたいと思います。

方法

以下の設定で、d, c, sで削除した文字は無名レジスタに登録されないようになり、 xは切り取り専用になります。

ファイル場所は、WindowsならC:\Users\hoge\AppData\Local\nvim\lua\config、 Linuxなら~/.config/nvim/lua/configに置いています。

  • keymap.lua
local keymap = vim.keymap
-- 削除系キーは削除のみにし、xを切り取りにする
keymap.set('n', 'd', '"_d')
keymap.set('n', 'D', '"_D')
keymap.set('x', 'd', '"_d')
keymap.set('n', 'c', '"_c')
keymap.set('n', 'C', '"_C')
keymap.set('n', 's', '"_s')
keymap.set('n', 'S', '"_S')
keymap.set('x', 'c', '"_c')
keymap.set('x', 'C', '"_C')
keymap.set('n', 'x', 'd')
keymap.set('n', 'xx', 'dd')
keymap.set('n', 'X', 'D')
keymap.set('x', 'x', 'd')