Neovim es un editor de texto moderno y extensible construido sobre los cimientos de Vim. Si alguna vez viste a alguien volar por el código sin tocar el ratón y pensaste "yo quiero eso," estás en el lugar correcto. Neovim conserva todo lo que hizo legendario a Vim — edición modal, comandos componibles, un lenguaje para manipular texto — y agrega scripting de primera clase con Lua, soporte integrado de LSP y un ecosistema de plugins que lo hacen sentir como un IDE completo.
La curva de aprendizaje es real. No hay forma de evitarla. Tu primera semana se sentirá más lenta que cualquier editor del que vengas, y probablemente volverás a VS Code al menos una vez. Eso es normal. La idea clave es que Neovim no se trata de memorizar cientos de atajos — se trata de aprender una pequeña gramática de movimientos y operadores que se combinan entre sí. Una vez que d (delete) + w (word) hace clic como "eliminar palabra," te darás cuenta de que c (change) + w también funciona, y y (yank) + w, y de repente ya no estás memorizando atajos. Estás hablando un lenguaje.
Este cheatsheet cubre lo que realmente usarás día a día. No es exhaustivo — la documentación oficial es la referencia real — pero debería hacerte productivo y ayudarte a construir la memoria muscular que hace que Neovim valga la pena. Hemos incluido atajos comunes de LSP y Telescope porque la mayoría de las configuraciones modernas de Neovim los usan, pero tus keymaps específicos pueden variar según tu configuración. Ante la duda, :map te muestra qué está vinculado dónde.
Modos
El poder de Neovim viene de su diseño modal. Siempre estás en uno de estos modos, y saber cómo moverte entre ellos es la base de todo lo demás.
Cambio de Modos
Esc
Volver al modo Normal desde cualquier modoi
Insertar antes del cursora
Insertar después del cursor (append)I
Insertar al inicio de la líneaA
Insertar al final de la líneao
Abrir nueva línea debajo y entrar en modo InsertO
Abrir nueva línea arriba y entrar en modo Insertv
Entrar en modo Visual (selección de caracteres)V
Entrar en modo Visual Line (seleccionar líneas completas)Ctrl-v
Entrar en modo Visual Block (selección de columnas):
Entrar en modo de línea de comandosR
Entrar en modo Replace (sobrescribir caracteres)
Si sigues presionando Esc y nada pasa, podrías estar en un buffer de terminal. Intenta Ctrl-\ y luego Ctrl-n para volver al modo Normal.
Navegación y Movimientos
Los movimientos son la mitad de la gramática componible de Neovim. Aprende estos y podrás combinarlos con cualquier operador.
Movimiento Básico
hjkl
Izquierda / abajo / arriba / derechaw
Saltar al inicio de la siguiente palabrab
Saltar al inicio de la palabra anteriore
Saltar al final de la palabra actual/siguienteWBE
Igual que w/b/e pero omitiendo puntuación (por WORD)
Movimiento en Línea
0
Saltar al inicio de la línea^
Saltar al primer carácter no vacío$
Saltar al final de la líneaf{char}
Saltar hacia adelante hasta {char} en la línea actualF{char}
Saltar hacia atrás hasta {char} en la línea actualt{char}
Saltar justo antes de {char} hacia adelanteT{char}
Saltar justo después de {char} hacia atrás;
Repetir último f/F/t/T hacia adelante,
Repetir último f/F/t/T hacia atrás
Movimiento en Archivo y Pantalla
gg
Ir a la primera línea del archivoG
Ir a la última línea del archivo{number}G
Ir a la línea {number}%
Saltar al paréntesis/corchete correspondienteCtrl-d
Desplazar media página hacia abajoCtrl-u
Desplazar media página hacia arribaCtrl-f
Desplazar una página completa hacia abajoCtrl-b
Desplazar una página completa hacia arribazz
Centrar la línea actual en la pantallazt
Mover la línea actual al tope de la pantallazb
Mover la línea actual al fondo de la pantalla{
Saltar a la línea en blanco anterior (párrafo arriba)}
Saltar a la siguiente línea en blanco (párrafo abajo)
f y t son joyas ocultas. En lugar de presionar w cinco veces, prueba f( para saltar directamente al siguiente paréntesis. Una vez que esto hace clic, te preguntarás cómo vivías sin ello.
Operadores de Edición
Los operadores se combinan con movimientos para formar comandos. Este es el verdadero superpoder: aprende unos pocos operadores y unos pocos movimientos, y podrás hacer docenas de cosas.
Operadores Principales
d{motion}
Eliminar (cortar) texto cubierto por el movimientoc{motion}
Cambiar — eliminar texto y entrar en modo Inserty{motion}
Copiar (yank) texto cubierto por el movimiento>{motion}
Indentar a la derecha<{motion}
Indentar a la izquierda={motion}
Auto-indentar / reformateargu{motion}
Convertir a minúsculasgU{motion}
Convertir a mayúsculas
Combinaciones Comunes
dd
Eliminar línea completaD
Eliminar desde el cursor hasta el final de la líneaC
Cambiar desde el cursor hasta el final de la líneax
Eliminar carácter bajo el cursors
Eliminar carácter y entrar en modo Insertr{char}
Reemplazar carácter bajo el cursor con {char}J
Unir la línea actual con la de abajo~
Alternar mayúscula/minúscula del carácter bajo el cursor
Objetos de Texto (usar con operadores)
iw
Palabra interior (solo la palabra, sin espacio circundante)aw
Una palabra (palabra más espacio circundante)i"
Dentro de comillas doblesi'
Dentro de comillas simplesit
Dentro de etiqueta HTML/XML
ci" (cambiar dentro de comillas) es probablemente la combinación que más usarás. ¿Cursor en cualquier lugar dentro de un string entrecomillado? ci" limpia el contenido y te deja en modo Insert. Funciona con paréntesis (ci(), llaves (ci{), corchetes (ci[) y etiquetas (cit).
Deshacer, Rehacer y Registros
Deshacer y Repetir
.
Repetir último cambio — increíblemente potente
Registros y Portapapeles
p
Pegar después del cursor"{reg}y{motion}
Copiar al registro {reg}"{reg}p
Pegar desde el registro {reg}"+y{motion}
Copiar al portapapeles del sistema"+p
Pegar desde el portapapeles del sistema:reg
Mostrar contenido de todos los registros
El comando . (punto) repite tu último cambio. Haz una edición una vez, luego muévete al siguiente lugar y presiona . para aplicarla de nuevo. Esta es una de las funciones más subestimadas de Vim y hace que las ediciones repetitivas sean casi sin esfuerzo.
Buscar y Reemplazar
Búsqueda
/{pattern}
Buscar hacia adelante?{pattern}
Buscar hacia atrásn
Saltar a la siguiente coincidenciaN
Saltar a la coincidencia anterior*
Buscar hacia adelante la palabra bajo el cursor#
Buscar hacia atrás la palabra bajo el cursor:noh
Limpiar resaltado de búsqueda
Sustitución (Buscar y Reemplazar)
:s/old/new/
Reemplazar primera ocurrencia en la línea actual:s/old/new/g
Reemplazar todas las ocurrencias en la línea actual:%s/old/new/g
Reemplazar todas las ocurrencias en el archivo:%s/old/new/gc
Reemplazar todas en el archivo con confirmación:'<,'>s/old/new/g
Reemplazar en la selección visual
Ventanas y Divisiones
Crear Divisiones
Ctrl-wv
Dividir ventana verticalmenteCtrl-ws
Dividir ventana horizontalmente:vsp {file}
División vertical y abrir archivo:sp {file}
División horizontal y abrir archivo
Navegar entre Divisiones
Ctrl-wh
Mover a la división izquierdaCtrl-wj
Mover a la división inferiorCtrl-wk
Mover a la división superiorCtrl-wl
Mover a la división derechaCtrl-ww
Rotar entre divisiones
Redimensionar y Gestionar Divisiones
Ctrl-w=
Igualar el tamaño de todas las divisionesCtrl-w_
Maximizar altura de la división actualCtrl-w|
Maximizar ancho de la división actualCtrl-wo
Cerrar todas las divisiones excepto la actualCtrl-wq
Cerrar la división actualCtrl-wT
Mover la división actual a una nueva pestaña
Buffers y Pestañas
Los buffers son como Neovim gestiona los archivos abiertos. Cada archivo que abres es un buffer, incluso si no lo puedes ver. Las pestañas en Neovim son más como "layouts" que pestañas de navegador — cada pestaña puede contener su propia disposición de divisiones.
Buffers
:ls
Listar buffers abiertos:b {name}
Cambiar a buffer por nombre parcial (autocompletado con tab funciona):b {number}
Cambiar a buffer por número:e {file}
Abrir archivo en nuevo buffer
Pestañas
:tabnew
Abrir nueva pestaña:tabnew {file}
Abrir archivo en nueva pestañagt
Ir a la siguiente pestañagT
Ir a la pestaña anterior{number}gt
Ir a la pestaña {number}:tabclose
Cerrar pestaña actual
Marcas y Saltos
Las marcas te permiten marcar posiciones en un archivo y volver a ellas. Las marcas en minúscula son locales a un archivo, las marcas en mayúscula funcionan entre archivos.
Marcas
m{a-z}
Establecer una marca localm{A-Z}
Establecer una marca global (funciona entre archivos)'{a-z}
Saltar a la línea de la marca`{a-z}
Saltar a la posición exacta de la marca:marks
Listar todas las marcas
Lista de Saltos
Ctrl-o
Saltar a la posición anterior en la lista de saltosCtrl-i
Saltar a la siguiente posición en la lista de saltosgd
Ir a la definición local de la palabra bajo el cursorgD
Ir a la definición global de la palabra bajo el cursorgf
Ir al archivo bajo el cursor:jumps
Mostrar lista de saltos
Ctrl-o es tu "botón atrás." Cada vez que saltas a algún lugar — búsqueda, ir a definición, cambiar archivos — Neovim recuerda dónde estabas. Presiona Ctrl-o para retrazar tus pasos. Funciona entre archivos. Esto solo te salvará de perderte.
Macros
Las macros graban una secuencia de pulsaciones de teclas y las reproducen. Son perfectas para ediciones repetitivas que son demasiado complejas para . pero no valen un script.
Grabar y Reproducir Macros
q{a-z}
Comenzar a grabar macro en el registro {a-z}q
Detener grabación (presionar mientras graba)@{a-z}
Reproducir macro desde el registro@@
Repetir la última macro reproducida{n}@{a-z}
Reproducir macro {n} veces
Al grabar una macro, empieza con 0 o ^ para moverte a una posición consistente en la línea, y termina con j para bajar. Así puedes ejecutarla en múltiples líneas con algo como 10@q y funcionará de forma confiable.
LSP (Language Server Protocol)
Neovim tiene soporte integrado de LSP desde la versión 0.5. Estos son atajos predeterminados comunes, pero tu configuración específica podría remapearlos. Verifica con :map o revisa tu configuración de lspconfig.
Navegación LSP
Ctrl-k
Ayuda de firma (en modo Insert)
Acciones LSP
<leader>rn
Renombrar símbolo bajo el cursor<leader>ca
Acción de código (correcciones rápidas, refactorizaciones)<leader>f
Formatear buffer]d
Ir al siguiente diagnóstico[d
Ir al diagnóstico anterior<leader>e
Mostrar diagnóstico flotante<leader>q
Enviar diagnósticos a la lista de ubicaciones
Telescope
Telescope es el buscador difuso en el que la mayoría de las configuraciones modernas de Neovim confían. Estos son los atajos típicos de <leader> — los tuyos pueden diferir según tu config. Si aún no usas Telescope, es el plugin que más vale la pena instalar.
Encontrar Cosas
<leader>ff
Buscar archivos por nombre<leader>fg
Grep en vivo (buscar contenido de archivos)<leader>fb
Explorar buffers abiertos<leader>fh
Buscar etiquetas de ayuda<leader>fo
Archivos abiertos recientemente<leader>fw
Buscar la palabra bajo el cursor
Dentro de Telescope
Ctrl-nCtrl-p
Mover arriba/abajo en resultados (o teclas de flecha)Enter
Abrir resultado seleccionadoCtrl-x
Abrir en división horizontalCtrl-v
Abrir en división verticalCtrl-t
Abrir en nueva pestaña
Comandos Esenciales
Operaciones de Archivo
:q
Salir (falla si hay cambios sin guardar):wa
Guardar todos los buffers abiertosZZ
Guardar y salir (atajo en modo Normal)ZQ
Salir sin guardar (atajo en modo Normal)
Comandos Útiles
:set number
Mostrar números de línea:set relativenumber
Mostrar números de línea relativos:!{cmd}
Ejecutar comando de shell:r !{cmd}
Insertar salida de comando de shell en el buffer:map
Mostrar todos los mapeos de teclas:checkhealth
Diagnosticar tu configuración de Neovim
Consejos y Trucos
Los números de línea relativos (set relativenumber) son un cambio radical para los movimientos verticales. En lugar de adivinar "¿son 15 líneas abajo?", puedes ver el número ahí mismo y escribir 15j. La mayoría configura tanto number como relativenumber para que la línea actual muestre su número absoluto mientras todo lo demás es relativo.
El modo Visual Block (Ctrl-v) te permite editar columnas. Selecciona una columna vertical, presiona I, escribe tu texto y presiona Esc — el texto aparece en cada línea seleccionada. Esto es increíblemente útil para agregar prefijos, alinear código o editar texto estructurado.
No necesitas memorizar cada atajo en esta página. Empieza con hjkl, w/b, dd, yy, p, i, Esc y :wq. Usa esos por una semana. Luego agrega ciw, f{char} y Ctrl-d/Ctrl-u. Construye gradualmente — así es como realmente aprendió todo el que es bueno con Vim.
Ejecuta :checkhealth después de configurar tu config. Te dice exactamente qué funciona, qué está roto y qué falta. Es el primer comando que debes ejecutar cuando algo se siente mal.
El comando gx en modo Normal abre la URL bajo tu cursor en tu navegador. Útil cuando estás leyendo código con enlaces en los comentarios.
Configurar Neovim
¿Quieres entender y personalizar tu init.lua? Prueba el editor de configuración interactivo — sube tu configuración, ve qué hace cada opción y ajústala visualmente.