Guía de Referencia Rápida de Vim / Neovim
Tip para principiantes: Ejecuta
vimtutoren 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.5ggo5G- 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ácterx.tx- Saltar justo antes de la siguiente ocurrencia del carácterx.Fx- Saltar a la aparición anterior del carácterx.Tx- Saltar justo después de la aparición anterior del carácterx.;- Repetir el movimiento anterior def,t,FoT.,- Repetir el movimiento anterior def,t,FoT, 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,
4jmueve 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 registrox.Ctrl + o x- Ejecutar temporalmente el comandoxdel modo normal sin salir de inserción.EscoCtrl + 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 presionarEsc.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$oC- Cambiar hasta el final de la línea.ciw- Cambiar la palabra completa bajo el cursor.cwoce- 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 quecc).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<>.EscoCtrl + 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$oY- 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$oD- 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 registrox."xp- Pegar el contenido del registrox."+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 llamadaa.- “a
- Saltar a la posición exacta de la marcaa`. 'a- Saltar al inicio de la línea que contiene la marcaa.- “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 registroa.q- Detener la grabación de la macro.@a- Ejecutar la macro guardada ena.@@- 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)
:tabnewo: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.gto:tabn[ext]- Ir a la pestaña siguiente.gTo:tabp[revious]- Ir a la pestaña anterior.#gt- Ir a la pestaña número#(ej.2gtva 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).:lso: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).doo:diffg[et]- Traer/aplicar el cambio del otro buffer al actual.dpo: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 privilegiossudo.:wqo:xoZZ- Guardar los cambios y salir.:q- Salir (falla si hay cambios sin guardar).:q!oZQ- Salir inmediatamente descartando todos los cambios no guardados.:wqa- Guardar cambios y salir de todas las ventanas/pestañas abiertas.