替换所有行中的模式,但仅在另一个模式之前

Replace a pattern in all lines but only before another pattern

我有这样的文件:

something something other text MARKER bla bla something
something else something MARKER foo bar etc pp something

我想用 another thing 替换 something,但只能在 MARKER 之前。所以替换应该产生:

another thing another thing other text MARKER bla bla something
another thing else another thing MARKER foo bar etc pp something

如何在 vim 中完成?

例如,

:%s/something\ze.*MARKER/another thing/g

:h /\ze