删除命令会拉出已删除的文本,但这不是我期望的行为。我只想删除文本而不覆盖我拉出的文本。是否可以使用配置更改默认行为?PS:我不想使用其他命令来实现它。
答案1
是的,d
而且:d[elete]
可能会造成混淆,因为它们的行为类似于“剪切”。
为了d
真正地删除,必须指定“黑洞寄存器”(:help "_
):
"_d
您可以映射d
到"_d
:
nnoremap d "_d
但我会保留原来的命令。
答案2
正如 romaini 所说,d 的原始命令工作得很好,我不建议更改它。
不过你可以"_d
使用<leader>d
在我的例子中,leader 键是,
,所以不用按,"_d
我会写,d
" shortcut to delete in the black hole register
nnoremap <leader>d "_d
vnoremap <leader>d "_d
" shortcut to paste but keeping the current register
vnoremap <leader>p "_dP