【问题标题】:How can I do this search&replace with vim?如何用 vim 进行此搜索和替换?
【发布时间】:2011-11-02 04:14:19
【问题描述】:

我有一个包含以下行的文本文件:

options[15]=new Option("text1","25");

options[16]=new Option("text2","23");

options[17]=new Option("text3","12");

(还有更多……)

如何用 text# 替换每一行?例如,第一行应替换为 text1,第二行应替换为 text2,等等...

【问题讨论】:

    标签: regex vim


    【解决方案1】:

    阅读:h /\(

    %s/\Voptions[\d\+]=new Option("\(text\d\+\)","\d\+");/\1/g
    

    【讨论】:

      【解决方案2】:

      看起来您已经在源中拥有它们。假设你有这样的行:

      options[15]=new Option("text#","25");
      ...

      而你想改成这样:

      options[15]=new Option("text15","25");
      ...

      这是你要做的: 将第一行更改为 text1 拉出“text1”

      create a macro (qq)
      /text
      dw
      p
      ctrl+a
      b
      vwly
      q
      

      那么如果你有 25 行:做 23@q

      23 次宏调用,因为您手动完成了前两次。

      【讨论】:

        【解决方案3】:

        作为:s 的替代品并使用宏,我有时会发现:normal 非常令人愉快。

        %norm df"f"d$
        

        我们可以缩短它,但使用; 运动,它将重复f" 运动并使用D,它与d$ 相同

        %norm df";D
        

        【讨论】:

          猜你喜欢
          • 2015-02-15
          • 2011-06-15
          • 2016-07-12
          • 1970-01-01
          • 2017-09-21
          • 1970-01-01
          • 2011-05-04
          • 2017-01-05
          • 1970-01-01
          相关资源
          最近更新 更多