【问题标题】:How do you copy un-neighboring lines in VI?如何在 VI 中复制不相邻的行?
【发布时间】:2015-08-12 09:46:39
【问题描述】:

在下面的例子中,我想复制第 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;

【问题讨论】:

    标签: vim editor vi


    【解决方案1】:

    你可以的

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

    将内容放入寄存器q(大写的Q表示'追加到寄存器q')。
    然后,您可以将其粘贴到 "qp(如果您没有更改其间的未命名寄存器,则只需使用 p)。

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


    如果您更愿意从正常模式拉出,您也可以使用"qy"Qy

    【讨论】:

    • 我刚刚检查了一下,它工作了,即使它使用起来不是那么快..有没有办法直观地选择第 1、2、4、5 行,然后使用 yank 复制它们? (也许应该是一个不同的问题)..
    • 一种方法是使用multiselect 插件。请注意,它已经有一段时间没有更新了;要么够用,要么开发者放弃了。
    【解决方案2】:

    如果你想用命令做到这一点,你可以这样做:

    :3d|1,4y|u
    

    其实就是去掉#3行,复制你想要的那几行,然后撤消。

    【讨论】:

      猜你喜欢
      • 2012-09-28
      • 2023-03-14
      • 2013-02-10
      • 2011-12-07
      • 1970-01-01
      • 2014-10-30
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      相关资源
      最近更新 更多