关于编辑器:在vim中复制整行

Duplicate a whole line in Vim

如何在VIM中以类似于Intellij IDEA/Resharper中的CtrL+或Eclipse中的CtrL+atakbd+D&8593;/&8595;的方式复制整行?


y yy复制行< BR>
to delete(cutting)the line

然后

p将复制或删除的文本粘贴到当前行之后< BR>
p将复制或删除的文本粘贴到当前行之前


正常模式:参见其他答案。

前路:

  • :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


YPYPyyp


copy and paste in vim

再简单不过了!从正常模式:

1
yy

然后移到要粘贴到和的行

1
p


yy

将在不删除的情况下拉入当前行

abKd

将删除当前行

P

是否将put一行通过前面的任何一种方法抓取?


如果你想换一种方式:—)

"ayy这将把线路存储在缓冲区a中。

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

这方面有很多不同之处。

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

更多乐趣请参见http://www.vim.org/htmldoc/help.html。


yybp-记住它与"Yippee!"

多行之间有数字:

YKBDYKBDYKBDYKBDYKBDYKBDYKBD


这样做:

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


yybp-粘贴后

yybp-粘贴之前


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


另一种选择是:

1
nmap <C-d> mzyyp`z

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


对于不了解vi的人来说,上面的一些答案可能会用"粘贴…"之类的短语误导他。在当前行之后/之前"。
实际上是"粘贴…光标后/前"。
BR/>yyy复制行< BR>
to delete the line

然后

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

< BR>有关更多的密钥绑定,您可以访问以下站点:vi完整的密钥绑定列表


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


1明白了:当你用"p"来放线的时候,它会放在你光标所在的线之后,所以如果你想在你要拉的线之后添加线,在放新线之前不要把光标移到一条线下面。


默认值是yybp,但我已经使用此重新绑定一年左右了,我喜欢它:

" set Y to duplicate lines, works in visual mode as well.
nnoremap Y yyp
vnoremap Y y`>pgv


我知道我参加晚会迟到了,但不管怎样,我的.vimrc里有这个:

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

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

在正常模式下,它的作用是copy .将这一行复制到这一行的正下方。

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


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

适用于Windows用户的vi(vim)


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

imap Yp


我喜欢使用这个映射:

1
:nnoremap yp Yp

因为它使得与本机YP命令一起使用是一致的。