VIM:有没有办法使vim在删除文本时不进行复制?

7
我喜欢vim,但我使用xd删除文本时,它会复制已删除的文本到缓冲区/剪贴板,这是我遇到的问题之一。
更具体地说,当我复制了一些文本,然后需要删除第二个文本块以便在粘贴第一个文本之前,请问有没有一种命令可以删除文本而不会复制它?如果没有,是否有自定义命令可以实现这一点呢?
谢谢!

1
可能会有,但你为什么要这样做呢?我发现将删除的项目移动到缓冲区非常方便(我已经在我的生活中无数次地使用了ddp)。 - acushner
1
@acushner 有几次,我想复制一些东西并将其粘贴到其他地方,但是发现需要删除某些妨碍的内容。虽然可以将需要删除的部分高亮选择并进行覆盖,但如果需要删除的不止是连续的部分怎么办?你需要先将剪贴板上的内容粘贴到任意位置,然后依次删除所需的每个部分,再重新复制以完成粘贴。 - 13ruce1337
@acushner 我同意这个观点,但是如果你不小心删除了一些内容,u(撤销)可以起到这个作用,或者使用yyp来复制和粘贴。具体来说,当我复制了一些文本,然后需要删除另一个文本块以便粘贴第一个文本时,这就很烦人了。感谢您的提问,我会澄清我的问题 :) - Kyle Challis
@13ruce1337 没错,你比我快了!:) - Kyle Challis
好的观点,但在这些情况下,我总是通过可视模式将其放置在我想要替换的连续区域上。如果有多个不连续的区域,这是无关紧要的,因为它会减少到先粘贴第一个,然后删除第二个(一直到第n个...)。 - acushner
2个回答

13
使用黑洞寄存器
"_d

在vimrc中设置自己的映射,例如,d,可以节省一些打字时间。


5

解决问题的方法不止一种。Vimsha已经提出了一种。

另一种解决问题的方法是将重要文本复制到命名寄存器中。比如说你要删除一个地方的5行文本并将它们复制到另一个地方。

"a5dd会删除5行文本并将其保存在a寄存器中。

进行各种其他操作。

现在移动到你想要复制它们的位置。

"ap或者"aP将从a寄存器复制5行文本到当前位置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接