【问题标题】:Is there multiple range command for Vim or Vi?Vim 或 Vi 是否有多个范围命令?
【发布时间】:2018-04-10 15:12:50
【问题描述】:

我想在 [a, b] 和 [c, d] 范围内或更多范围内做某事。

例如,我想将 1~10 和 50~60 之间的行中的“abc”替换为“def”。 下面我会做两个编辑操作:

(1) :1,10s/abc/def/g

(2) :50,60s/abc/def/g

我可以在一个命令中做到这一点吗?

【问题讨论】:

    标签: vim command vi macvim


    【解决方案1】:

    您可以使用 multiselect.vim 插件来做到这一点。

    :1,10MSAdd
    :50,60MSAdd
    :MSExecCmd s/abc/def/g
    

    【讨论】:

      【解决方案2】:

      你不能有一个不连续的范围,但很容易在另一个范围上重复相同的替换:

      :1,10s/abc/def/g|50,60&&
      

      :help :&

      【讨论】:

      • 如果在每一行都可以找到一个模式,可能还想研究使用:g。见:h :g
      猜你喜欢
      • 2011-01-12
      • 2019-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多