如何使用vi替换当前行与缓冲区中的内容

时间:2009-12-09 14:48:03

标签: vim buffer

假设我有行存储在缓冲区k中。如何用缓冲区的内容替换某些行?

6 个答案:

答案 0 :(得分:7)

去任何地方进行替换。执行缓冲区P(如上所述)。使用dd删除当前行。

所以“xPdd

答案 1 :(得分:5)

转到您想要更改的行,然后执行

V"kp

答案 2 :(得分:4)

正如其他人所说的那样,总的答案是使用dd“kP。我想补充说你可能想要使用:g,所以如果你想把所有与'foo'匹配的行替换为内容注册k,你可以这样做:

:g/foo/normal dd"kP

请注意,如果缓冲区的第一行与模式匹配,则使用p代替P将导致一些问题。

答案 3 :(得分:3)

我能当场思考的最佳方式是

“ayy(这会将线条复制/复制到”缓冲区

然后

dd(删除标准缓冲区的行)

然后

“aP在当前行之前插入缓冲区”a

答案 4 :(得分:1)

引用键“是你需要的。这使得你的yank / put寄存器具体。所以你在寄存器k中有一些东西,你想用它键入的当前行替换:

^c$<esc>"kp

答案 5 :(得分:0)

您可以使用ctrl-v并选择要复制的内容,然后按“y”以“猛拉”它。然后按ctrl-v或shift-v选择要替换的“某些行”,按“p”键将其粘贴。