VI/Vim – DÍA 4

Buscar y reemplazar texto (incluyendo patrones simples)


1. Objetivo del día

Aprender a:

  • buscar texto dentro de un archivo
  • navegar entre los resultados
  • usar búsquedas hacia adelante y hacia atrás
  • usar reemplazos simples
  • reemplazar en una línea, un rango o todo el archivo

Esto te permitirá editar archivos grandes de forma rápida y precisa, algo fundamental en tareas de sysadmin/devops.


2. Requisitos

  • Estar cómodo en modo normal
  • Saber moverte por texto (Día 2)
  • Saber editar básico (Día 3)

3. Teoría esencial

VI/Vim tiene un sistema de búsqueda extremadamente rápido y eficiente, totalmente integrado con los comandos de navegación.


4. Búsqueda básica

Buscar una palabra hacia adelante:

/palabra

Ejemplo:

/error

Pulsa ENTER.


Navegar entre coincidencias:

n   siguiente resultado
N   resultado anterior

Buscar hacia atrás:

?palabra

Buscar la palabra bajo el cursor:

*

Buscar palabra exacta hacia adelante.

#

Buscar hacia atrás.

Esto es muy útil en Configs, JSON, YAML o logs.


5. Búsqueda “fuzzy” con patrones simples

VI entiende patrones básicos (no es regex completo, pero es útil).

Ejemplos:

/[0-9]

Busca dígitos.

/error.|warn.

Busca palabras que empiecen por «error» o «warn».

(Más adelante, si quieres, puedes crear un tutorial extra SOLO de regex.)


6. Reemplazar texto (comando :s)

El reemplazo se hace desde modo de comandos (:).

6.1. Reemplazar en la línea actual:

:s/buscar/reemplazar

Ejemplo:

:s/error/aviso

Solo cambia la primera coincidencia de esa línea.


6.2. Reemplazar TODAS las coincidencias en la línea:

:s/buscar/reemplazar/g

La g significa “global”.


6.3. Reemplazar en TODO el archivo:

:%s/buscar/reemplazar/g

Ejemplo:

:%s/localhost/127.0.0.1/g

Cambia todas las apariciones.


6.4. Confirmar cada reemplazo (muy útil):

:%s/palabra/nueva/gc

Vim te preguntará:

  • y → sí
  • n → no
  • a → todos
  • q → salir
  • l → último

Ideal para configuraciones delicadas.


7. Reemplazos por rango

Solo en las líneas 10 a 20:

:10,20s/old/new/g

Del inicio del archivo hasta la línea donde estás:

:1,.s/error/warning/g

De tu línea actual hasta el final:

:.,$s/foo/bar/g

8. Práctica guiada (20–30 min)

8.1. Abrir un archivo de prueba

vi logs.txt

Y pega este texto (modo inserción):

INFO  Starting service
INFO  Checking configuration
ERROR Connection failed
WARNING Low memory
INFO  Retrying connection
ERROR Timeout occurred

Guarda con :w.


8.2. Busca patrones

  1. /ERROR
  2. Usa n y N
  3. Usa * en la palabra “INFO” para buscarla automáticamente

8.3. Reemplazos reales

  1. Cambiar “ERROR” por “FAIL” solo en la línea actual: :s/ERROR/FAIL
  2. Cambiar todas las “WARNING” a “ALERT” en todo el archivo: :%s/WARNING/ALERT/g
  3. Cambiar “INFO” a “INFO_DEBUG” con confirmación: :%s/INFO/INFO_DEBUG/gc
  4. Cambiar “Retrying” → “Reattempting” solo en líneas 3 a 5: :3,5s/Retrying/Reattempting/g

9. Checklist del Día 4

  • Buscas texto con / y ?
  • Navegas resultados con n y N
  • Usas * para buscar palabra bajo cursor
  • Reemplazas en línea (:s/.../.../)
  • Reemplazas en todo el archivo (:%s/.../.../g)
  • Conoces la opción de confirmación (c)
  • Puedes restringir reemplazos a un rango de líneas

10. Ejercicio sugerido

En un archivo de 20–30 líneas:

  1. Busca todas las veces que aparece una palabra común (“server”, “error”, “config”…).
  2. Sustituye una palabra por otra en todo el archivo.
  3. Haz un reemplazo con confirmación.
  4. Reemplaza solo entre las líneas 5 y 15.
  5. Usa * para buscar la palabra bajo el cursor.

11. Día 4 completado

Este día cambia completamente la experiencia con VI/Vim:
ahora ya puedes navegar y manipular archivos grandes como un profesional.

En el Día 5, veremos:

  • cómo trabajar con múltiples archivos
  • cómo usar buffers
  • cómo saltar entre documentos sin cerrar
  • cómo abrir varios archivos a la vez

Esto es imprescindible para editar configuraciones complejas o revisar varios logs al mismo tiempo.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies