在 Vim 中复制粘贴后,如何将原来的行往下推?

在 Vim 中复制粘贴后,如何将原来的行往下推?

我最近刚开始使用 Vim,但遇到了一个基本问题!

当我想复制粘贴多行代码并将其粘贴到其他地方时,在将代码粘贴到原始代码上方后,原始代码不会向下移动。例如,我的原始代码如下所示:

aaa
bbb
ccc

在我使用可视模式选择所有这些并使用“y”复制后,我将光标移动到文件的左上角并使用“P”将它们粘贴到文件的顶部,它变成:

aaa aaa
bbb bbb
ccc ccc

而不是我想要的

aaa
bbb
ccc
aaa
bbb
ccc

我不知道我刚才错在哪里?或者这是 vim 处理复制和粘贴的方式?所以我需要先将原始行向下推,然后再粘贴它们?这样做听起来有点不方便!

有人能告诉我如何轻松地做我想做的事吗?谢谢!

答案1

看起来你所提取的寄存器内容来自块状选择。然后,在粘贴时,Vim 确实会将内容插入行内,为寄存器中的文本量腾出空间,而不是插入全新的行。

您应该使用V命令逐行视觉选择。然后,正确的预期粘贴行为将自动发生。

请注意我的UnconditionalPaste 插件提供强制采用特定模式的粘贴映射。因此,通过其glp映射,您可以强制从块选择中进行逐行粘贴。但最好首先进行“正确”选择。

相关内容