如何在Vim中复制整行,方法与IntelliJ IDEA/Resharper中的Ctrl+D或Ctrl+Alt类似+↑/↓ 在Eclipse中?


当前回答

我更喜欢在.vimrc中定义自定义键映射Ctrl+D,以在正常模式和插入模式下复制当前行:

" duplicate line in normal mode:
nnoremap <C-D> Yp
" duplicate line in insert mode:
inoremap <C-D> <Esc> Ypi

其他回答

yyp-粘贴后

yyP-粘贴之前

您也可以尝试<C-x><C-l>,它将重复插入模式中的最后一行,并为您带来一个包含所有行的完成窗口。它的工作原理几乎类似于<C-p>

对于不了解vi的人,上面的一些答案可能会用“粘贴…在当前行之后/之前”等短语误导他。它实际上是“粘贴…在光标之后/之前”。yy或Y复制行或dd删除该行

then

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

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

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

“将Y设置为复制行,也可以在视觉模式下工作。nnoremap Y年vnoremap Y Y`>pgv

我更喜欢在.vimrc中定义自定义键映射Ctrl+D,以在正常模式和插入模式下复制当前行:

" duplicate line in normal mode:
nnoremap <C-D> Yp
" duplicate line in insert mode:
inoremap <C-D> <Esc> Ypi