2016-02-27 1 views
0

У нас есть базовый код c, такой как;Замена элементов в Vim без замены старых замененных

if (a > b && a < c) { 

    min = a ; } 

Я хочу знать, как изменить «<„ы в длинном с „>“ и „>“ s с“<».

Но когда я пытаюсь это сделать, обычно «<« s становится «>», это не проблема;

Но после того, когда я пытаюсь изменить «>» s с «<» с, он терпит неудачу, потому что те, которые я изменилась до изменений снова, то есть, они становятся они были до

Таким образом, необходимо, чтобы измените их сразу, но, например, операцию терминала vim;

:%s/>/< | %s/</> 

не удается успех это.

Как я мог достичь этой проблемы?

+3

Сначала измените все '' 'на ранее неиспользуемый символ, а затем измените'> 'на' <', а затем временный символ на'> '? – EOF

+0

Имму, что работает очень хорошо, я думаю, спасибо – onurctirtir

+0

@EOF, можете ли вы ответить на этот вопрос, чтобы ОП мог его выбрать и закрыть вопрос? – user3629249

ответ

3

использовать словарь для отображения на их замену. Попробуйте это

:%s/\v(\<|\>)/\={'<':'>','>':'<'}[submatch(0)]/g