有没有办法在 Vim 中删除某些内容而不将其移动到寄存器中?

有没有办法在 Vim 中删除某些内容而不将其移动到寄存器中?

我经常想在 Vim 中删除某些内容而不将其移动到寄存器中。有没有什么方法可以做到这一点?我发现有时必须明确指定寄存器"a有点麻烦。

答案1

听起来你实际上在这里问两个相关的问题:

  1. 您想要删除文本而不让它出现在任何寄存器中
  2. 您希望能够指定除"

第一个是可以做到的,只要使用寄存器_,也就是所谓的“黑洞”寄存器,来代替类似a寄存器的东西就可以了。例如:"_dd

据我所知,第二个是无法做到的。

:help registers

答案2

你总是可以做这样的事情:

nnoremap d "_d
vnoremap d "_d

但我不推荐这样做:Vim 的默认设置应该保持原样。

而不是"_d,我使用这些映射来删除到黑洞寄存器中:

nnoremap <leader>d "_d
vnoremap <leader>d "_d

虽然这只是短了一个键,但它比覆盖 Vim 默认值要好。

当我需要多次粘贴某些内容时,我会使用这个映射:

vnoremap <leader>p "_dP

就像这样:

10 yank something
20 select something else
30 paste over it
40 GOTO 20

相关内容