Vi复制粘贴而不导航到该行

use*_*789 8 vi vim

我是否可以说在特定行(x)上复制内容并粘贴到当前行而不需要转到x.

现在,我需要打字:x<Enter>yy<C-o>p.我只是想看看能否更有效地完成这项工作.

Ken*_*ent 12

:t你可以使用.

例如,如果你在第77行,并且你想要在当前行下面复制第7行,即#78,你只需:

:7t.
Run Code Online (Sandbox Code Playgroud)

执行此操作后,您的光标将位于第78行,即新"粘贴"的行.

阅读:h :t细节,你可能想知道强大的:h range.

另一个优势:t,而不是y/Y就是你保持"寄存器不变.


Pet*_*ker 5

在Vim中提取文本的方法很多

  • :copy:t命令可以复制一行.例如:42t .
  • :t可以采用搜索模式的范围.例如:?foo?t.
  • 使用:yank猛拉线.例如:43y
  • 使用:global命令抽取/复制多行.例如:g/foo/y A
  • 删除标记,然后搜索或转到要拉开的链接,然后跳回标记.例如ma?foo<cr>yy`ap
  • 使用<c-o>类似于使用标记跳回.
  • 使用g;移动到更改列表旧的位置.(与商标相似)

有关更多帮助请参阅:

:h :t
:h range
:h :y
:h m
:h g;
:h ctrl-o
Run Code Online (Sandbox Code Playgroud)


Ida*_*rye 0

您可以使用该getline()函数读取该行并使用该append()函数写入该行:

call append('.',getline('42'))
Run Code Online (Sandbox Code Playgroud)

如果需要,您可以将其捆绑到命令中:

command! -nargs=1 FetchLine call append('.',getline(<q-args>))
FetchLine 42
Run Code Online (Sandbox Code Playgroud)