Vim或Vi有多个范围命令吗?

4
我想在[a,b]和[c,d]范围内进行操作,或者更多的范围。
例如,我想在1~10行和50~60行之间用"def"替换"abc"。我将执行以下两个编辑操作:
(1):1,10s/abc/def/g
(2):50,60s/abc/def/g
我能否只用一个命令完成这个操作?
2个回答

8

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

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

请参阅:help :&

你可能还想考虑使用 :g,如果每行都可以找到一个模式。请参阅 :h :g - Peter Rincker

0
你可以使用multiselect.vim插件来完成这个操作。
:1,10MSAdd
:50,60MSAdd
:MSExecCmd s/abc/def/g

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接