如何以类似于IntelliJ IDEA / Resharper中的Ctrl + D或Eclipse中的Ctrl + Alt + ↑ / ↓的方式在Vim中复制整行?
#1楼
普通模式:查看其他答案。
防爆方式:
-
: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
#2楼
另一种选择是:
nmap <C-d> mzyyp`z
使您可以保留光标位置。
#3楼
我喜欢: Shift + v (立即选择整行,并根据需要选择其他行),y,p
#4楼
y y p-在之后粘贴
Y Y P -粘贴前
#5楼
没有比这更简单的了! 在普通模式下:
yy
然后移至您要粘贴到的行
p
#6楼
默认值为y y p ,但是我已经使用这种重新绑定大约一年了并且喜欢它:
" set Y to duplicate lines, works in visual mode as well. nnoremap Y yyp vnoremap Y y`>pgv
#7楼
对于开始学习vi的人来说,这是对vi的很好的介绍,它通过并排列出典型Windows GUI编辑器光标移动和快捷键的vi命令。 它列出了所有基本命令,包括yy (复制行)和p (粘贴后)或P (粘贴前)。
#8楼
". 对于不知道vi的人,上面的一些答案可能会用“在之前/之前粘贴...”这样的短语误导他。
". 它实际上是“在之前/之后粘贴...”。
y y或y复制行
要么
d d删除行
然后
p来粘贴在光标 之后复制或删除文本
要么
P将复制或删除的文本粘贴到光标 之前
有关更多键绑定的信息,请访问以下网站: vi完整的键绑定列表
#9楼
如果您想复制一行并将其立即粘贴到当前行下方,就像在Sublime Ctrl + Shift + D中一样 ,则可以将其添加到您的.vimrc
文件中。
nmap <SCd> <Esc>Yp
或者,对于插入模式:
imap <SCd> <Esc>Ypa
#10楼
我喜欢使用此映射:
:nnoremap yp Yp
因为它可以与本机YP
命令一起使用保持一致。
#11楼
我知道我晚会晚了,但是无论如何。 我的.vimrc中有这个:
nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>
:copy
命令仅将所选行或范围(总是整行)复制到作为其参数给出的行号以下。
在正常模式下,这是copy .
复制此行到此行的正下方 。
在可视模式下,它会变成'<,'> copy '>
从选择开始到选择结束到选择结束下方的行的复制 。
#12楼
做这个:
首先, y y复制当前行,然后p粘贴。
#13楼
Y Y
将取消当前行而不删除它
d d
将删除当前行
p
将put
通过任何以前的方法抢下线
#14楼
1陷阱:使用“ p”放置该行时,它将其放置在光标所在的行之后,因此,如果要在要拖动的行之后添加该行,请不要将光标向下移动到一行在换行之前。
#15楼
y y或Y复制行(助记符: y ank )
要么
d d到d elete行(VIM拷贝你删除到剪贴板中,如“注册”,如剪切操作)
然后
p至p ASTE复制或在当前行之后删除的文本
要么
P至P ASTE复制或当前行之前删除的文字
#16楼
YP
或Yp
或yyp
。
#17楼
Y Y p -具有记得“YIPPEE!”
多行,中间有数字:
y 7 y p
#18楼
如果您想要其他方式:
"ayy
:这会将行存储在缓冲区a
。
"ap
:这会将缓冲区a
的内容放在光标处。
有很多变化。
"a5yy
:这会将5行存储在缓冲区a
。
请参阅“ Vim帮助文件,以获取更多乐趣。
#19楼
您也可以尝试<Cx> <Cl>,它将重复插入模式的最后一行,并为您提供包含所有行的完成窗口。 它几乎像<Cp>