Vim - 如何将内部单词粘贴到上面的行?

Vim - 如何将内部单词粘贴到上面的行?

我总是使用以下命令来提取内部单词,然后将其粘贴到上面的行中:yiw -> O -> Esc -> p

显然,P它本身(不使用O在上面插入一行)是行不通的,因为没有换行符,所以只是将其粘贴到光标之前。

有没有更简单的方法来做到这一点?

答案1

将内容粘贴到单独一行的两个建议:

  1. 您可以使用:put!命令,因为它总是按行工作。带有 的版本将!寄存器的内容插入到当前行之前(而不是之后)。 (您可以将其缩写为:pu!。)

  2. 您可以使用O, Ctrl+ R, ",Esc在上面插入一行,其中包含最新复制的内容。请参阅帮助i_CTRL-R对于Ctrl+R部分。是"“未命名”寄存器,默认情况下,这是进行复制和删除的地方。这不一定比O, Esc,更“容易” p,但它的优点是它是单个命令,因此可以重复,.并且可以立即撤消整个操作。

如果这对您来说是一个足够频繁的操作,请考虑为其创建一个映射,这肯定是最容易键入的映射。 :-)

答案2

我需要经常将寄存器内容“转换”为某种(字符/行/块)模式,我写了无条件粘贴插件为了它。它提供了gcpglp等替代强制某种模式的内置粘贴命令(现在该主题还有更多变体,例如用逗号或查询字符连接进行粘贴)。

有了它,您可以使用glp/glP在当前行之后/之前粘贴,无论您如何拉动文本(即当它只包含不完整的行片段时)。

相关内容