Saltar al contenido principal

103. Los modos de Vim: Normal, Insert, Visual 🎭

La diferencia fundamental

Si vienes de editores tradicionales como Notepad, VS Code, o Word, Vim te parecerá alienígena al principio. La diferencia clave es que Vim es un editor modal.

En editores tradicionales hay básicamente un modo: escribes texto y usas atajos para funciones especiales.

En Vim hay diferentes modos para diferentes tipos de operaciones. Esto es lo que hace a Vim tan poderoso una vez que lo entiendes.

🧠 La filosofía modal

¿Por qué modos?

  • Separación de responsabilidades: Navegar ≠ Editar ≠ Seleccionar
  • Eficiencia: Cada tecla puede hacer cosas diferentes según el contexto
  • Ergonomía: Menos combinaciones de teclas (Ctrl+Alt+Shift+X)
  • Velocidad: Acciones complejas con pulsaciones simples

El modelo mental

Piensa en Vim como un lenguaje:

  • Sujeto: En qué quieres actuar (palabra, línea, párrafo)
  • Verbo: Qué quieres hacer (borrar, cambiar, copiar)
  • Complemento: Cómo o dónde (hasta el final, 3 veces, etc.)

🌟 Modo Normal: El modo por defecto

Cuando lo usas: Navegación, comandos, operaciones de texto Cómo llegar: Esc desde cualquier modo

Características del modo Normal:

  • Cada tecla es un comando
  • No escribes texto directamente
  • Es el "centro de control" de Vim
  • Aquí pasarás la mayor parte del tiempo (¡de verdad!)

Ejemplos básicos:

h, j, k, l    - Mover cursor (izquierda, abajo, arriba, derecha)
w - Siguiente palabra
b - Palabra anterior
0 - Inicio de línea
$ - Final de línea
dd - Borrar línea completa
yy - Copiar línea completa
p - Pegar
u - Deshacer

💡 El mindset correcto

  • NO: "¿Cómo escribo texto?"
  • : "¿Cómo navego y manipulo el texto existente?"

✏️ Modo Insert: Escribir texto

Cuando lo usas: Escribir y editar texto Cómo llegar: i, a, o, A, I, O desde Normal

Formas de entrar al modo Insert:

ComandoAcción
iInsert antes del cursor
aInsert después del cursor (append)
IInsert al inicio de la línea
AInsert al final de la línea
oCrear nueva línea abajo
OCrear nueva línea arriba
sBorrar carácter y entrar en insert
SBorrar línea y entrar en insert

En modo Insert:

  • Funciona como cualquier editor normal
  • Puedes escribir texto libremente
  • Flechas del teclado funcionan (aunque no es recomendado)
  • Esc para volver a Normal

🎯 Tip de eficiencia:

Entra en Insert, haz tu edición específica, sal inmediatamente. No te quedes "viviendo" en modo Insert.

👁️ Modo Visual: Seleccionar texto

Cuando lo usas: Seleccionar texto para operaciones Cómo llegar: v, V, Ctrl+v desde Normal

Tipos de selección visual:

Visual carácter (v)

  • Selecciona carácter por carácter
  • Como arrastrar con el mouse
  • Útil para selecciones precisas

Visual línea (V)

  • Selecciona líneas completas
  • Perfecto para mover/copiar bloques de código
  • Más rápido que seleccionar línea por línea

Visual bloque (Ctrl+v)

  • Selecciona rectangulos de texto
  • Increíble para editar columnas
  • Edición multi-cursor básica

Operaciones en Visual:

d          - Borrar selección
y - Copiar selección
c - Cambiar selección (borra y entra en Insert)
> - Indentar
< - Des-indentar
: - Ejecutar comando en selección

🕹️ Modo Comando: La línea de comandos

Cuando lo usas: Comandos complejos, configuración, búsqueda Cómo llegar: :, /, ? desde Normal

Tipos de línea de comandos:

Comandos (:)

:w         - Guardar
:q - Salir
:wq - Guardar y salir
:q! - Salir sin guardar
:help - Ayuda
:set - Configuraciones

Búsqueda hacia adelante (/)

/texto     - Buscar "texto" hacia adelante
n - Siguiente resultado
N - Resultado anterior

Búsqueda hacia atrás (?)

?texto     - Buscar "texto" hacia atrás

🎮 Otros modos importantes

Replace mode (R)

  • Sobrescribe texto en lugar de insertarlo
  • Como la tecla "Insert" en otros editores

Select mode (raro)

  • Similar a Visual pero más como editores tradicionales
  • Se usa principalmente en snippets y plantillas

🏃 Ejercicio práctico

Vamos a practicar cambiando entre modos:

  1. Abre Neovim:

    nvim practice.txt
  2. Escribe algo de texto:

    • Presiona i (modo Insert)
    • Escribe: "Hola mundo, estoy aprendiendo Vim"
    • Presiona Esc (volver a Normal)
  3. Navega y edita:

    • Usa h, j, k, l para mover el cursor
    • Presiona w para saltar palabras
    • Presiona A para ir al final de línea y añadir texto
    • Añade: " y es genial!"
    • Presiona Esc
  4. Selecciona y copia:

    • Presiona 0 para ir al inicio
    • Presiona v (modo Visual)
    • Muévete con w para seleccionar palabras
    • Presiona y para copiar
    • Presiona o para crear nueva línea
    • Presiona p para pegar
  5. Guarda y sal:

    • Presiona :w para guardar
    • Presiona :q para salir

📊 Resumen de transiciones entre modos

Normal ←→ Insert:  i, a, o, A, I, O, s, S  /  Esc
Normal ←→ Visual: v, V, Ctrl+v / Esc, v
Normal ←→ Command: :, /, ? / Esc, Enter
Visual ←→ Insert: c, s / Esc
Visual ←→ Command: : / Esc, Enter

🚨 Errores comunes de principiantes

1. Vivir en modo Insert

  • ❌ Entrar en Insert y quedarse ahí
  • ✅ Insert → Editar → Esc → Normal

2. Luchar contra los modos

  • ❌ "¿Por qué no puedo escribir?"
  • ✅ Verificar en qué modo estás (esquina inferior izquierda)

3. Usar demasiado el mouse

  • ❌ Mouse para todo
  • ✅ Aprender movimientos de teclado

4. No usar Visual efectivamente

  • ❌ Solo usar v (carácter)
  • ✅ Aprender V (línea) y Ctrl+v (bloque)

🎯 Indicadores visuales

La mayoría de configuraciones muestran el modo actual:

  • Normal: No muestra nada o "NORMAL"
  • Insert: "-- INSERT --"
  • Visual: "-- VISUAL --", "-- VISUAL LINE --", "-- VISUAL BLOCK --"
  • Command: : en la línea de comandos

🔜 ¿Qué sigue?

En el próximo capítulo aprenderemos los movimientos básicos en modo Normal - la base para navegar eficientemente por cualquier archivo.


💡 Tip pro: Practica las transiciones entre modos hasta que sea natural. Es la base de todo lo demás en Vim.

🎯 Objetivo del capítulo: Entender los modos de Vim y cambiar entre ellos fluidamente.