Buscar y reemplazar

vi  proporciona varios modos de encontrar un string de caracteres en el texto, así como de reemplazarlo.

Un string es simplemente uno o más caracteres en fila. Puede incluir letras, números, signos de puntuación, caracteres especiales, espacios en blanco, tabulaciones o retornos de carro. Un string puede ser una palabra gramatical o puede ser una parte de una palabra.

Para ir a una línea determinada de un fichero abierto se teclearía:
#lineaG        (Ej. 6G)

Si no se indica un número de línea se consideraría la última del fichero.

Búsqueda

Para encontrar un string, hay que escribir una barra hacia la derecha (/) seguida por el string que se desea buscar, y pulsar return.

El vi  posiciona el cursor en la siguiente ocurrencia del string. Tecleando n se va a la siguiente ocurrencia del string, y pulsando N a la anterior.

Si en lugar de una barra se escribiese una interrogación (?), la búsqueda sería hacia atrás, y las direcciones de las órdenes n y N se invertirían.

Normalmente las búsquedas son case-sensitive. Si se quiere que vi  ignore mayúsculas y minúsculas durante la búsqueda, hay que teclear previamente:

:set ic

Para volver al cambio por defecto se teclearía:
:set noic

Ciertos caracteres especiales (/ & ! . ^ * $ \ ?) tienen un significado particular en el proceso de búsqueda, y por lo tanto deben especificarse de un modo especial cuando están incluidos en el string a buscar, precediéndolos por la barra hacia atrás (\).

Refinando la búsqueda

Se pueden realizar búsquedas más precisas, marcando el string con indicadores de características tales como:

Reemplazo

El procedimiento para reemplazar un string está es similar al de búsqueda arriba mencionado. Todos los caracteres especiales de emparejamiento se pueden usar también en una búsqueda+reemplazamiento.

La forma básica de la orden es:

:g/string_buscado/s//string_cambiado/g

Se puede modificar el comando para parar la búsqueda y hacer que el vi  pida confirmación antes de realizar el reemplazo, mediante la orden gc (consult), respondiendo y (sí) o n (no).

Para terminar el proceso bastaría con pulsar Ctrl-C