vim:搜索并替换以特定字符串开头的行

时间:2014-01-30 06:00:57

标签: regex vim

我想替换文件中的特定单词,这个单词出现在很多地方,我有兴趣在行开头或有特定单词时替换它。 例如(忽略语法)

All roads lead to Rome.
Be Roman in Rome.
Where are these roads in Rome.

我正在尝试做%s/roads.*Rome/roads.*Italy之类的事情 所有包含道路和罗马的线路都应该将罗马改为意大利。 第二行应该没有改变。

1 个答案:

答案 0 :(得分:5)

使用反向引用:

%s/\(roads.*\)Rome/\1Italy/

或者,说:

g/roads/s/Rome/Italy

(即匹配包含roads的行和Rome代替Italy。此方法不依赖于单词在行中出现的顺序。)