Modos de Vim explicados: Normal, Insert, Visual y Command
| 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
EscoCtrl-[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;
npara siguiente,Npara anterior.
Ejemplos
5j— bajar 5 líneas.3dw— borrar 3 palabras desde el cursor.
Consejos
- Combina números con comandos:
10jbaja 10 líneas,2ddborra 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
EscoCtrl-[para volver al modo Normal.
Consejos rápidos
- Usa
Ctrl-odesde 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 usaviwdirecto desde Normal. - Seleccionar 3 líneas:
V2jy luegoypara 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).:wqo: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 nonumberpara ocultarlos.
Buscar y reemplazar
:/patróninicia una búsqueda; muchas veces es más cómodo/patróndesde 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
- Navega en Normal (usa
w,b,f,t,}y{para moverte rápidamente). - Entra en Insert (
ioa) para escribir o editar texto. - Vuelve a Normal (
Esc) y usa Visual para seleccionar si necesitas mover/cambiar bloques. - 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{oci(— cambiar el interior de un bloque entre llaves/paréntesis.
Ejercicios prácticos (5–10 minutos cada uno)
- Abre un archivo de texto con varias líneas. En Normal, usa
:set numbery practica mover el cursor con10j,5k,0y$. - Inserta una nueva línea debajo de la actual con
o, escribe texto, y vuelve a Normal conEsc. Repite 5 veces y luego usaddpara borrar tres de esas líneas. - Copia 2 líneas con
yyo2yyy pégalas después conp. - Selecciona una palabra con
viwy reemplázala escribiendoc+ nuevo texto +Esc. - Haz una sustitución global segura:
:%s/foo/bar/gcy 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
ddyyyalmacenan en registros; si pegas algo inesperado, puede ser que copiaste otra cosa. - Usar
:wqcuando solo querías salir sin guardar: usa:q!para descartar cambios.
Recursos rápidos para aprender más
- Ejecuta
vimtutoren 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.