在Vim中是否有相应的更改(c)命令用于粘贴(p)?

puk*_*puk 7 vim copy-paste paste yank

通过插入,可以很容易地擦除单词/部分并插入其上,就像这样

  • cw 删除直到单词结尾(带空格)然后转到插入模式
  • ce 删除直到单词结尾(没有空格)然后转到插入模式
  • c3w 删除直到接下来的3个单词结束(带空格)然后进入插入模式
  • ct. 删除到句点之前然后转到插入模式
  • c$ 删除直到行结束然后转到插入模式

如何使用粘贴操作执行此操作?我经常有一条这样的线

var name = "John Smith"
var name = "Jane Smith"
Run Code Online (Sandbox Code Playgroud)

我把它改成了

var name = "John Lee"
var name = "Jane Smith"
Run Code Online (Sandbox Code Playgroud)

和yank(yw)"李",但现在如果我dw从"简史密斯" 删除()"史密斯",我不再有"李"在寄存器中粘贴.我知道我可以使用命名的寄存器.此外,我相信我可以使用视觉模式.但是,我想,因为这是一个很常见的任务,将有使用移动运营商(的方式e,w,t/ T,f/ F,$,0)用粘贴命令来指定哪些粘贴过来.

Edu*_*nec 14

我认为视觉模式是要走的路.您只需使用v或启用可视模式V(如果您想要覆盖整行),请以常规方式使用移动运算符选择要替换的区域,然后粘贴.你利用你已经知道的东西.

Vp覆盖当前行.vwp覆盖当前的单词.

您可以在Vim Wikia找到替代方案的概述.


Pet*_*ter 10

哦,是的,你想要的是超方便(讽刺)黑洞记录:在视觉模式中选择你想要替换的部分vw,然后使用你想要的运动(如)"_xP.

黑洞寄存器_是一个类似的特殊寄存器/dev/null.该操作"为您要替换的文本设置目标寄存器,从而"_确保不需要的"Smith"命中黑洞寄存器.因此,"李"保留在"登记册中.如果你连续多次这样做,我建议使用宏来帮助.