在 VIM 中复制/粘贴而不覆盖寄存器

在 VIM 中复制/粘贴而不覆盖寄存器

还没能弄清楚...

因此,我通常喜欢选择一个单词(例如,albatross)并使用将其复制到寄存器中v i w y,据我理解,它是将其复制到寄存器中*

然后我想将其粘贴回另一个单词(sparrow),所以我会这样做v i w p

但我经常想将原始单词 ( albatross) 粘贴到另一个单词 ( osprey) 上,但当我尝试重复之前的命令时,粘贴的值显示为sparrow,而不是albatross。我知道,这是因为在粘贴之前删除文本时,它会被复制到寄存器中*albatross并用覆盖sparrow

我认为我可以通过使用命名寄存器来解决这个问题,所以我尝试使用 进行复制v i w " 1 y和粘贴v i w " 1 p,但这只是*使用寄存器重现了我原来遇到的寄存器问题"1

各位 VIM 忍者们,我做错了什么?我希望能够快速提取一些任意文本(最好使用寄存器*,因为它可以节省我两次击键),n然后在文档中的任何位置粘贴原始值。

如何才能高效地完成这样的工作?

答案1

您应该使用(命名)"a寄存器"z,而不是编号寄存器,它会自动存储以前的删除。

答案2

0寄存器保存最后提取的文本,因此一旦提取某些文本,您便可以使用 反复粘贴它"0p。有关更多信息,请参阅

:help quote0

相关内容