【发布时间】:2010-12-24 20:48:45
【问题描述】:
假设我有行存储在缓冲区 k 中。如何用缓冲区的内容替换某些行?
【问题讨论】:
-
我想这会做,或者你在寻找别的东西:dd"kP
-
同理,注意如何将一行复制到缓冲区中?
假设我有行存储在缓冲区 k 中。如何用缓冲区的内容替换某些行?
【问题讨论】:
您可以使用 ctrl-v 并选择要复制的内容,然后按“y”来“拉动”它。然后 ctrl-v 或 shift-v 选择要替换的“一些行”,然后按“p”粘贴。
【讨论】:
去要替换的线路上的任何地方。执行一个缓冲区 P(放在上面)。使用 dd 删除当前行。
所以“xPdd
【讨论】:
引号键 " 是您所需要的。这使您的 yank/put 寄存器具体化。因此您在寄存器 k 中有一些内容,并且您想用您键入的内容替换当前行:
^c$<esc>"kp
【讨论】:
转到你想改变的那一行,然后执行
V"kp
【讨论】:
我能当场思考的最佳方式是
"ayy (这个 yanks / 复制行到 "a 缓冲区
然后
dd(删除标准缓冲区的行)
然后
“在当前行之前插入缓冲区的aP”a
【讨论】:
正如其他人所说,总体答案是使用 dd"kP。我想补充一点,您可能想要使用 :g,这样如果您想用内容替换所有匹配 'foo' 的行寄存器k,你可以这样做:
:g/foo/正常 dd"kP请注意,如果缓冲区的第一行与模式匹配,使用 p 而不是 P 会导致一些问题。
【讨论】: