我用 剪切一行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
,移动到目标行,$gcp
。gcp
是以下映射按字符粘贴。