如何在Vim中复制整行?

如何以类似于IntelliJ IDEA/Resharper中的Ctrl+DEclipse中的Ctrl+Alt+/的方式复制Vim中的整行?

854845 次浏览

这样做:

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

yy

将拉出当前行而不删除它

dd

将删除当前行

p

put为前面任何一个方法捕获的行

1个问题:当您使用“p”放置该行时,它会将其之后放在光标所在的行上,因此如果您想在您正在拉动的行之后添加该行,请不要在放置新行之前将光标向下移动一行。

yyY复制该行(助记符:yank

dddelete行(Vim将您删除的内容复制到剪贴板般的“寄存器”中,就像削减操作一样)

然后

pp复制或删除的文本之后当前行

Pp复制或删除的文本之前当前行

YPYpyyp

yyp-用“yippee!

多行,中间有一个数字:

y7yp

如果你想要另一种方式:

"ayy:这将把该行存储在缓冲区a中。

"ap:这将把缓冲区a的内容放在光标上。

这方面有许多变化。

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

看到“Vim帮助文件更多的乐趣。

您还可以尝试,它将重复插入模式中的最后一行,并为您带来一个包含所有行的完成窗口。它的工作原理几乎类似于

另一种选择是:

nmap <C-d> mzyyp`z

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

我喜欢:Shift+v(立即选择整行,如果需要,可以选择其他行), y, p

普通模式:查看其他答案。

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

yyp-粘贴后

yyP-粘贴之前

复制并粘贴到vim中

没有比这更简单的了!从普通模式:

yy

然后移动到要粘贴的行,然后

p

默认值是yyp,但我已经使用这个重新绑定了一年左右,并且喜欢它:

"将Y设置为重复行,也可以在可视模式下工作。nnoremap y yypvnoremap Y y'>pgv

对于那些开始学习vi的人来说,这里是一个很好的vi介绍,并列列出了典型的Windows GUI编辑器光标移动和快捷键的vi命令。它列出了所有基本命令,包括yy(复制行)和p(粘贴后)或P(粘贴前)。

vi(Vim)Windows用户

对于不知道vi的人来说,上面的一些答案可能会误导他,比如“粘贴…当前线路之后/之前”。
它实际上是“粘贴…后/前游标"

yyY复制行

dd删除行

然后

p将复制或删除的文本之后粘贴到光标

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


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

如果您想复制一行并将其粘贴到当前喜欢的下方,就像SublimeCtrl+Shift+D中一样,那么您可以将其添加到.vimrc文件中。

nmap <S-C-d> <Esc>Yp

或者,对于插入模式:

imap <S-C-d> <Esc>Ypa

我喜欢使用这个映射:

:nnoremap yp Yp

因为它使与本机YP命令一起使用保持一致。

我知道我迟到了,但不管怎样;我有这个在我的. vimrc:

nnoremap <C-d> :copy .<CR>vnoremap <C-d> :copy '><CR>

:copy命令只是将选定的行或范围(总是整行)复制到作为其参数给出的行号以下。

在正常模式下,这是copy .将此行复制到此行的正下方

在视觉模式下,它变成'<,'> copy '>从选择开始到选择结束复制到选择结束下面的行

我使用这个映射,它类似于vscode。我希望它是有用的!!!。

nnoremap <A-d> :t. <CR>==inoremap <A-d> <Esc>:t. <CR>==givnoremap <A-d> :t$ <CR>gv=gv

我更喜欢在.vimrc中定义一个自定义键映射Ctrl+D,以在正常模式和插入模式下复制当前行:

" duplicate line in normal mode:nnoremap <C-D> Yp" duplicate line in insert mode:inoremap <C-D> <Esc> Ypi