![在 VIM 中复制/粘贴而不覆盖寄存器](https://linux22.com/image/1313521/%E5%9C%A8%20VIM%20%E4%B8%AD%E5%A4%8D%E5%88%B6%2F%E7%B2%98%E8%B4%B4%E8%80%8C%E4%B8%8D%E8%A6%86%E7%9B%96%E5%AF%84%E5%AD%98%E5%99%A8.png)
还没能弄清楚...
因此,我通常喜欢选择一个单词(例如,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