проблема с заменой текста, когда цель содержит символ '&'

Sep 16 2020

Я попытался заменить if(cond1)на if(cond1&&cond2)в vim, поэтому набрал команду

:%s/\Vif(cond1)/if(cond1&&cond2)/g

но результат
if(cond1if(cond1)if(cond1)cond2)а не
if(cond1&&cond2)

Какую команду я должен использовать?

Ответы

3 D.BenKnoble Sep 16 2020 at 20:22

& в замене немного особенное:

magic  nomagic  action
  &      \&     replaced with the whole matched pattern      *s/\&*

Но вы можете избежать этого с помощью \:

%substitute/\Vif(cond1)/if(cond1\&\&cond2)/g