Modos de Vim explicados: Normal, Insert, Visual y Command

DJC > Tutoriales

| Vim |

Vim es un editor modal: su comportamiento depende del "modo" en el que te encuentres. Entender y dominar los cuatro modos básicos —Normal, Insert, Visual y Command— es la clave para editar texto de manera rápida y eficiente.

Resumen rápido

  • Normal: modo por defecto para navegar y editar con comandos (sin insertar texto directamente).
  • Insert: para escribir texto literalmente (como en un editor tradicional).
  • Visual: para seleccionar texto (caracteres, palabras o líneas) y luego operar sobre la selección.
  • Command (línea de comandos): para ejecutar comandos complejos, guardar, salir, reemplazar, buscar, etc.

Modo Normal

Qué es

  • Es el modo para navegar, borrar, copiar, pegar y ejecutar casi todos los comandos de Vim.

Cómo entrar

  • Al abrir Vim ya estás en Normal. Si vienes de Insert, presiona Esc o Ctrl-[ para volver a Normal.

Comandos útiles (modo Normal)

  • h, j, k, l — mover el cursor (izquierda, abajo, arriba, derecha).
  • w, b, e — moverse por palabras (siguiente, anterior, final de palabra).
  • 0 (cero) y $ — ir al principio y al final de la línea.
  • dd — borrar línea (y copiarla en el registro).
  • yy — copiar (yank) línea.
  • p — pegar después del cursor.
  • u — deshacer (undo).
  • Ctrl-r — rehacer (redo).
  • /texto — buscar hacia adelante; n para siguiente, N para anterior.

Ejemplos

  • 5j — bajar 5 líneas.
  • 3dw — borrar 3 palabras desde el cursor.

Consejos

  • Combina números con comandos: 10j baja 10 líneas, 2dd borra dos líneas.

Modo Insert

Qué es

  • El modo para insertar texto tal cual.

Cómo entrar

  • Presiona i (insertar antes del cursor), I (al inicio de la línea), a (insertar después del cursor), A (al final de la línea), o (abrir nueva línea abajo), O (abrir nueva línea arriba).

Salir de Insert

  • Esc o Ctrl-[ para volver al modo Normal.

Consejos rápidos

  • Usa Ctrl-o desde Insert para ejecutar un único comando Normal y volver a Insert.

Modo Visual

Qué es

  • Sirve para seleccionar texto y luego aplicar comandos (borrar, copiar, cambiar, etc.). Hay tres sub-modos: visual por caracteres, visual por línea y visual por bloque.

Cómo entrar

  • v — visual por caracteres.
  • V — visual por líneas.
  • Ctrl-v — visual por bloques (rectangular / blockwise).

Comandos útiles dentro de Visual

  • y — yank (copiar selección).
  • d — borrar la selección.
  • > y < — sangrar a la derecha/izquierda la selección.
  • :s/patrón/repl/ — puedes ejecutar sustituciones sobre la selección (escribe : después de seleccionar y verás :'<,'> en la línea de comandos).

Ejemplos

  • Selecciona una palabra: coloca el cursor sobre la palabra y presiona v + iw (interior de palabra) o usa viw directo desde Normal.
  • Seleccionar 3 líneas: V2j y luego y para copiar.

Modo Command (línea de comandos)

Qué es

  • También llamado modo Ex o modo de línea de comandos. Se usa para guardar, salir, buscar y reemplazar con sintaxis más avanzada.

Cómo entrar

  • Desde Normal presiona : para abrir la línea de comandos en la parte inferior.

Comandos comunes

  • :w — guardar (write).
  • :q — salir (quit).
  • :wq o :x — guardar y salir.
  • :q! — salir sin guardar.
  • :e archivo — abrir/editar otro archivo.
  • :%s/viejo/nuevo/g — reemplazar en todo el archivo (global).
  • :set number — mostrar números de línea; :set nonumber para ocultarlos.

Buscar y reemplazar

  • :/patrón inicia una búsqueda; muchas veces es más cómodo /patrón desde Normal.
  • Sustitución con confirmación: :%s/viejo/nuevo/gc (pregunta antes de cada reemplazo).

Flujo típico y atajos para ser más eficiente

  1. Navega en Normal (usa w, b, f, t, } y { para moverte rápidamente).
  2. Entra en Insert (i o a) para escribir o editar texto.
  3. Vuelve a Normal (Esc) y usa Visual para seleccionar si necesitas mover/cambiar bloques.
  4. Usa la línea de comandos (:) para guardar, buscar o ejecutar sustituciones complejas.

Atajos que aceleran

  • . — repetir el último comando (muy poderoso).
  • ciw — cambiar (delete + enter Insert) el interior de la palabra.
  • ci{ o ci( — cambiar el interior de un bloque entre llaves/paréntesis.

Ejercicios prácticos (5–10 minutos cada uno)

  1. Abre un archivo de texto con varias líneas. En Normal, usa :set number y practica mover el cursor con 10j, 5k, 0 y $.
  2. Inserta una nueva línea debajo de la actual con o, escribe texto, y vuelve a Normal con Esc. Repite 5 veces y luego usa dd para borrar tres de esas líneas.
  3. Copia 2 líneas con yy o 2yy y pégalas después con p.
  4. Selecciona una palabra con viw y reemplázala escribiendo c + nuevo texto + Esc.
  5. Haz una sustitución global segura: :%s/foo/bar/gc y responde a las confirmaciones.

Errores comunes y cómo evitarlos

  • Quedarse en Insert y presionar combinaciones pensando que son atajos: recuerda salir a Normal con Esc.
  • Olvidar que dd y yy almacenan en registros; si pegas algo inesperado, puede ser que copiaste otra cosa.
  • Usar :wq cuando solo querías salir sin guardar: usa :q! para descartar cambios.

Recursos rápidos para aprender más

  • Ejecuta vimtutor en la terminal para un tutorial interactivo (muy recomendado).
  • Busca guías "vim tips" y cheatsheets (por ejemplo: movimientos, operadores, text objects).

Si quieres, puedo:

  • Añadir gifs o imágenes que muestren las teclas y los efectos.
  • Incluir ejemplos prácticos avanzados (macros, registros, plugins útiles).
  • Crear una versión en inglés o ejercicios con soluciones paso a paso.

Dime qué prefieres y lo añado.

DJC > Tutoriales