如何复制在一整行的Vim以类似的方式来Ctrl+ D中的IntelliJ IDEA / ReSharper的或Ctrl+ Alt+ ↑/ ↓在Eclipse中?
Y
es P
租赁。:)
如何复制在一整行的Vim以类似的方式来Ctrl+ D中的IntelliJ IDEA / ReSharper的或Ctrl+ Alt+ ↑/ ↓在Eclipse中?
Y
es 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
正常模式