如何在 Vim 中删除(需要的文本)、删除(不需要的文本)和粘贴(需要的文本)
Posted
技术标签:
【中文标题】如何在 Vim 中删除(需要的文本)、删除(不需要的文本)和粘贴(需要的文本)【英文标题】:How to Delete (desired text), delete (undesired text), and paste (desired text) in Vim 【发布时间】:2011-01-17 11:32:50 【问题描述】:我不知道这是否是智障问题,但这是一个有趣的困境。当我想删除我想放在其他地方的文本,但那个地方有其他一堆我不想要的文本时,我会删除那个文本,但在这个过程中我复制了一个新的剪贴板,所以以前删除的文本消失了.
有解决这个问题的建议吗?
【问题讨论】:
【参考方案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 缓冲区。
【讨论】:
以上是关于如何在 Vim 中删除(需要的文本)、删除(不需要的文本)和粘贴(需要的文本)的主要内容,如果未能解决你的问题,请参考以下文章