在 vim 中将整条剪切行粘贴到另一行的末尾

在 vim 中将整条剪切行粘贴到另一行的末尾

我用 剪切一行dd,然后想将整行粘贴到另一行的末尾。但问题是,由于dd剪切整行,它可能也包括换行符。

因此,当我通过 粘贴时p,它会自动将其放在下一行。如果我执行Shift+ p,它会将其放在我尝试粘贴的行之前。

那么有没有办法将我剪切的整行粘贴到行尾呢?

答案1

要剪切一行而不添加新行,您可以按d$D从光标位置开始。要将其粘贴到另一行的末尾,您可以转到该行的末尾并按p。如果您无法按预期粘贴该行,您可以转到要粘贴的行的末尾。然后,按i,然后按<C-R>(Control-R) 和"(双引号)。您最近剪切或复制的文本将被粘贴。

答案2

将一行粘贴到当前行之后,p只需按下前一行中的另一行j即可连接两行,从而消除不必要的换行符...

答案3

我现在能想到的最好的解决办法是:

A<C-r>+

意思是:在行末启用插入模式,并粘贴寄存器的内容+

它还将粘贴换行符。dd只是对整行进行操作(的缩写1dd)。

答案4

事实上,通常的用例如下:您想删除一整行(包括换行符,因此d$/D不起作用,因为留下一个空行),但将其粘贴在末尾或某个现有行内,而不创建新的行。

我的UnconditionalPaste 插件提供了几个映射,可以自动将寄存器内容转换为所需的用例。您的示例将是dd,移动到目标行,$gcpgcp是以下映射按字符粘贴

相关内容