El vi es una herramienta muy potente para la edición de ficheros de texto. Hoy vamos a ver como usarlo para buscar y reemplazar texto en un fichero.

Primero de todo para buscar una determinada cadena en un fichero usaremos simplemente:

/buscar

En este caso buscaremos desde la posición del cursor en adelante. Para buscar al revés lo haremos cambiando / por ?

?buscar

Para el caso que queramos buscar y reemplazar en la línea actual del cursor haremos:

:s/buscar/reemplazar/

En este caso reemplazaría solo la primera cadena que coincidiera, para hacerlo para todas las coincidencias de una linea lo haríamos añadiendo una g al final:

:s/buscar/reemplazar/g

Para realizar la búsqueda y reemplazo en todo el fichero deberemos añadir % delante del todo de la expresión:

:%s/buscar/reemplazar/

En este caso se haría para todas las lineas del texto, pero solo la primera instancia de cada linea, por lo que para hacerlo para todas las apariciones en el texto deberemos completar la expresión con una g al final:

:%s/buscar/reemplazar/g

Podemos realizar la substitución para un conjunto de lineas. Por ejemplo, para realizar la substitución entre las lineas 3 y 10 haríamos lo siguiente:

:3,10s/buscar/reemplazar/

Igualmente añadiríamos la g para realizar la substitución para todas las apariciones de la linea:

:3,10s/buscar/reemplazar/g