如何在 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 中删除(需要的文本)、删除(不需要的文本)和粘贴(需要的文本)的主要内容,如果未能解决你的问题,请参考以下文章

轻快的VIM:删除

vim模式与模式切换vim命令模式

vim 文本一些行注释,替换

如何在表单提交后保留文本(如何在提交后不删除自身?)

Vim文本编辑命令汇总-Vim入门教程

Linux运维必备技能:如何在 Vim 中删除多行?