我经常想在 Vim 中删除某些内容而不将其移动到寄存器中。有没有什么方法可以做到这一点?我发现有时必须明确指定寄存器"a
有点麻烦。
答案1
听起来你实际上在这里问两个相关的问题:
- 您想要删除文本而不让它出现在任何寄存器中
- 您希望能够指定除
"
第一个是可以做到的,只要使用寄存器_
,也就是所谓的“黑洞”寄存器,来代替类似a
寄存器的东西就可以了。例如:"_dd
据我所知,第二个是无法做到的。
答案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