如何复制Vim中以类似的方式,以一整行Ctrl+ D中的IntelliJ IDEA/ReSharper的或Ctrl+ Alt+ ↑/ ↓在Eclipse?
yy或Y复制该行
或
dd删除(剪切)该行
然后
p将复制或删除的文本粘贴到当前行之后,
或者
P将复制或删除的文本粘贴到当前行之前
普通模式:见其他答案.
该防爆方式:
:t.
将复制该行,
:t 7
将在第7行之后复制,
:,+t0
将复制文件开头的当前行和下一行(,+
是该范围的同义词.,.+1
),
:1,t$
将从开头到光标位置的行复制到结尾(1,
是范围的同义词1,.
).
如果您需要移动而不是复制,请使用:m
而不是:t
.
如果你将它与:g
or 组合,这可能非常强大:v
:
:v/foo/m$
将所有与模式"foo"不匹配的行移动到文件末尾.
:+,$g/^\s*class\s\+\i\+/t.
将class xxx
在光标后立即复制表单的所有后续行.
参考::help range
,:help :t
,:help :g
,:help :m
和:help :v
YP
或Yp
或yyp
.
没有比这简单!从正常模式:
yy
然后移动到要粘贴的行和
p
yy
将删除当前行而不删除它
dd
将删除当前行
p
将put
使用之前的任何一种方法抓住一条线
做这个:
首先,yy复制当前行,然后p粘贴.
如果你想要另一种方式:-)
"ayy
这会将行存储在缓冲区中 a
"ap
这会将缓冲区的内容放在a
光标处.
这有很多变化.
"a5yy
这将把5行存储在缓冲区中 a
请访问http://www.vim.org/htmldoc/help.html以获得更多乐趣
yyp - 记住它与"yippee!"
多行,中间有一个数字:
y7yp
yyp - 贴后
yyP - 粘贴之前
您也可以尝试
另一种选择是:
nmapmzyyp`z
为您提供保留光标位置的优势.
我喜欢: Shift+ v(立即选择整行,让你选择其他行,如果你想),y,p
对于不了解vi的人,上面的一些答案可能会误导他,例如"粘贴...... 当前行之后/之前".
它实际上是"粘贴...之后/之前的光标 ".
yy或Y复制该行
或
dd删除该行
然后
p到复制或删除文本粘贴后的光标
或
P将复制或删除的文本粘贴之前的光标
有关更多键绑定,您可以访问此站点:vi完整键绑定列表