Você pode usar a substituição especial \=
, que permite executar vim
code:
Por exemplo, para trocar foo
e bar
:
%s/foo\|bar/\=submatch(0) == "foo" ? "bar" : "foo"/g
Ou pelo seu exemplo:
%s/ca[rt]/\=submatch(0) == "car" ? "truck" : "dog"/g
Veja:
:h sub-replace-expression
para detalhes.