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)
Escpara 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,lpara mover el cursor - Presiona
wpara saltar palabras - Presiona
Apara ir al final de línea y añadir texto - Añade: " y es genial!"
- Presiona
Esc
- Usa
-
Selecciona y copia:
- Presiona
0para ir al inicio - Presiona
v(modo Visual) - Muévete con
wpara seleccionar palabras - Presiona
ypara copiar - Presiona
opara crear nueva línea - Presiona
ppara pegar
- Presiona
-
Guarda y sal:
- Presiona
:wpara guardar - Presiona
:qpara 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.