【发布时间】: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
我可以在一个命令中做到这一点吗?
【问题讨论】:
我想在 [a, b] 和 [c, d] 范围内或更多范围内做某事。
例如,我想将 1~10 和 50~60 之间的行中的“abc”替换为“def”。 下面我会做两个编辑操作:
我可以在一个命令中做到这一点吗?
【问题讨论】:
您可以使用 multiselect.vim 插件来做到这一点。
:1,10MSAdd
:50,60MSAdd
:MSExecCmd s/abc/def/g
【讨论】:
你不能有一个不连续的范围,但很容易在另一个范围上重复相同的替换:
:1,10s/abc/def/g|50,60&&
见:help :&。
【讨论】:
:g。见:h :g。