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

时间:2015-08-12 09:46:39

标签: vim editor vi

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

var copyMe=true;
var copyMeAsWell=true;
var doNotCopyMe = 123;
var copyMeWithLine1And2And5=true;
var alsoCopyMe=True;

因此,当我粘贴拉出的线条时,我会得到:

var copyMe=true;
var copyMeAsWell=true;
var copyMeWithLine1And2And5=true;
var alsoCopyMe=True;

2 个答案:

答案 0 :(得分:5)

你可以做到

:1,2yank q
:4,5yank Q

将内容放入注册q(大写Q表示'附加注册q')。
然后,您可以使用"qp(或者只是p粘贴它,如果您没有更改之间未命名的寄存器)。

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

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

答案 1 :(得分:2)

如果你想用命令做这个,你可以这样做:

:3d|1,4y|u

实际上,它意味着,删除#3行,复制你想要的那些行,然后撤消。