【问题标题】:how to replace a current line with what in a buffer using vi如何使用 vi 将当前行替换为缓冲区中的内容
【发布时间】:2010-12-24 20:48:45
【问题描述】:

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

【问题讨论】:

  • 我想这会做,或者你在寻找别的东西:dd"kP
  • 同理,注意如何将一行复制到缓冲区中?

标签: vim buffer


【解决方案1】:

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

【讨论】:

  • 我不会即时复制任何内容。我预先存储了某些行,用于替换代码中的某些行。
【解决方案2】:

去要替换的线路上的任何地方。执行一个缓冲区 P(放在上面)。使用 dd 删除当前行。

所以“xPdd

【讨论】:

    【解决方案3】:

    引号键 " 是您所需要的。这使您的 yank/put 寄存器具体化。因此您在寄存器 k 中有一些内容,并且您想用您键入的内容替换当前行:

    ^c$<esc>"kp
    

    【讨论】:

      【解决方案4】:

      转到你想改变的那一行,然后执行

      V"kp
      

      【讨论】:

      【解决方案5】:

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

      "ayy (这个 yanks / 复制行到 "a 缓冲区

      然后

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

      然后

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

      【讨论】:

        【解决方案6】:

        正如其他人所说,总体答案是使用 dd"kP。我想补充一点,您可能想要使用 :g,这样如果您想用内容替换所有匹配 'foo' 的行寄存器k,你可以这样做:

        :g/foo/正常 dd"kP

        请注意,如果缓冲区的第一行与模式匹配,使用 p 而不是 P 会导致一些问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-06-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多