【问题标题】:How to Delete (desired text), delete (undesired text), and paste (desired text) in Vim如何在 Vim 中删除(需要的文本)、删除(不需要的文本)和粘贴(需要的文本)
【发布时间】:2011-01-17 11:32:50
【问题描述】:

我不知道这是否是智障问题,但这是一个有趣的困境。当我想删除我想放在其他地方的文本,但那个地方有其他一堆我不想要的文本时,我会删除那个文本,但在这个过程中我复制了一个新的剪贴板,所以以前删除的文本消失了.

有解决这个问题的建议吗?

【问题讨论】:

    标签: vim paste


    【解决方案1】:

    试试yankring 插件。

    【讨论】:

      【解决方案2】:

      类型:

      :registers
      

      您将获得包含所有先前删除的寄存器列表。你总是可以选择一个来粘贴。例如。对于寄存器:

      "1   Item1^J
      "2   Item3^J
      "3   Item2^J
      

      选择第二个并粘贴:

      "2p
      

      【讨论】:

        【解决方案3】:

        另一种解决方案是使用数字寄存器。当您删除一块文本时,它会被移入寄存器 1,寄存器 1 的当前内容被移入寄存器 2,依此类推。寄存器 9 的内容被丢弃。但是,这只适用于超过一行的更改,因此不会捕获小的删除。

        所以你可以删除第一个区域,删除第二个区域,然后从寄存器 2 粘贴。

        我个人更喜欢使用寄存器 a-z,但是如果你删除了一些文本然后意识到你忘记指定一个寄存器,编号的寄存器很有用。

        请:help "1 了解更多信息。

        您还可以通过:registers查看所有寄存器中的当前内容,包括1-9,

        【讨论】:

          【解决方案4】:

          一些可能的解决方案:

          先删除不需要的文字:)

          或

          删除所需文本时,将其存储在默认寄存器以外的寄存器中,例如将所需文本删除到当前行的末尾并将其存储在寄存器b中:

          "bd$
          

          然后删除你不需要的文本。

          然后粘贴寄存器b的内容:

          "bp
          

          或

          按照Yarek T 链接的答案中的建议,将不需要的文本删除到黑洞寄存器中:

          "_d
          

          【讨论】:

            【解决方案5】:

            也许这个问题可能会对您的问题有所启发。 54255

            它使用“黑洞缓冲区”来删除行而不将它们添加到 yank 缓冲区。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2022-11-13
              • 2018-01-03
              • 2018-02-07
              相关资源
              最近更新 更多