martes, 15 de febrero de 2011

Sustituir texto con VIM, parte 1

VIM tiene un comando para sustituir, lo que hace es buscar un patrón de texto y lo reemplaza por otro.

El comando sería:
:[rango]s/patrón_a_buscar/texto_de_reemplazo[/opciones]

Si no especificamos el rango, se sustituye sólo en la línea actual, el rango lo podemos expresar como:
  •  % para todo el documento
  • 2, 4 para sustituir entre las líneas 2 y 4
  • ., $ para sustituir desde la línea actual (.) hasta la última ($)
  • ., +2 para sustituir desde la actual y las siguientes dos
Entre las opciones posibles tenemos:
  • g para sustituir todas las coincidencias dentro del rango (por defecto sólo sustituye la primera)
  • c solicita confirmación antes de sustituir
  • i sustituye sin considerar sensibilidad a mayúsculas o minúsculas.
  • podemos mezclarlas: gc sustituirá todas las coincidencias pero solicitará confirmación antes.
Ejemplos:
//Sustituir la primera aparición de foo por bar entre la líneas 4 y 10 del documento
:4,10s/foo/bar
//Igual que el ejemplo anterior pero para todas las ocurrencias
:4,10s/foo/bar/g
En el próximo post mostraré el empleo de caracteres especiales para construir patrones de textos.

No hay comentarios: