Mar*_*iek 2663
yy或Y复制该行
或
dd删除(剪切)该行
然后
p将复制或删除的文本粘贴到当前行之后,
或者
P将复制或删除的文本粘贴到当前行之前
Ben*_*oit 393
普通模式:见其他答案.
该防爆方式:
: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
Ada*_*dam 244

没有比这简单!从正常模式:
yy
Run Code Online (Sandbox Code Playgroud)
然后移动到要粘贴的行和
p
Run Code Online (Sandbox Code Playgroud)
pjz*_*pjz 52
yy
将删除当前行而不删除它
dd
将删除当前行
p
将put使用之前的任何一种方法抓住一条线
小智 39
如果你想要另一种方式:-)
"ayy 这会将行存储在缓冲区中 a
"ap 这会将缓冲区的内容放在a光标处.
这有很多变化.
"a5yy 这将把5行存储在缓冲区中 a
请访问http://www.vim.org/htmldoc/help.html以获得更多乐趣
the*_*zer 37
yyp - 记住它与"yippee!"
多行,中间有一个数字:
y7yp
我知道我参加聚会迟到了,但无论如何;我的 .vimrc 中有这个:
nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>
Run Code Online (Sandbox Code Playgroud)
该:copy命令只是将选定的行或范围(始终是整行)复制到作为其参数给出的行号下方。
在正常模式下,它的作用是copy . 将这一行复制到这一行的正下方。
在视觉模式下,它'<,'> copy '> 从选择开始到选择结束到选择结束下方的行变成了副本。
我更喜欢定义一个自定义键盘映射Ctrl+ Din.vimrc以在正常模式和插入模式下复制当前行:
" duplicate line in normal mode:
nnoremap <C-D> Yp
" duplicate line in insert mode:
inoremap <C-D> <Esc> Ypi
Run Code Online (Sandbox Code Playgroud)
默认是yyp,但我已经使用这种重新绑定一年左右并且喜欢它:
" set Y to duplicate lines, works in visual mode as well.
nnoremap Y yyp
vnoremap Y y`>pgv