如何以类似的方式在 Vim 中复制整行 控制键+D 在 IntelliJ IDEA/Resharper 中或 控制键+替代+/ 在日食中?

有帮助吗?

解决方案

yy 或者 复制该行
或者
dd 删除(剪切)该行

然后

p 粘贴复制或删除的文本 当前行
或者
粘贴复制或删除的文本 当前行

其他提示

正常模式:查看其他答案。

前任 方式:

  • :t. 将复制该行,
  • :t 7 将在第 7 行之后复制它,
  • :,+t0 将复制当前行和文件开头的下一行(,+ 是范围的同义词 .,.+1),
  • :1,t$ 将从头到光标位置复制行到末尾(1, 是范围的同义词 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

YP 或者 Yp 或者 yyp.

copy and paste in vim

没有比这更简单的了!从正常模式:

yy

然后移至您要粘贴的行并

p

yy

将拉出当前行而不删除它

dd

将删除当前行

p

将要 put 通过上述任一方法抓取的线

如果你想要另一种方式:-)

"ayy 这会将行存储在缓冲区中 a

"ap 这将把缓冲区的内容 a 在光标处。

这有很多变体。

"a5yy 这会将 5 行存储在缓冲区中 a

http://www.vim.org/htmldoc/help.html 为了更多乐趣

做这个:

第一的, yy 复制当前行,然后 p 粘贴。

yyp - 用“yippee!”来记住它

多行之间有一个数字:

y7yp

yyp - 粘贴后

yy - 粘贴在之前

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

另一种选择是:

nmap <C-d> mzyyp`z

为您提供保留光标位置的优势。

对于不懂 vi 的人来说,上面的一些答案可能会用“粘贴...”之类的短语误导他。在那之后 当前行".
其实就是“贴...在那之后 光标".

yy 或者 复制该行
或者
dd 删除该行

然后

p 粘贴复制或删除的文本 光标
或者
粘贴复制或删除的文本 光标


如需了解更多按键绑定,您可以访问此站点: vi 完整按键绑定列表

我喜欢:转移+v (立即选择整行,并让您根据需要选择其他行),y,p

1 个陷阱:当你使用“p”来放置该行时,它会将其放置 光标所在的行,因此,如果您想在要拉出的行之后添加该行,请不要在放置新行之前将光标向下移动一行。

默认为 yyp, ,但我已经使用这种重新绑定一年左右并且喜欢它:

" set Y to duplicate lines, works in visual mode as well. nnoremap Y yyp vnoremap Y y`>pgv

我知道我参加聚会迟到了,但无论如何;我的 .vimrc 中有这个:

nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>

:copy 命令只是将选定的行或范围(总是整行)复制到作为其参数给出的行号下方。

在正常模式下,它的作用是 copy . 将此行复制到该行的正下方.

在视觉模式下它变成了 '<,'> copy '> 从选择开始到选择结束复制到选择结束下方的行.

对于那些开始学习 vi 的人来说,这里是对 vi 的一个很好的介绍,通过并排列出 vi 命令到典型的 Windows GUI 编辑器光标移动和快捷键。它列出了所有基本命令,包括 yy (复制行)和 p (粘贴在后面)或 (粘贴在前面)。

适用于 Windows 用户的 vi (Vim)

如果您想复制一行并将其粘贴到当前行的正下方,就像在 Sublime 中一样 控制键+转移+D, ,然后您可以将其添加到您的 .vimrc 文件。

imap <S-C-d> <Esc>Yp

我喜欢使用这个映射:

:nnoremap yp Yp

因为它使得它与本机一起使用保持一致 YP 命令。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top