你如何在VI中复制不相邻的线?

pro*_*mer 1 vi vim editor

在下面的示例中,我想复制第1,2,4和5行(不包含第3行):

var copyMe=true;
var copyMeAsWell=true;
var doNotCopyMe = 123;
var copyMeWithLine1And2And5=true;
var alsoCopyMe=True;
Run Code Online (Sandbox Code Playgroud)

因此,当我粘贴猛拉线时,我会得到:

var copyMe=true;
var copyMeAsWell=true;
var copyMeWithLine1And2And5=true;
var alsoCopyMe=True;
Run Code Online (Sandbox Code Playgroud)

Mar*_*rth 5

你可以做到

:1,2yank q
:4,5yank Q
Run Code Online (Sandbox Code Playgroud)

将内容放入寄存器q(大写Q意味着'附加到寄存器q').
然后您可以将其粘贴"qp(或者只是p在您之间没有更改未命名的寄存器时).

注意::yank可以缩短为:y


如果你宁愿从普通模式中猛拉,你也可以使用"qy"Qy.