Vim替换不匹配一行中的多个匹配项

时间:2015-04-12 17:40:47

标签: regex vim

我需要用foo替换所有bar个字词。

我尝试使用:%s/foo/bar/g但问题是foo在一行中多次出现,只有每行中第一次出现匹配我必须再次运行命令。

例如,

:%s/"/'/g开启 "undefined"仅匹配第一个"

如何匹配所有行中的所有匹配项?

1 个答案:

答案 0 :(得分:0)

实际上,您使用的命令应该有效。在这里你有代码来创建一个文件并通过Vim在前面运行你的命令。模式:

$ cat << EOF > /tmp/sample.txt
> foo baz foo
> foo foo baz baz foo
> baz baz foo baz foo
> EOF

$ ex /tmp/sample.txt << EOFEX
> :%s/foo/bar/g
> :x
> EOFEX

$ cat /tmp/sample.txt
bar baz bar
bar bar baz baz bar
baz baz bar baz bar

所有出现的&#39; foo&#39;已被所有行代替。