如何停止c)hange复制到粘贴缓冲区?

时间:2020-07-01 11:25:12

标签: vim

我想做的一件事是拉"some text",然后用它来更改"some other text"

因此,我将光标移至某些文本,然后yi"来抓取some text。现在如何替换some other text?如果我执行di",那么我的复制粘贴寄存器将被some other text覆盖。我知道我可以使用命名寄存器,但是我的问题是我的肌肉记忆已经完成yi"。有什么办法可以覆盖yd的默认行为?

2 个答案:

答案 0 :(得分:5)

Vim中的“未命名”寄存器不是真实的寄存器,而是指向最后使用的寄存器的指针。它甚至在Vim的源代码中作为指针(或更确切地说,作为对寄存器数组的索引)实现。

因此,选中的文本不会真正被“删除”命令覆盖,因为默认情况下,“选中”使用寄存器“零”,而“删除”使用“一”或“减”。

因此,您始终可以通过按 0 p 来放置最后被拉紧的文本。

答案 1 :(得分:1)

您可以重新映射d键以将其删除到黑洞寄存器"_中:

nnoremap d "_d

您需要使用noremap版本之一,以免陷入无限循环。

相关问题