如何在Vim中复制整行,方法与IntelliJ IDEA/Resharper中的Ctrl+D或Ctrl+Alt类似+↑/↓ 在Eclipse中?
当前回答
正常模式:参见其他答案。
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
其他回答
您也可以尝试<C-x><C-l>,它将重复插入模式中的最后一行,并为您带来一个包含所有行的完成窗口。它的工作原理几乎类似于<C-p>
yy或Y复制行(助记符:yank)或dd删除行(Vim将您删除的内容复制到剪贴板中,如“注册”,如剪切操作)
then
p将复制或删除的文本粘贴到当前行之后或Shift+P将复制或删除的文本粘贴到当前行之前
正常模式:参见其他答案。
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-粘贴后
yyP-粘贴之前
我使用这个映射,它类似于vscode。我希望它有用!!!。
nnoremap <A-d> :t. <CR>==
inoremap <A-d> <Esc>:t. <CR>==gi
vnoremap <A-d> :t$ <CR>gv=gv
推荐文章
- 在Vim中如何从“gf”返回
- 如何在Vim注释掉一个Python代码块
- 如何在可视块模式插入?
- 使iTerm以与其他操作系统相同的方式翻译“元键”
- 强迫自己掌握vi的最好方法是什么?
- 如何回到行之前编辑的最后一个在Vim?
- 如何跳转到一个特定的人物在vim?
- 如何删除一个大的文本块而不计算行?
- 是否有一种方法可以在Visual Studio中删除一行而不剪切它?
- 如何在Eclipse中只使用键盘去一个错误?
- 你常用的Xcode快捷键有哪些?
- 是否有Eclipse行宽标记?
- 在Vim/Vi中,如何将光标移动到前一个单词的末尾?
- 如何在vim中自动删除尾随空格
- 在Eclipse中更改字符串的大小写