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.