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?"
- SÍ: "¿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:
Comando | Acción |
---|---|
i | Insert antes del cursor |
a | Insert después del cursor (append) |
I | Insert al inicio de la línea |
A | Insert al final de la línea |
o | Crear nueva línea abajo |
O | Crear nueva línea arriba |
s | Borrar carácter y entrar en insert |
S | Borrar 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:
-
Abre Neovim:
nvim practice.txt
-
Escribe algo de texto:
- Presiona
i
(modo Insert) - Escribe: "Hola mundo, estoy aprendiendo Vim"
- Presiona
Esc
(volver a Normal)
- Presiona
-
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
- Usa
-
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
- Presiona
-
Guarda y sal:
- Presiona
:w
para guardar - Presiona
:q
para salir
- Presiona
📊 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) yCtrl+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.