如何在Vim中复制整行?

1977

我该如何在Vim中像在IntelliJ IDEA/ Resharper中按下Ctrl+D或在Eclipse中按下Ctrl+Alt+/的方式复制整行?


216
你想复制这一行吗?Yes(是的) Please(请)。 :) - Stavr00
11
近两个月来,我已经完成了约十二次vimtutor的学习,但其中涉及的概念并未包括本问题所要求的单行复制且不删除。该教程只教授如何使用“dd”、“v-导航-y”和“p”命令进行操作。 - danielson317
22个回答

1

如果你想要在下面复制一行,上面的答案是正确的。

另一个常见情况是,当你在文本中某个位置时,你想要复制一个位于缓冲区远处、看不见的行,但由于某种原因你不想去那里。

在这种情况下:

  • 开始输入你想要复制的行的开头几个字母;
  • 按下 Ctrl-X Ctrl-L:这将带来一个类似于自动完成的弹出列表(Ctrl-P 和 Ctrl-N);
  • 使用 Ctrl-LCtrl-N 上下导航到列表中的行;
  • 按下 Enter,完成操作。

我发现这在编写代码时特别方便。


0
我使用这个映射,它类似于vscode。希望它有用!!!
nnoremap <A-d> :t. <CR>==
inoremap <A-d> <Esc>:t. <CR>==gi
vnoremap <A-d> :t$ <CR>gv=gv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接