2012-06-17 22 views
19

Estoy reemplazando todos los fragmentos de información en línea con un div para cargarlos de una manera no bloqueante. Para modificar todos los artículos heredados que tienen la siguienteCómo encontrar reemplazar utilizando grupos de expresiones regulares en vim

<script src='https://gist.github.com/1234.js?file=gistfile1.sh'></script> 

que necesito para sustituirla por la siguiente en su lugar

<div data-gist=1234><a href='http://gist.github.com/1234'>gistfile1.m</a></div> 

Hasta ahora lo que estoy tratando (vim Novato aquí) parece -doesn't para trabajar

:%s/<script src='https:\/\/gist.github.com\/(d+).js?file=gistfile1.sh'><\/script>/<div data-gist={1}><a href='http://gist.github.com/{1}'>gistfile1.m</a></div>//g 

Respuesta

47

lo tengo para trabajar con esto:

:%s!<script src='https://gist.github.com/\(\d\+\).js?file=gistfile1.sh'></script>!<div data-gist=\1><a href='http://gist.github.com/\1'>gistfile1.m</a></div>!g 

par de cosas a tener en cuenta:

  1. que utilizan ! en lugar de / como separador para evitar tener que escapar de ruta barras
  2. tiene que escapar (, d, + y ) en su intento.
  3. Tuviste / extra al final.
  4. Para insertar el grupo de juego, utilice \1 en lugar de {1}
+0

agradable! lo único que debe observar es que necesita comenzar con:% s –

+0

Solucionado, gracias. – Tim

+0

una edición rápida -cómo puedo ignorar el archivo = (el nombre del archivo varía) y no lo necesito durante el reemplazo para que pueda perderse (lo siento por el alcance del rastreo) ** resulta que tenía varios nombres de archivo para cada uno gist y en realidad no significan mucho para esta implementación –

Cuestiones relacionadas