如何在vi中从当前位置复制到行尾


102

我在Windows中使用gvim。如何将文本从当前位置复制到vi中的行尾并将其粘贴到在vi中打开的另一个文件中。我用谷歌搜索,但找不到任何解决方案。感谢对此的任何帮助。谢谢。

Answers:


155

移至该行末尾的正常模式命令为$

您可以使用复制到行尾y$并粘贴p

要在不同实例之间复制/粘贴,可以通过选择*寄存器来使用系统剪贴板,这样命令就"*y$可以复制和"*p粘贴。

$ 换行

$

y$ 换行

y$

"*y$ 选择剪贴板注册yank到换行符

"*y$

"*p 选择剪贴板注册粘贴

"*p

检查:h registers更多信息。


谢谢。但我想将内容粘贴到在vi中打开的“另一个文件”中。这仅适用于同一文件。
javalearner

4
它适用于在同一实例中打开的任何文件。您可以通过选择*(或+)寄存器将其复制到系统剪贴板。
唐·雷巴

为什么系统注册无法正常工作...我无法将上下文复制file1到中file2。我仍然需要使用鼠标。可能是什么原因?
阿尔斯顿

8
我通常使用D从当前位置剪切到末尾并p粘贴(恢复)原始数据,然后再移动到其他位置粘贴粘贴的数据的方法。仅仅是因为它比容易D得多y$
neevek 2015年

1
@PhilipRego,是y$,没有分号。
唐·雷巴

45

如果不想在换行中包含换行符,可以使用yg_。(或者您的情况"*yg_

基本上,只要认识到$g_移动方面就有所不同。在很多场合对我都有帮助。


3
还有交换g_$吗?我发现自己很少需要在动作中加入换行符。
乔纳森·杜马因

1
是!多余的换行符使我发疯。这是所需的信息。
javadba

6
@JonathanDumaine在您$MYVIMRC添加的行nmap $ g_
thedanotto

@thedanotto您是美丽的人
Jonathan Dumaine '16


3

一种不同的解决方案:Dp并将其粘贴到p。实际上,这首先删除到行尾,然后将其重新粘贴到同一位置。将其粘贴到其他位置p


1
为什么不Du并保留文件不变?(注意:这包括换行)
基因
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.