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.
Si no se indica un número de línea se consideraría la última del fichero.
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.
:set ic
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 (\).
Para intentar emparejar el comienzo de una línea, hay que escribir antes del string a buscar el carácter ^
Para emparejar el final de una línea, hay que terminar el string a buscar por el carácter $
Para emparejar el principio de una palabra, hay que teclear \<
Para emparejar el final de una palabra, hay que teclear \> al final del string.
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.
: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