Guía de Referencia Rápida de Vim / Neovim

Tip para principiantes: Ejecuta vimtutor en tu terminal para aprender los primeros comandos interactivos de Vim.

1. Global

  • :h[elp] palabra_clave - Abrir ayuda para una palabra clave.
  • :sav[eas] archivo - Guardar archivo como.
  • :clo[se] - Cerrar archivo actual (la ventana).
  • :ter[minal] - Abre una ventana de terminal integrada.
  • K - Abrir página del manual (man page) de la palabra bajo el cursor.

2. Mover el Cursor

  • h - Mover el cursor hacia la izquierda.
  • j - Mover el cursor hacia abajo.
  • k - Mover el cursor hacia arriba.
  • l - Mover el cursor hacia la derecha.
  • gj - Mover el cursor hacia abajo (texto multilínea envuelto).
  • gk - Mover el cursor hacia arriba (texto multilínea envuelto).
  • H - Moverse hacia la parte superior de la pantalla (High).
  • M - Moverse hacia el centro de la pantalla (Middle).
  • L - Moverse hacia la parte inferior de la pantalla (Low).
  • w - Saltar hasta el inicio de la siguiente palabra.
  • W - Saltar hasta el inicio de la siguiente palabra (incluso con puntuación).
  • e - Saltar hasta el final de la siguiente palabra.
  • E - Saltar hasta el final de la siguiente palabra (incluso con puntuación).
  • b - Regresar al inicio de una palabra.
  • B - Regresar al inicio de una palabra (incluso con puntuación).
  • ge - Saltar hacia atrás hasta el final de una palabra.
  • gE - Saltar hacia atrás hasta el final de una palabra (las palabras pueden contener puntuación).
  • % - Ir al carácter asociado (pares por defecto: (), {}, []).
  • 0 - Saltar al inicio de la línea.
  • ^ - Saltar al primer carácter no-espacio de la línea.
  • $ - Saltar al final de la línea.
  • g_ - Saltar al último carácter no-espacio de la línea.
  • gg - Saltar a la primera línea del documento.
  • G - Saltar a la última línea del documento.
  • 5gg o 5G - Saltar a la línea 5.
  • gd - Saltar a la declaración local de la variable/función bajo el cursor.
  • gD - Saltar a la declaración global.
  • fx - Saltar a la siguiente ocurrencia del carácter x.
  • tx - Saltar justo antes de la siguiente ocurrencia del carácter x.
  • Fx - Saltar a la aparición anterior del carácter x.
  • Tx - Saltar justo después de la aparición anterior del carácter x.
  • ; - Repetir el movimiento anterior de f, t, F o T.
  • , - Repetir el movimiento anterior de f, t, F o T, hacia atrás.
  • } - Saltar al párrafo siguiente (o función/bloque).
  • { - Saltar al párrafo previo (o función/bloque).
  • zz - Desplazar la pantalla para centrar el cursor verticalmente.
  • zt - Desplazar la pantalla para poner el cursor en la parte superior.
  • zb - Desplazar la pantalla para poner el cursor en la parte inferior.
  • Ctrl + e - Mover la pantalla hacia abajo una línea (sin mover el cursor).
  • Ctrl + y - Mover la pantalla una línea hacia arriba (sin mover el cursor).
  • Ctrl + b - Retroceder una pantalla completa.
  • Ctrl + f - Avanzar una pantalla completa.
  • Ctrl + d - Avanzar el cursor media pantalla.
  • Ctrl + u - Retroceder el cursor media pantalla.

Tip de repetición: Escribe un número antes de cualquier comando de movimiento para multiplicarlo. Por ejemplo, 4j mueve el cursor hacia abajo 4 líneas.

3. Modo Insertar (Insertar y Agregar Texto)

  • i - Insertar antes del cursor.
  • I - Insertar al inicio de la línea.
  • a - Insertar después del cursor (apendizar).
  • A - Insertar al final de la línea.
  • o - Insertar una nueva línea debajo de la línea actual.
  • O - Insertar una nueva línea encima de la línea actual.
  • ea - Insertar al final de la palabra actual.
  • Ctrl + h - Eliminar el carácter antes del cursor (durante modo inserción).
  • Ctrl + w - Eliminar la palabra antes del cursor (durante modo inserción).
  • Ctrl + j - Comenzar una nueva línea (durante modo inserción).
  • Ctrl + t - Sangrar la línea (mover a la derecha).
  • Ctrl + d - Desangrar la línea (mover a la izquierda).
  • Ctrl + n - Autocompletar con la siguiente coincidencia.
  • Ctrl + p - Autocompletar con la coincidencia anterior.
  • Ctrl + r x - Insertar el contenido del registro x.
  • Ctrl + o x - Ejecutar temporalmente el comando x del modo normal sin salir de inserción.
  • Esc o Ctrl + c - Salir del modo insertar y volver al modo normal.

4. Edición de Texto

  • r - Reemplazar un solo carácter bajo el cursor.
  • R - Entrar en modo Reemplazar (sobrescribir texto) hasta presionar Esc.
  • J - Juntar la siguiente línea con la actual añadiendo un espacio.
  • gJ - Juntar la siguiente línea con la actual sin añadir espacio.
  • gwip - Aplicar formato (ajustar líneas) en el párrafo actual.
  • g~ - Alternar mayúsculas/minúsculas hasta el movimiento indicado.
  • gu - Cambiar a minúsculas hasta el movimiento indicado.
  • gU - Cambiar a mayúsculas hasta el movimiento indicado.
  • cc - Cambiar (borrar y entrar en modo insertar) toda la línea.
  • c$ o C - Cambiar hasta el final de la línea.
  • ciw - Cambiar la palabra completa bajo el cursor.
  • cw o ce - Cambiar una palabra desde el cursor hasta el final de la misma.
  • s - Eliminar el carácter actual y entrar en modo insertar.
  • S - Eliminar la línea actual y reemplazar texto (igual que cc).
  • xp - Transponer dos letras (suprime el carácter actual y lo pega adelante).
  • u - Deshacer (undo).
  • U - Deshacer completamente los cambios en la última línea modificada.
  • Ctrl + r - Rehacer (redo).
  • . - Repetir el último comando de edición.

5. Selección de Texto (Modo Visual)

  • v - Iniciar modo visual por caracteres.
  • V - Iniciar modo visual por líneas completas.
  • Ctrl + v - Iniciar modo visual por bloques (columnas).
  • o - Moverse al otro extremo de la selección actual.
  • O - Moverse a la otra esquina del bloque seleccionado.
  • aw - Seleccionar un objeto de texto: una palabra entera (a word).
  • ab - Seleccionar un bloque con paréntesis ().
  • aB - Seleccionar un bloque con llaves {}.
  • at - Seleccionar un bloque con etiquetas HTML/XML <>.
  • ib - Seleccionar el contenido interno de un bloque ().
  • iB - Seleccionar el contenido interno de un bloque {}.
  • it - Seleccionar el contenido interno de un bloque con etiquetas <>.
  • Esc o Ctrl + c - Salir del modo visual.

6. Comandos en Modo Visual

  • > - Desplazar el texto seleccionado hacia la derecha.
  • < - Desplazar el texto seleccionado hacia la izquierda.
  • y - Copiar (yank) el texto seleccionado.
  • d - Eliminar / Cortar el texto seleccionado.
  • ~ - Alternar minúsculas y mayúsculas de la selección.
  • u - Convertir la selección a minúsculas.
  • U - Convertir la selección a mayúsculas.

7. Copiar, Cortar y Pegar (Yank & Paste)

  • yy - Copiar una línea entera.
  • 2yy - Copiar dos líneas.
  • yw - Copiar desde el cursor hasta el inicio de la siguiente palabra.
  • yiw - Copiar la palabra sobre el cursor.
  • yaw - Copiar la palabra sobre el cursor incluyendo el espacio.
  • y$ o Y - Copiar desde el cursor hasta el final de la línea.
  • p - Pegar después del cursor (o debajo de la línea si se copió una línea entera).
  • P - Pegar antes del cursor (o encima de la línea).
  • gp - Pegar antes del cursor y mover el cursor al final del nuevo texto.
  • gP - Pegar después del cursor y mover el cursor al final del nuevo texto.
  • dd - Cortar / Eliminar una línea entera.
  • 2dd - Cortar dos líneas.
  • dw - Cortar hasta el inicio de la siguiente palabra.
  • diw - Cortar la palabra bajo el cursor.
  • daw - Cortar la palabra bajo el cursor incluyendo el espacio.
  • d$ o D - Cortar hasta el final de la línea.
  • x - Cortar / Eliminar el carácter actual.
  • :3,5d - Eliminar desde la línea 3 hasta la línea 5.
  • :.,$d - Eliminar desde la línea actual hasta el final del archivo.
  • :g/{patrón}/d - Eliminar todas las líneas que contengan el patrón buscado.
  • :g!/{patrón}/d - Eliminar todas las líneas que NO contengan el patrón.

8. Registros (Portapapeles)

  • :reg[isters] - Mostrar el contenido de todos los registros.
  • "xy - Copiar el texto seleccionado en el registro x.
  • "xp - Pegar el contenido del registro x.
  • "+y - Copiar directamente al portapapeles del sistema operativo.
  • "+p - Pegar desde el portapapeles del sistema operativo.

Registros especiales:

  • 0 - Última copia (yank).
  • " - Registro sin nombre (por defecto guarda la última eliminación o copia).
  • % - Nombre del archivo actual.
  • / - Último patrón de búsqueda.

9. Marcas y Navegación

  • :marks - Mostrar todas las marcas guardadas.
  • ma - Definir una marca en la posición actual llamada a.
  • “a- Saltar a la posición exacta de la marcaa`.
  • 'a - Saltar al inicio de la línea que contiene la marca a.
  • “0` - Ir a la posición exacta donde estabas al cerrar Vim por última vez.
  • “.` - Ir a la posición del último cambio realizado.
  • ` - Regresar a la posición anterior antes del último salto largo.
  • :ju[mps] - Ver la lista de saltos de posición.
  • Ctrl + o - Ir a la posición anterior en la lista de saltos (atrás en el historial).
  • Ctrl + i - Ir a la posición siguiente en la lista de saltos (adelante en el historial).
  • :changes - Mostrar la lista de modificaciones.

10. Macros

  • qa - Iniciar la grabación de una macro en el registro a.
  • q - Detener la grabación de la macro.
  • @a - Ejecutar la macro guardada en a.
  • @@ - Repetir la última macro ejecutada.

11. Sangría (Indentación)

  • >> - Añadir sangría a la línea actual (mover a la derecha).
  • << - Quitar sangría a la línea actual (mover a la izquierda).
  • >% - Sangrar el bloque completo dentro de (), {}, o [] (cursor sobre el delimitador).
  • >ib - Sangrar el bloque interno entre paréntesis.
  • gg=G - Auto-indentar (corregir el formato) de todo el archivo.
  • ]=p - Pegar texto ajustando automáticamente la sangría al bloque actual.

12. Buscar y Reemplazar

  • /patrón - Buscar un patrón hacia adelante.
  • ?patrón - Buscar un patrón hacia atrás.
  • \vpatrón - Modo Very Magic: interpreta caracteres especiales de expresiones regulares sin necesidad de escaparlos.
  • n - Ir a la siguiente coincidencia en la misma dirección de búsqueda.
  • N - Ir a la coincidencia anterior (dirección opuesta).
  • :%s/viejo/nuevo/g - Buscar y reemplazar todas las ocurrencias en todo el archivo.
  • :%s/viejo/nuevo/gc - Reemplazar en todo el archivo pidiendo confirmación paso a paso.
  • :noh[lsearch] - Desactivar temporalmente el resaltado de la búsqueda.

13. Pestañas (Tabs)

  • :tabnew o :tabnew archivo - Abrir una nueva pestaña (vacía o con un archivo).
  • Ctrl + w T - Mover la ventana dividida actual a su propia pestaña independiente.
  • gt o :tabn[ext] - Ir a la pestaña siguiente.
  • gT o :tabp[revious] - Ir a la pestaña anterior.
  • #gt - Ir a la pestaña número # (ej. 2gt va a la pestaña 2).
  • :tabc[lose] - Cerrar la pestaña actual.

14. Ventanas y Múltiples Archivos (Buffers & Windows)

  • :e archivo - Abrir y editar un archivo en un nuevo buffer.
  • :bn[ext] - Ir al siguiente buffer abierto.
  • :bp[revious] - Ir al buffer anterior.
  • :bd[elete] - Cerrar el buffer actual (y el archivo).
  • :ls o :buffers - Mostrar todos los buffers abiertos en segundo plano.
  • :sp archivo - Dividir la ventana de manera horizontal y abrir el archivo.
  • :vs archivo - Dividir la ventana de manera vertical y abrir el archivo.
  • Ctrl + w s - Dividir la ventana actual horizontalmente.
  • Ctrl + w v - Dividir la ventana actual verticalmente.
  • Ctrl + w w - Cambiar el foco cíclicamente entre ventanas.
  • Ctrl + w q - Cerrar la ventana actual.
  • Ctrl + w h - Mover el foco a la ventana de la izquierda.
  • Ctrl + w l - Mover el foco a la ventana de la derecha.
  • Ctrl + w j - Mover el foco a la ventana de abajo.
  • Ctrl + w k - Mover el foco a la ventana de arriba.
  • Ctrl + w = - Ajustar equitativamente el tamaño de todas las ventanas abiertas.

15. Pliegues (Folds) y Modo Diferencial (Diff)

  • zf - Crear manualmente un pliegue basado en un movimiento.
  • zd - Eliminar el pliegue bajo el cursor.
  • za - Alternar (abrir/cerrar) el pliegue bajo el cursor.
  • zo - Abrir pliegue bajo el cursor.
  • zc - Cerrar pliegue bajo el cursor.
  • zr - Abrir un nivel todos los pliegues del archivo.
  • zm - Cerrar un nivel todos los pliegues del archivo.
  • ]c - Saltar al inicio del próximo cambio (en modo diff).
  • [c - Saltar al inicio del cambio anterior (en modo diff).
  • do o :diffg[et] - Traer/aplicar el cambio del otro buffer al actual.
  • dp o :diffpu[t] - Enviar el cambio del buffer actual al otro.

16. Salir del Editor

  • :w - Guardar el archivo actual.
  • :w !sudo tee % - Forzar el guardado usando privilegios sudo.
  • :wq o :x o ZZ - Guardar los cambios y salir.
  • :q - Salir (falla si hay cambios sin guardar).
  • :q! o ZQ - Salir inmediatamente descartando todos los cambios no guardados.
  • :wqa - Guardar cambios y salir de todas las ventanas/pestañas abiertas.