我最近刚开始使用 Vim,但遇到了一个基本问题!
当我想复制粘贴多行代码并将其粘贴到其他地方时,在将代码粘贴到原始代码上方后,原始代码不会向下移动。例如,我的原始代码如下所示:
aaa
bbb
ccc
在我使用可视模式选择所有这些并使用“y”复制后,我将光标移动到文件的左上角并使用“P”将它们粘贴到文件的顶部,它变成:
aaa aaa
bbb bbb
ccc ccc
而不是我想要的
aaa
bbb
ccc
aaa
bbb
ccc
我不知道我刚才错在哪里?或者这是 vim 处理复制和粘贴的方式?所以我需要先将原始行向下推,然后再粘贴它们?这样做听起来有点不方便!
有人能告诉我如何轻松地做我想做的事吗?谢谢!
答案1
看起来你所提取的寄存器内容来自块状选择。然后,在粘贴时,Vim 确实会将内容插入行内,为寄存器中的文本量腾出空间,而不是插入全新的行。
您应该使用V
命令逐行视觉选择。然后,正确的预期粘贴行为将自动发生。
请注意我的UnconditionalPaste 插件提供强制采用特定模式的粘贴映射。因此,通过其glp
映射,您可以强制从块选择中进行逐行粘贴。但最好首先进行“正确”选择。