Vim 如何阻止c)更改复制到粘贴缓冲区?
我想做的一件常见的事情是猛拉Vim 如何阻止c)更改复制到粘贴缓冲区?,vim,Vim,我想做的一件常见的事情是猛拉“一些文本”,然后用它来更改“一些其他文本” 因此,我将光标移到一些文本,然后用yi“抓取一些文本。现在如何替换一些其他文本?如果我这样做di”,则我的复制粘贴寄存器会被一些其他文本覆盖。我知道我可以使用命名寄存器,但我的问题是我的肌肉记忆已经完成了yi”。有什么方法可以覆盖y或d的默认行为吗?你可以重新映射d键来执行黑洞寄存器”的删除操作: 您需要使用一个noremap版本,这样它就不会进入无限循环。Vim中的“未命名”寄存器不是实寄存器,而是指向上次使用的寄存器的
“一些文本”
,然后用它来更改“一些其他文本”
因此,我将光标移到一些文本,然后用
yi“
抓取一些文本
。现在如何替换一些其他文本
?如果我这样做di”
,则我的复制粘贴寄存器会被一些其他文本
覆盖。我知道我可以使用命名寄存器,但我的问题是我的肌肉记忆已经完成了yi”
。有什么方法可以覆盖y
或d
的默认行为吗?你可以重新映射d
键来执行黑洞寄存器”的删除操作:
您需要使用一个noremap版本,这样它就不会进入无限循环。Vim中的“未命名”寄存器不是实寄存器,而是指向上次使用的寄存器的指针。它甚至在Vim的源代码中作为指针实现(或者更准确地说,作为寄存器数组的索引)
因此,被拖动的文本不会被“delete”命令真正覆盖,因为默认情况下“yank”使用寄存器“zero”,而“delete”使用“one”或“减号”
因此,您总是可以通过按“0p”来放置最后一个拖动的文本。您可以将d
重新映射到”\u d
。非常感谢-我已将p映射到“0p
,我现在是一只快乐的兔子。教我SO帖子的kbd标签的额外荣誉:-)
nnoremap d "_d