Neovim Lazy Cheatsheet

Comandos esenciales para Neovim con configuración tipo Lazy

General

Guardar Archivo

Categoría: General

:w

Guarda los cambios en el archivo actual.

Salir de Neovim

Categoría: General

:q

Cierra la ventana actual o Neovim si es la última ventana.

Guardar y Salir

Categoría: General

:wq

Guarda los cambios y luego cierra la ventana/Neovim.

Forzar Salida sin Guardar

Categoría: General

:q!

Cierra la ventana/Neovim sin guardar los cambios.

Guardar todo y Salir

Categoría: General

:x

Guarda el archivo solo si hay cambios y sale.

Forzar Guardar y Salir

Categoría: General

ZZ

Equivalente a :wq (guardar y salir).

Forzar Salir sin Guardar

Categoría: General

ZQ

Equivalente a :q! (salir sin guardar).

Abrir terminal

Categoría: General

:terminal o :term

Abre una terminal dentro de Neovim en el buffer actual. Usa <C-\><C-n> para volver a modo normal.

Movimiento Básico

Mover cursor a la izquierda

Categoría: Movimiento

h

Mueve el cursor un carácter a la izquierda.

Mover cursor abajo

Categoría: Movimiento

j

Mueve el cursor una línea hacia abajo.

Mover cursor arriba

Categoría: Movimiento

k

Mueve el cursor una línea hacia arriba.

Mover cursor a la derecha

Categoría: Movimiento

l

Mueve el cursor un carácter a la derecha.

Inicio de línea (primer caracter no-blanco)

Categoría: Movimiento

^

Mueve el cursor al primer carácter no-blanco de la línea actual.

Inicio de línea (columna 0)

Categoría: Movimiento

0

Mueve el cursor al inicio absoluto de la línea (columna 0).

Fin de línea

Categoría: Movimiento

$

Mueve el cursor al final de la línea actual.

Siguiente palabra

Categoría: Movimiento

w

Mueve el cursor al inicio de la siguiente palabra.

Fin de palabra

Categoría: Movimiento

e

Mueve el cursor al final de la palabra actual.

Palabra anterior

Categoría: Movimiento

b

Mueve el cursor al inicio de la palabra anterior.

Ir a línea (modo comando)

Categoría: Movimiento

:N

Va a la línea número N (ej. :100 para ir a la línea 100).

Ir a línea (normal mode)

Categoría: Movimiento

NGG o GN

Va a la línea número N (ej. 100gg o g100).

Desplazarse media página abajo

Categoría: Movimiento

Ctrl-d

Desplaza la vista media página hacia abajo.

Desplazarse media página arriba

Categoría: Movimiento

Ctrl-u

Desplaza la vista media página hacia arriba.

Desplazarse una página abajo

Categoría: Movimiento

Ctrl-f

Desplaza la vista una página completa hacia abajo.

Desplazarse una página arriba

Categoría: Movimiento

Ctrl-b

Desplaza la vista una página completa hacia arriba.

Ir al inicio del archivo

Categoría: Movimiento

gg

Mueve el cursor al inicio del archivo.

Ir al final del archivo

Categoría: Movimiento

G

Mueve el cursor al final del archivo.

Ir a carácter en la línea

Categoría: Movimiento

f{char} / F{char}

Salta al siguiente/anterior carácter {char} en la línea. Ej: fa va a la próxima 'a'.

Ir hasta carácter en la línea

Categoría: Movimiento

t{char} / T{char}

Salta hasta justo antes/después del carácter {char} en la línea. Útil con operadores como dt).

Repetir salto f/t

Categoría: Movimiento

; / ,

; repite el último f/t hacia adelante. , lo repite en dirección opuesta.

Ir al par (paréntesis/llave/corchete)

Categoría: Movimiento

%

Salta al paréntesis, llave o corchete que hace par con el que está bajo el cursor.

Buscar palabra bajo el cursor

Categoría: Movimiento

* / #

* busca la siguiente ocurrencia de la palabra bajo el cursor. # busca la anterior.

Establecer marca

Categoría: Movimiento

m{a-zA-Z}

Establece una marca en la posición actual. Letras minúsculas son locales al buffer, mayúsculas son globales.

Ir a marca

Categoría: Movimiento

'{marca} / `{marca}

'a va a la línea de la marca. `a va a la posición exacta. '' vuelve a la posición anterior.

Siguiente/Anterior párrafo

Categoría: Movimiento

} / {

Salta al siguiente/anterior bloque de texto separado por líneas en blanco.

Edición Básica & Cortar/Pegar

Modo Insertar (antes del cursor)

Categoría: Edición

i

Entra en modo insertar antes del cursor.

Modo Insertar (al final de la línea)

Categoría: Edición

A

Entra en modo insertar al final de la línea actual.

Modo Insertar (inicio de línea)

Categoría: Edición

I

Entra en modo insertar al primer caracter no-blanco de la línea.

Modo Insertar (después del cursor)

Categoría: Edición

a

Entra en modo insertar después del cursor.

Nueva línea abajo

Categoría: Edición

o

Inserta una nueva línea debajo de la actual y entra en modo insertar.

Nueva línea arriba

Categoría: Edición

O

Inserta una nueva línea encima de la actual y entra en modo insertar.

Borrar carácter

Categoría: Edición

x

Borra el carácter bajo el cursor.

Borrar línea

Categoría: Edición

dd

Borra la línea actual y la guarda en el registro predeterminado (corta).

Borrar palabra

Categoría: Edición

dw

Borra desde el cursor hasta el final de la palabra.

Cambiar línea

Categoría: Edición

cc

Borra la línea actual y entra en modo insertar.

Cambiar palabra

Categoría: Edición

cw

Borra desde el cursor hasta el final de la palabra y entra en modo insertar.

Pegar después

Categoría: Edición

p

Pega el contenido del registro después del cursor.

Pegar antes

Categoría: Edición

P

Pega el contenido del registro antes del cursor.

Copiar línea

Categoría: Edición

yy

Copia la línea actual al registro predeterminado.

Deshacer

Categoría: Edición

u

Deshace la última acción.

Rehacer

Categoría: Edición

Ctrl-r

Rehace la última acción deshecha.

Seleccionar carácter (Modo Visual)

Categoría: Edición

v

Entra en modo visual para seleccionar caracteres.

Seleccionar línea (Modo Visual de Línea)

Categoría: Edición

V

Entra en modo visual para seleccionar líneas completas.

Seleccionar bloque (Modo Visual de Bloque)

Categoría: Edición

Ctrl-v

Entra en modo visual para seleccionar bloques rectangulares.

Seleccionar todo el archivo

Categoría: Edición

ggVG

Selecciona todo el contenido del archivo.

Repetir última acción

Categoría: Edición

.

Repite el último comando de edición. Uno de los comandos más poderosos de Vim.

Unir líneas

Categoría: Edición

J

Une la línea actual con la siguiente, eliminando el salto de línea.

Reemplazar carácter

Categoría: Edición

r{char}

Reemplaza el carácter bajo el cursor por {char} sin entrar en modo insertar.

Indentar / Des-indentar

Categoría: Edición

>> / <<

Indenta o des-indenta la línea actual. En modo visual, > y < para la selección.

Auto-indentar

Categoría: Edición

= / ==

== auto-indenta la línea actual. gg=G auto-indenta todo el archivo.

Text Objects: dentro de

Categoría: Edición

ci" / di( / yi{ / vi[

Cambiar/borrar/copiar/seleccionar dentro de comillas, paréntesis, llaves, corchetes. Ej: ci" cambia el texto dentro de las comillas.

Text Objects: alrededor de

Categoría: Edición

ca" / da( / ya{ / va[

Cambiar/borrar/copiar/seleccionar incluyendo los delimitadores. Ej: da( borra todo incluyendo los paréntesis.

Text Objects: palabra

Categoría: Edición

ciw / diw / yiw / viw

Opera sobre la palabra completa bajo el cursor. ciw cambia toda la palabra, caw incluye el espacio.

Grabar macro

Categoría: Edición

q{a-z} ... q

Graba una secuencia de comandos en el registro {a-z}. Presiona q para detener. Ejecuta con @a. Repite con @@.

Cambiar mayúsculas/minúsculas

Categoría: Edición

~ / gU / gu

~ alterna el caso. gUiw pasa a mayúsculas. guiw pasa a minúsculas.

Borrar hasta el final de línea

Categoría: Edición

D / C

D borra desde el cursor hasta el final de la línea. C lo mismo pero entra en modo insertar.

Pegar desde clipboard del sistema

Categoría: Edición

"+p / "+y

"+y copia al clipboard del sistema. "+p pega desde el clipboard del sistema.

Ventanas & Buffers

Dividir ventana horizontalmente

Categoría: Ventanas & Buffers

:sp o :split

Divide la ventana actual horizontalmente, mostrando el mismo buffer o uno nuevo.

Dividir ventana verticalmente

Categoría: Ventanas & Buffers

:vsp o :vsplit

Divide la ventana actual verticalmente, mostrando el mismo buffer o uno nuevo.

Navegar entre ventanas

Categoría: Ventanas & Buffers

Ctrl-w h/j/k/l

Mueve el foco a la ventana a la izquierda/abajo/arriba/derecha.

Cerrar ventana actual

Categoría: Ventanas & Buffers

:close o Ctrl-w c

Cierra la ventana actual.

Cambiar al siguiente buffer

Categoría: Ventanas & Buffers

:bnext o :bn

Carga el siguiente buffer en la lista.

Cambiar al buffer anterior

Categoría: Ventanas & Buffers

:bprev o :bp

Carga el buffer anterior en la lista.

Listar buffers

Categoría: Ventanas & Buffers

:ls o :buffers

Muestra una lista de todos los buffers abiertos.

Saltar a buffer por número/nombre

Categoría: Ventanas & Buffers

:buffer N o :b N

Abre el buffer número N. También se puede usar el nombre del buffer.

Cerrar buffer

Categoría: Ventanas & Buffers

:bd o :bdelete

Cierra el buffer actual sin cerrar la ventana. En LazyVim: <Leader>bd.

Redimensionar ventanas

Categoría: Ventanas & Buffers

Ctrl-w + / Ctrl-w - / Ctrl-w > / Ctrl-w <

Aumenta/reduce la altura o ancho de la ventana actual. Ctrl-w = las iguala.

Maximizar ventana

Categoría: Ventanas & Buffers

Ctrl-w o

Cierra todas las ventanas excepto la actual (:only).

Abrir nueva pestaña

Categoría: Ventanas & Buffers

:tabnew / gt / gT

:tabnew abre nueva pestaña. gt/gT navega entre pestañas.

Archivos

Abrir archivo

Categoría: Archivos

:e [nombre_archivo]

Edita un nuevo archivo o recarga el actual. Con plugin como `nvim-tree` o `Telescope` es más común usar sus atajos.

Guardar archivo como

Categoría: Archivos

:w [nombre_archivo]

Guarda el buffer actual con un nuevo nombre.

Leer archivo en el buffer actual

Categoría: Archivos

:r [nombre_archivo]

Inserta el contenido de un archivo en el buffer actual a partir del cursor.

Buscar & Reemplazar

Buscar (hacia adelante)

Categoría: Buscar & Reemplazar

/patron

Busca 'patron' hacia adelante en el archivo.

Buscar (hacia atrás)

Categoría: Buscar & Reemplazar

?patron

Busca 'patron' hacia atrás en el archivo.

Siguiente coincidencia

Categoría: Buscar & Reemplazar

n

Va a la siguiente ocurrencia de la búsqueda anterior.

Coincidencia anterior

Categoría: Buscar & Reemplazar

N

Va a la ocurrencia anterior de la búsqueda anterior.

Reemplazar en línea actual

Categoría: Buscar & Reemplazar

:s/old/new/g

Reemplaza todas las ocurrencias de 'old' por 'new' en la línea actual. (g = global).

Reemplazar en todo el archivo

Categoría: Buscar & Reemplazar

:%s/old/new/gc

Reemplaza todas las ocurrencias de 'old' por 'new' en todo el archivo, con confirmación (c = confirm).

Limpiar resaltado de búsqueda

Categoría: Buscar & Reemplazar

:noh o :nohlsearch

Limpia el resaltado de la última búsqueda. En LazyVim: <Esc> o <Leader>ur.

Reemplazar en selección visual

Categoría: Buscar & Reemplazar

:'<,'>s/old/new/g

Reemplaza solo dentro de la selección visual actual. Selecciona con V y luego escribe :.

Buscar y reemplazar palabra bajo cursor

Categoría: Buscar & Reemplazar

:%s/<Ctrl-r><Ctrl-w>/new/gc

En modo comando, Ctrl-r Ctrl-w inserta la palabra bajo el cursor. Útil para renombrar.

Plugins & LSP (LazyVim)

Comandos y atajos de los plugins incluidos en LazyVim por defecto. <Leader> es Espacio por defecto.

Abrir panel de Lazy.nvim

Categoría: Plugins

:Lazy

Abre el panel principal de lazy.nvim donde podés ver, actualizar e instalar plugins.

Actualizar Plugins

Categoría: Plugins

:Lazy update

Actualiza todos los plugins gestionados por lazy.nvim.

Sincronizar Plugins

Categoría: Plugins

:Lazy sync

Instala plugins faltantes, actualiza y limpia los que ya no se usan.

Ver Extras disponibles

Categoría: Plugins

:LazyExtras

Muestra la lista de extras de LazyVim disponibles para activar (lenguajes, herramientas, etc.).

Buscar archivos (Telescope)

Categoría: Plugins

<Leader>ff

Busca archivos por nombre en el proyecto con Telescope.

Buscar texto (Grep)

Categoría: Plugins

<Leader>sg

Busca texto en todo el proyecto con grep (Telescope live_grep).

Buscar buffers abiertos

Categoría: Plugins

<Leader>fb

Lista y busca entre los buffers abiertos.

Archivos recientes

Categoría: Plugins

<Leader>fr

Muestra los archivos abiertos recientemente.

Explorador de archivos (Neo-tree)

Categoría: Plugins

<Leader>e

Abre/cierra el explorador de archivos lateral Neo-tree.

Explorador en archivo actual

Categoría: Plugins

<Leader>E

Abre Neo-tree con el archivo actual seleccionado en el árbol.

Ir a definición (LSP)

Categoría: Plugins

gd

Salta a la definición del símbolo bajo el cursor.

Ver referencias (LSP)

Categoría: Plugins

gr

Lista todas las referencias del símbolo bajo el cursor en el proyecto.

Documentación hover (LSP)

Categoría: Plugins

K

Muestra la documentación/tipo del símbolo bajo el cursor en un popup flotante.

Renombrar símbolo (LSP)

Categoría: Plugins

<Leader>cr

Renombra el símbolo bajo el cursor en todo el proyecto usando LSP.

Acciones de código (LSP)

Categoría: Plugins

<Leader>ca

Muestra acciones de código disponibles (imports, fixes, refactors).

Formatear código

Categoría: Plugins

<Leader>cf

Formatea el archivo o la selección visual usando el formateador configurado (conform.nvim).

Diagnósticos (errores/warnings)

Categoría: Plugins

<Leader>xx

Abre la lista de diagnósticos con Trouble. ]d / [d para navegar entre diagnósticos.

Terminal flotante

Categoría: Plugins

<Leader>ft

Abre una terminal flotante dentro de Neovim. <C-/> también la alterna.

Git status (Neo-tree)

Categoría: Plugins

<Leader>gs

Abre el estado de git. También <Leader>gg para abrir lazygit si está instalado.

Notificaciones

Categoría: Plugins

<Leader>sn

Muestra el historial de notificaciones (noice.nvim / notify).

Which-key (ayuda de atajos)

Categoría: Plugins

<Leader>

Presiona Espacio y esperá: which-key muestra todos los atajos disponibles organizados por categoría.

Configuración

En Neovim, la configuración se realiza principalmente a través del archivo `init.lua` (o `init.vim`).

Abrir archivo de configuración

Categoría: Configuración

:e $MYVIMRC

Abre tu archivo `init.lua` (o `init.vim`) para edición.

Recargar configuración

Categoría: Configuración

:source $MYVIMRC

Recarga el archivo de configuración actual sin reiniciar Neovim.

Mostrar opciones

Categoría: Configuración

:set [opción]?

Muestra el valor de una opción (ej. `:set number?`). `:set no[opción]` para desactivar.

Lazy Extras

Los Extras de LazyVim son paquetes preconfigurados que podés activar con :LazyExtras. Agregan soporte para lenguajes, herramientas y funcionalidades adicionales.

Activar/Desactivar Extras

Categoría: Lazy Extras

:LazyExtras

Abre el gestor de extras. Presiona x para activar/desactivar un extra. Los cambios se guardan en lazy.lua.

TypeScript / JavaScript

Categoría: Lenguajes

lang.typescript

LSP (vtsls), treesitter, linting (eslint) y formateo. Soporta TS, JS, JSX, TSX.

Python

Categoría: Lenguajes

lang.python

LSP (basedpyright/pyright), ruff para linting y formateo, depuración con debugpy, venv selector.

Rust

Categoría: Lenguajes

lang.rust

LSP (rust-analyzer), treesitter, crates.nvim para gestión de dependencias Cargo, depuración.

Go

Categoría: Lenguajes

lang.go

LSP (gopls), treesitter, gofumpt para formateo, goimports, depuración con delve.

Java

Categoría: Lenguajes

lang.java

LSP (jdtls), treesitter, depuración, testing con nvim-jdtls.

C / C++

Categoría: Lenguajes

lang.clangd

LSP (clangd), treesitter para C/C++, cmake, depuración integrada.

Lua

Categoría: Lenguajes

lang.lua (incluido por defecto)

LSP (lua_ls) con soporte para la API de Neovim, treesitter, stylua para formateo.

JSON / YAML / TOML

Categoría: Lenguajes

lang.json / lang.yaml / lang.toml

LSP, treesitter y esquemas (SchemaStore) para validación automática de archivos de configuración.

Docker

Categoría: Lenguajes

lang.docker

LSP para Dockerfile y docker-compose, treesitter, autocompletado de imágenes.

Tailwind CSS

Categoría: Lenguajes

lang.tailwind

LSP de Tailwind con autocompletado de clases, previsualización de colores y ordenamiento.

Conform.nvim (Formateador)

Categoría: Formateo

formatting.prettier / formatting.black

Formateadores por lenguaje. Prettier (JS/TS/HTML/CSS), Black (Python), stylua (Lua), etc. Se activan por extra de lenguaje.

nvim-lint (Linter)

Categoría: Linting

linting.eslint / linting.ruff

Linters por lenguaje. ESLint (JS/TS), Ruff (Python), etc. Se integran automáticamente con los extras de lenguaje.

Formatear al guardar

Categoría: Formateo

<Leader>uf

Activa/desactiva el formateo automático al guardar. Por defecto está activado en LazyVim.

Copilot (Extra)

Categoría: IA

coding.copilot

Activa GitHub Copilot para sugerencias inline de código. Requiere suscripción a GitHub Copilot.

Copilot Chat (Extra)

Categoría: IA

coding.copilot-chat

Agrega chat interactivo con Copilot para explicar, refactorizar y generar código. Atajos con <Leader>a.

DAP (Depuración)

Categoría: Herramientas

dap.core

Agrega soporte de depuración (Debug Adapter Protocol). <Leader>db para breakpoint, <Leader>dc para continuar.

Testing (neotest)

Categoría: Herramientas

test.core

Framework de testing. <Leader>tt ejecuta el test más cercano. <Leader>tT ejecuta todo el archivo.

Mini.surround

Categoría: Coding

coding.mini-surround

Agrega/cambia/borra delimitadores. gsa" agrega comillas, gsd" las borra, gsr"' las cambia.

Copilot & IA

Comandos para GitHub Copilot en Neovim. Requiere activar el extra lazyvim.plugins.extras.coding.copilot desde :LazyExtras.

Activar/Autenticar Copilot

Categoría: Copilot

:Copilot auth

Inicia el proceso de autenticación con GitHub para usar Copilot.

Estado de Copilot

Categoría: Copilot

:Copilot status

Muestra si Copilot está activo, autenticado y funcionando correctamente.

Aceptar sugerencia

Categoría: Copilot

Tab

Acepta la sugerencia completa de Copilot en modo insertar.

Aceptar palabra siguiente

Categoría: Copilot

Ctrl-w (en sugerencia)

Acepta solo la siguiente palabra de la sugerencia de Copilot.

Aceptar línea siguiente

Categoría: Copilot

Ctrl-l (en sugerencia)

Acepta solo la siguiente línea de la sugerencia de Copilot.

Rechazar sugerencia

Categoría: Copilot

Esc / Ctrl-]

Rechaza la sugerencia actual de Copilot y continúa editando.

Siguiente/Anterior sugerencia

Categoría: Copilot

Alt-] / Alt-[

Cicla entre las sugerencias alternativas de Copilot.

Activar/Desactivar Copilot

Categoría: Copilot

:Copilot enable / :Copilot disable

Activa o desactiva Copilot para la sesión actual.

Copilot Chat - Abrir chat

Categoría: Copilot

<Leader>aa

Abre el panel de Copilot Chat. Requiere el extra coding.copilot-chat.

Copilot Chat - Explicar código

Categoría: Copilot

<Leader>ae

Seleccioná código en modo visual y pedile a Copilot que lo explique.

Copilot Chat - Preguntar rápido

Categoría: Copilot

<Leader>aq

Abre un prompt rápido para hacerle una pregunta a Copilot sobre el código seleccionado.