我该如何在Vim中像在IntelliJ IDEA/ Resharper中按下Ctrl+D或在Eclipse中按下Ctrl+Alt+↑/↓的方式复制整行?
我该如何在Vim中像在IntelliJ IDEA/ Resharper中按下Ctrl+D或在Eclipse中按下Ctrl+Alt+↑/↓的方式复制整行?
yy或Y复制整行(记忆方式:yank)
或
dd删除整行(Vim将你删除的内容复制到类似剪贴板的“寄存器”中,就像一个剪切操作)
然后:
p粘贴复制或删除的文本在当前行之后
或
Shift + P粘贴复制或删除的文本在当前行之前
yj
或yk
更快,尤其是不用输入相同字符。而且,yk
是一个反向的版本,2yy
无法完成,你可以在y9j
或y2k
中指定向后复制多少行。唯一的区别是,总行数为n
时,计数器必须为n-1
,但也容易记住这个规则。 - zelk普通模式:请查看其他答案。
Ex方式:
:t.
将复制当前行,:t 7
将其复制到第7行之后,:,+t0
将当前行和下一行复制到文件开头(,+
是范围 .,.+1
的同义词),:1,t$
将从开头到光标位置的所有行复制到文件末尾(1,
是范围 1,.
的同义词)。如果需要移动而不是复制,请使用 :m
替代 :t
。
如果与 :g
或 :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
。 Y
通常被重新映射为 y$
(从当前光标位置开始复制直到行末)。通过在 .vimrc
中添加以下这一行::nnoremap Y y$
- Aaron ThomayyP
。 - icc97这没有比这更简单的了!从普通模式开始:
yy
然后移到您想要粘贴的行并
p
操作步骤:
首先,按下yy复制当前行,然后按下p粘贴。
yy
将当前行复制但不删除
dd
将当前行删除
p
将之前复制或删除的一行内容put
(粘贴)到当前位置
yyp - 用"yippee!"来记住它!
多行文本之间有数字:
y7yp
:.,.+7 copy .+7
:P - DarkWiiPlayeryyp - 粘贴到光标所在行的下一行
yyP - 粘贴到光标所在行的上一行
Y
es(是的)P
lease(请)。 :) - Stavr00