如何复制在一整行的Vim以类似的方式来Ctrl+ D中的IntelliJ IDEA / ReSharper的或Ctrl+ Alt+ ↑/ ↓在Eclipse中?
Yes P租赁。:)
如何复制在一整行的Vim以类似的方式来Ctrl+ D中的IntelliJ IDEA / ReSharper的或Ctrl+ Alt+ ↑/ ↓在Eclipse中?
Yes P租赁。:)
Answers:
yy或Y复制行(助记:Ÿ ANK)
或
dd至d elete行(VIM拷贝你删除到剪贴板中,如“注册”,像切操作)
然后
p到p ASTE的复制或删除文本之后当前行
或
P到p ASTE的复制或删除文本之前当前行
yj或甚至会更快yk,尤其是因为您不会在一个字符上加倍。另外,这yk是个向后的版本,2yy您可以将行数倒入y9j或y2k,等等。唯一的区别是您的行数必须n-1为总行数n,但是您的头可以知道无论如何。
普通模式:查看其他答案。
该防爆方式:
:t. 将复制该行,:t 7 将在第7行之后复制:,+t0将在文件的开头复制当前行和下一行(,+是range的同义词.,.+1),:1,t$将复制从开始到光标位置到末尾的行(1,是range的同义词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
:在视觉模式下,它被变换到'<,'>这样它预先选择的视觉选择跨越过线范围。因此,在可视模式下,:t0将在开始时复制行。
:t.是该问题的确切答案。
YP或Yp或yyp。
Y通常,通常将其映射到y$(拖动(复制)直到行尾(从当前光标位置开始,而不是行首))。这条线在.vimrc::nnoremap Y y$
yyP
yy
将取消当前行而不删除它
dd
将删除当前行
p
将put通过前面的任何一种方法来抓取一条线
如果您想要其他方式:
"ayy:这会将行存储在缓冲区中a。
"ap:这会将缓冲区的内容放在a光标处。
有很多变化。
"a5yy:这会将5行存储在缓冲区中a。
请参阅“ Vim帮助文件,以获取更多乐趣。
yyp -用“ yippee”记住它!
多行,中间有数字:
y7yp
:.,.+7 copy .+7:P
我喜欢: Shift+ v(立即选择整行,并根据需要选择其他行),y,p
您也可以尝试<Cx> <Cl>,它将重复插入模式的最后一行,并为您提供一个包含所有行的完成窗口。它几乎像<Cp>
对于不知道vi的人,上面的一些答案可能会用“在当前行之前/之前粘贴...”这样的短语误导他。
它实际上是“在光标之前/之后粘贴... ”。
yy或Y复制该行
或
dd删除该行
然后
p到复制或删除文本粘贴后的光标
或
P将复制或删除的文本粘贴之前的光标
有关更多键绑定的信息,请访问以下网站:vi完整的键绑定列表
我知道我晚会晚了,但是无论如何。我的.vimrc中有这个:
nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>
该:copy命令仅将所选行或范围(总是整行)复制到作为其参数给出的行号下方。
在普通模式下,copy . 将行复制到该行的下面。
在可视模式下,它会'<,'> copy '> 从选择开始到选择结束到选择结束下方的行变成副本。
对于开始学习vi的人来说,这是对vi的很好的介绍,它通过并排列出典型Windows GUI编辑器光标移动和快捷键的vi命令。它列出了所有基本命令,包括yy(复制行)和p(粘贴后)或P(粘贴前)。
如果您想复制一行并将其立即粘贴到当前行的下方(就像Sublime Ctrl+ Shift+中一样)D,则可以将其添加到.vimrc文件中。
nmap <S-C-d> <Esc>Yp
或者,对于插入模式:
imap <S-C-d> <Esc>Ypa
i到最后以重新输入它会中断undo,因此在插入模式下复制行的解决方案并不像看起来那样简单。
imap <S-C-d> <Esc>Ypi 插入模式和 nmap <S-C-d> <Esc>Yp正常模式