当前位置:  开发笔记 > 编程语言 > 正文

在Vim中复制整行

如何解决《在Vim中复制整行》经验,为你挑选了13个好方法。

如何复制Vim中以类似的方式,以一整行Ctrl+ D中的IntelliJ IDEA/ReSharper的或Ctrl+ Alt+ / 在Eclipse?



1> Mark Biek..:

yyY复制该行

dd删除(剪切)该行

然后

p将复制或删除的文本粘贴到当前行之后,
或者
P将复制或删除的文本粘贴到当前行之前


一个很好的观点.但是出于某些原因,我发现对于我而言,比SHIFT-y快两倍
和2yy可用于复制2行(和任何其他n行)
@camflan我认为Y应该是"从光标复制到最后"
要复制两行,只需更快地去"yj"或"yk",特别是因为你不会在一个字符上加倍.另外,`yk`是一个'2yy`不能做的向后版本,你可以在'y9j`或`y2k`等中将行数放到后面.唯一的区别是你的数量必须是`n-1`总共有'n`行,但无论如何你的头脑都可以学到.
@nXqd:是的,很大一部分用户将`Y`映射到'y $`.(与'D`和`C`一致;(但不兼容Vi(无人问津).))甚至在[`:help Y`]中提出(http://vimhelp.appspot.com/change.txt的.html#Y).
另外,使用:yj复制当前行和它下面的行/ yk来复制它上面的当前行和行

2> Benoit..:

普通模式:见其他答案.

该防爆方式:

:t. 将复制该行,

:t 7 将在第7行之后复制,

:,+t0将复制文件开头的当前行和下一行(,+是该范围的同义词.,.+1),

:1,t$将从开头到光标位置的行复制到结尾(1,是范围的同义词1,.).

如果您需要移动而不是复制,请使用:m而不是:t.

如果你将它与:gor 组合,这可能非常强大:v:

:v/foo/m$ 将所有与模式"foo"不匹配的行移动到文件末尾.

:+,$g/^\s*class\s\+\i\+/t.class xxx在光标后立即复制表单的所有后续行.

参考::help range,:help :t,:help :g,:help :m:help :v


@mjaggard:无论得分如何,接受的答案总是排在最前面.是的,我将这个答案添加为补充,似乎它很适合OP.
Downvoted不是因为答案问题(虽然它对我的情况不起作用,我不知道我要复制的行号)但是因为它真的不应该是这个的最高/接受的答案常见问题.
`:t.是这个问题的确切答案.

3> Linulin..:

YPYpyyp.



4> Adam..:

复制并粘贴到vim中

没有比这简单!从正常模式:

yy

然后移动到要粘贴的行和

p


你用什么来制作gif?
这是用Camtasia Studio 8完成的.实际上非常简单.
@Zoltán你可以使用小尺寸的LiceCap

5> pjz..:

yy

将删除当前行而不删除它

dd

将删除当前行

p

put使用之前的任何一种方法抓住一条线


这是第一个,但它的重复被接受:http://stackoverflow.com/a/73357/1438029

6> Eric Z Beard..:

做这个:

首先,yy复制当前行,然后p粘贴.


不要输入空格.

7> 小智..:

如果你想要另一种方式:-)

"ayy 这会将行存储在缓冲区中 a

"ap 这会将缓冲区的内容放在a光标处.

这有很多变化.

"a5yy 这将把5行存储在缓冲区中 a

请访问http://www.vim.org/htmldoc/help.html以获得更多乐趣



8> theschmitzer..:

yyp - 记住它与"yippee!"

多行,中间有一个数字:

y7yp


7yy相当于y7y,可能更容易记住怎么做.
y7yp(或7yyp)很少有用; 光标保留在复制的第一行上,以便p粘贴源的第一行和第二行之间的复制行.要复制一行代码,请使用7yyP

9> yemu..:

yyp - 贴后

yyP - 粘贴之前


由于该行是重复的,因此内容的最终结果是相同的.
@ABB然而,这里有一个微型差异 - 你的光标将落在哪一行.

10> 小智..:

您也可以尝试 ,它将从插入模式重复最后一行,并为您提供包含所有行的完成窗口.它几乎像一样工作



11> Rook..:

另一种选择是:

nmap  mzyyp`z

为您提供保留光标位置的优势.



12> 小智..:

我喜欢: Shift+ v(立即选择整行,让你选择其他行,如果你想),y,p



13> Michael..:

对于不了解vi的人,上面的一些答案可能会误导他,例如"粘贴...... 当前行之后/之前".
它实际上是"粘贴...之后/之前的光标 ".

yyY复制该行

dd删除该行

然后

p到复制或删除文本粘贴光标

P将复制或删除的文本粘贴之前光标


有关更多键绑定,您可以访问此站点:vi完整键绑定列表



推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有