如何在Vim中复制整行,方法与IntelliJ IDEA/Resharper中的Ctrl+D或Ctrl+Alt类似+↑/↓ 在Eclipse中?
yy或Y复制行(助记符:yank)或dd删除行(Vim将您删除的内容复制到剪贴板中,如“注册”,如剪切操作)
then
p将复制或删除的文本粘贴到当前行之后或Shift+P将复制或删除的文本粘贴到当前行之前
如果您想要其他方式:
“ayy:这将把该行存储在缓冲区a中。
“ap:这将把缓冲区a的内容放在光标处。
这一点有很多不同之处。
“5年:这将在缓冲区a中存储5行。
请参阅“Vim帮助文件以获取更多乐趣。
正常模式:参见其他答案。
Ex方式:
:t。将复制该行,:t 7将在第7行之后复制它,:,+t0将复制文件开头的当前行和下一行(,+是范围.,.+1的同义词),:1,t$将从开始到光标位置复制行到结束(1,是范围1,.的同义词)。
如果需要移动而不是复制,请使用:m而不是:t。
如果您将其与:g或:v结合使用,这将非常强大:
:v/foo/m$将将所有不匹配模式“foo”的行移动到文件末尾。:+,$g/^\s*类\s\+\i\+/t。将在光标之后复制表单类xxx的所有后续行。
参考::help range、:help:t、:help:g、:help:m和:help:v
默认值是yyp,但我已经使用此重新绑定一年左右了,并且很喜欢它:
“将Y设置为复制行,也可以在视觉模式下工作。nnoremap Y年vnoremap Y Y`>pgv
对于那些开始学习vi的人来说,这里是一个很好的vi介绍,并列列出了典型的Windows GUI编辑器光标移动和快捷键的vi命令。它列出了所有基本命令,包括yy(复制行)和p(粘贴后)或p(粘贴前)。
Windows用户的vi(Vim)
对于不了解vi的人,上面的一些答案可能会用“粘贴…在当前行之后/之前”等短语误导他。它实际上是“粘贴…在光标之后/之前”。yy或Y复制行或dd删除该行
then
p将复制或删除的文本粘贴到光标后或P将复制或删除的文本粘贴到光标之前
有关更多密钥绑定,您可以访问以下站点:vi完整密钥绑定列表
如果您想复制一行并将其粘贴到当前行的下方,就像Sublime Ctrl+Shift+D中一样,那么可以将其添加到.virc文件中。
nmap<S-C-d><Esc>Yp
或者,对于插入模式:
imap<S-C-d><Esc>Ypa
我知道我参加晚会迟到了,但不管怎样;我的vimrc里有这个:
nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>
:copy命令只是将选定的行或范围(始终是整行)复制到作为其参数的行号以下。
在正常模式下,这是复制。将此行复制到此行的正下方。
在视觉模式下,它变成“<,'>复制”>从选择开始到选择结束,复制到选择结束下面的行。
我使用这个映射,它类似于vscode。我希望它有用!!!。
nnoremap <A-d> :t. <CR>==
inoremap <A-d> <Esc>:t. <CR>==gi
vnoremap <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
推荐文章
- 强迫自己掌握vi的最好方法是什么?
- 如何回到行之前编辑的最后一个在Vim?
- 如何跳转到一个特定的人物在vim?
- 如何删除一个大的文本块而不计算行?
- 是否有一种方法可以在Visual Studio中删除一行而不剪切它?
- 如何在Eclipse中只使用键盘去一个错误?
- 你常用的Xcode快捷键有哪些?
- 是否有Eclipse行宽标记?
- 在Vim/Vi中,如何将光标移动到前一个单词的末尾?
- 如何在vim中自动删除尾随空格
- 在Eclipse中更改字符串的大小写
- 为什么Vim使用~扩展名保存文件?
- Visual Studio展开/折叠键盘快捷键
- 如何在Vim或Linux中将空格转换为制表符?
- 如何在编辑器(Atom, notepad++, Kate, VIM, Sublime, Textpad等)和ide (NetBeans, IntelliJ IDEA, Eclipse, Visual Studio等)中选择列