2012-02-14 24 views

Respuesta

7

Aparte de usar una palabra temporal para el cambio, también se puede utilizar abolish plugin de la siguiente manera:

:%SubVert/{foo,bar}/{bar,foo}/g 
+0

Gracias! Exactamente lo que estaba buscando. –

1
  1. :% s/foo/bbaarr/g
  2. :% s/bar/foo/g
  3. :% s/bbaarr/foo/g

debe existir un más inteligente forma de hacerlo, pero esta funcionará con seguridad!

+0

Corrección 3.:% s/bbaarr/bar/g – Bhaskar

0

Puede hacerlo utilizando la palabra temporal. Solo asegúrese de que no exista en el documento actual.

/\<asd123\> 
:%s/\<foo\>/asd123/g 
:%s/\<asd123\>/bar/g 
:%s/\<bar\>/foo/g 
10

Tome un vistazo a esto: how to write only one pattern to exchange two strings in two-ways in vim

:s/foo\|bar/\={'foo':'bar','bar':'foo'}[submatch(0)]/g 
+1

Esto es un poco más complejo, sí, ¿pero no hay un complemento? muchos pueden preferir esto. –

+0

@JasonMcGhee: Cuando la cadena sustituta comienza con "\ =", el resto se interpreta como una expresión. – kev

+0

me encanta, eso es un vimfu ahí –

Cuestiones relacionadas