Práctica de atajos de Vim

Cómo usar
STARTSTOP
*Cambiar modo de entrada: ctrl + shift + alt + space
ANT
SIG
Excluir esta pregunta de la lista
Restaurar preguntas excluidas
Obtener la URL de las exclusiones actuales
https://command-lab.com
Copiar
Modo guiado
Modo repetición

*Navegador recomendado: Google Chrome

PULSA ENTER
Si te gusta este sitio, ¡compártelo! Nos anima a seguir mejorando.

Lista completa de atajos de teclado de Vim (101 atajos)

Todos los atajos de teclado de Vim que aparecen en la práctica anterior, recogidos en una sola lista. Cada fila muestra las teclas en Windows y en Mac, además de una breve explicación de para qué sirve el atajo. Elige el que quieras aprender y practícalo arriba hasta memorizarlo.

Movimiento

Vim — Movimiento
Acción Atajo Qué hace
Moverse al personaje superior k Mueve el cursor una línea hacia arriba en modo normal. Permite desplazarse sin apartar las manos de la fila central del teclado, por lo que es uno de los primeros movimientos que se aprenden en Vim.
Mover al personaje inferior j Mueve el cursor una línea hacia abajo en modo normal. Permite desplazarse verticalmente sin usar las teclas de flecha y es la base de la navegación vertical.
Moverse al personaje correcto l Mueve el cursor un carácter hacia la derecha en modo normal. Es la dirección derecha del conjunto de teclas h/j/k/l y se usa para ajustar la posición dentro de una línea.
Moverse al caracter de la izquierda h Mueve el cursor un carácter hacia la izquierda en modo normal. Es la dirección izquierda de h/j/k/l y se usa a menudo para retroceder dentro de una línea y corregir algo.
Moverse al carácter superior en la pantalla g k Mueve el cursor una línea visual (ajustada) hacia arriba, en lugar de una línea lógica. A diferencia de k, sigue el ajuste de línea en pantalla, útil cuando una línea larga ocupa varias filas visuales.
Moverse al carácter inferior en la pantalla g j Mueve el cursor una línea visual (ajustada) hacia abajo, en lugar de una línea lógica. Es útil al editar una línea larga cuando se desea que el cursor siga el ajuste visible.
Ir al principio de la línea (primer carácter) ^ Mueve el cursor al primer carácter no en blanco de la línea en modo normal. Incluso en una línea con sangría, salta directamente al inicio real del texto, después del espacio en blanco inicial.
Ir al principio de la línea (primera columna) 0 Mueve el cursor a la columna 1 de la línea (el inicio absoluto) en modo normal. A diferencia de ^, siempre se coloca en la posición más a la izquierda, sin importar la sangría.
Ir al final de la línea Shift+$ Mueve el cursor al final de la línea (el último carácter) en modo normal. Se usa a menudo para añadir texto al final de una línea o para revisar rápidamente su contenido.
Ir al principio de la siguiente palabra w Mueve el cursor al comienzo de la siguiente palabra en modo normal. Es más rápido que moverse carácter a carácter con h o l, y es un movimiento básico para editar por palabras.
Volver al principio de la palabra anterior b Mueve el cursor al comienzo de la palabra anterior en modo normal. Se desplaza en la dirección opuesta a w, útil para volver y corregir una palabra escrita justo antes.
Ir al final de la palabra e Mueve el cursor hacia adelante hasta el final de una palabra en modo normal. Se usa a menudo cuando se quiere trabajar con el último carácter de una palabra, o como punto de partida para comandos como de.
Volver al final de la palabra anterior g e Mueve el cursor hacia atrás hasta el final de la palabra anterior en modo normal. Se desplaza en dirección opuesta a e, útil para editar el final de una palabra previa.
Ir al principio del archivo g g Salta con el cursor directamente al inicio del archivo (línea 1) en modo normal. Es útil para volver rápidamente al principio cuando se trabaja en un archivo largo.
Ir al final del archivo Shift+G Salta con el cursor directamente a la última línea del archivo en modo normal. Se usa a menudo para revisar el final de un archivo, como un archivo de registro.
Ir a la línea 77 :77 Enter En modo de línea de comandos, escribir ":número-de-línea" y presionar Enter salta directamente a la línea indicada (en este caso, la línea 77). Permite saltar directamente a un lugar conocido, por ejemplo cuando un mensaje de error indica un número de línea.
Desplazar para centrar el cursor en la pantalla z z Desplaza la vista para que la línea actual del cursor quede centrada en la pantalla, sin mover el cursor. Es útil para ver el contexto anterior y posterior al punto que se está editando.
Buscar "," hacia adelante (en la línea) f , En modo normal, busca hacia adelante dentro de la línea actual desde la posición del cursor y coloca el cursor sobre el carácter especificado (aquí, ","). Se usa para saltar directamente a un delimitador como una coma dentro de una línea.
Repetir la búsqueda de un carácter hacia adelante ; Repite la última búsqueda de un solo carácter realizada con f (o t) en la misma dirección. Se usa para avanzar por apariciones sucesivas del mismo carácter en una línea.
Repetir la búsqueda de un carácter hacia atrás , Repite la última búsqueda de un solo carácter realizada con f (o t) en la dirección opuesta. Es útil para retroceder cuando se ha avanzado demasiado con ;.
Buscar "n" hacia atrás en esa línea Shift+F n Usar F (mayúscula) busca hacia atrás dentro de la línea desde el cursor y se coloca sobre el carácter especificado (aquí, "n"). Es la versión inversa de f, útil para moverse rápidamente hacia la izquierda dentro de una línea.
Buscar la cadena "and" hacia adelante /and Enter En modo de línea de comandos, escribir "/" seguido de una cadena de búsqueda (aquí, "and") y presionar Enter busca hacia adelante en todo el archivo. Se usa para localizar rápidamente una palabra o fragmento de código específico.
Repetir la búsqueda de cadena hacia adelante n Repite la última búsqueda de varios caracteres (con / o ?) en la misma dirección. Se usa para avanzar por coincidencias sucesivas de la misma palabra en un documento.
Repetir la búsqueda de cadena hacia atrás Shift+N Repite la última búsqueda de varios caracteres (con / o ?) en la dirección opuesta. A diferencia de n, se usa para volver a la coincidencia anterior.
Volver al lugar desde donde saltaste Ctrl+O Retrocede a la posición anterior en la lista de saltos, que registra los movimientos grandes del cursor causados por búsquedas, gg, saltos de línea, etc. Es útil para volver al lugar donde estabas después de saltar a otra parte mientras lees código.
Ir al lugar al que saltaste Ctrl+I Avanza un paso en la lista de saltos, en la dirección opuesta a ctrl-o. Se usa para avanzar de nuevo después de haber retrocedido demasiado.
Subir medio pantalla Ctrl+U Desplaza el cursor y la vista hacia arriba media pantalla de altura. Se mueve en incrementos ligeramente más pequeños que ctrl-b, útil para releer un documento poco a poco.
Bajar medio pantalla Ctrl+D Desplaza el cursor y la vista hacia abajo media pantalla de altura. Es lo opuesto a ctrl-u, y se usa a menudo para leer un documento poco a poco hacia adelante.
Subir una pantalla Ctrl+B Desplaza el cursor y la vista hacia arriba una pantalla completa (una página). Se mueve más lejos que ctrl-u, útil para retroceder rápidamente en un documento largo.
Bajar una pantalla Ctrl+F Desplaza el cursor y la vista hacia abajo una pantalla completa (una página). Es lo opuesto a ctrl-b, útil para avanzar rápidamente en un documento largo.
Retroceder a un cambio anterior g ; Mueve el cursor hacia atrás hasta la ubicación del cambio anterior, siguiendo la lista de cambios. Se usa para volver a revisar una edición anterior después de hacer cambios en varios lugares.
Avanzar a un cambio posterior g , Mueve el cursor hacia adelante un paso en la lista de cambios, en dirección opuesta a g;. Se usa para avanzar de nuevo si se retrocedió demasiado en el historial de cambios.

Edición

Vim — Edición
Acción Atajo Qué hace
Cambiar al modo de edición (antes del cursor) i Cambia del modo normal al modo de inserción, permitiendo escribir texto justo antes del carácter donde está el cursor. Es uno de los comandos más usados para escribir texto nuevo en Vim.
Cambiar al modo normal Esc Vuelve al modo normal por defecto de Vim desde otros modos como el de inserción o el visual. Dado que la navegación, la copia y el borrado se realizan en modo normal, esta es una tecla que se usa después de cada edición.
Cambiar al modo de edición (detrás del cursor) a Cambia del modo normal al modo de inserción, permitiendo escribir texto justo después del carácter donde está el cursor. A diferencia de i, la inserción comienza una posición más adelante, útil para añadir texto al final de una línea.
Regrese al modo normal (presione ctrl var) Ctrl+[ Funciona igual que la tecla Escape, volviendo al modo normal desde el modo de inserción y similares. Se usa a menudo en lugar de Escape cuando se quiere cambiar de modo sin apartar las manos de la fila central.
Inserte la línea a continuación para ingresar al modo de entrada o Inserta una nueva línea en blanco debajo de la línea actual y entra en modo de inserción en ella. Es útil para empezar una nueva línea de código o texto sin importar dónde estaba el cursor en la línea actual.
Inserte una línea arriba e ingrese al modo de entrada Shift+O Inserta una nueva línea en blanco encima de la línea actual y entra en modo de inserción en ella. Funciona en dirección opuesta a o, útil para añadir una nueva línea antes de la actual.
Ir al comienzo de la línea e ingresar al modo de entrada Shift+I Mueve el cursor al primer carácter no en blanco de la línea y entra en modo de inserción allí. Combina ^ e i en un solo paso, útil para añadir texto al principio de una línea.
Ir al final de la línea e ingresar al modo de entrada Shift+A Mueve el cursor al final de la línea actual y entra en modo de inserción allí. Combina $ y a en un solo paso, y se usa muy a menudo para añadir texto al final de una línea.
Reemplace el carácter en el cursor con "M" r Shift+M En modo normal, escribir "r" seguido de un carácter reemplaza solo el carácter bajo el cursor por él. Este ejemplo lo reemplaza por "M"; la ventaja principal es corregir un carácter al instante sin entrar en modo de inserción.
Ingrese "vim" en modo de reemplazo de caracteres múltiples Shift+R v i m Presionar R (mayúscula) entra en modo de reemplazo, donde los caracteres escritos sobrescriben el texto existente desde la posición del cursor. Aquí se escribe "vim"; se usa cuando se quiere corregir texto sobrescribiéndolo directamente.
Cambiar al modo normal Esc Vuelve al modo normal desde el modo de inserción, el modo de reemplazo y similares. Después de escribir o reemplazar texto, esta tecla te devuelve al modo de operación estándar.
Borrar un caracter x Elimina el carácter que está bajo el cursor en modo normal. Es la forma más rápida de borrar un solo carácter mal escrito al instante.
Cambiar al modo visual v Cambia del modo normal al modo visual (selección por caracteres). Al mover el cursor se extiende la selección, sobre la cual luego se pueden usar comandos como y (copiar) o d (eliminar).
Moverse al final de la palabra e Mueve el cursor al final de una palabra, tanto en modo normal como en modo visual. Usado en modo visual, extiende la selección hasta el final de la palabra.
Yank (copia) y Copia (yank) el rango seleccionado en modo visual a un registro. Corresponde al "copiar" de copiar y pegar, usado cuando se quiere duplicar el texto seleccionado en otro lugar.
Pegue lo que tira p Pega el contenido copiado (yanked) o eliminado más recientemente, después de la posición del cursor. Corresponde al "pegar" de copiar y pegar, y es una operación usada constantemente al editar en Vim.
Borrar una línea d d Elimina toda la línea actual en modo normal. Se usa para borrar una línea no deseada de una vez, y el contenido eliminado se guarda automáticamente en un registro.
Yank (copiar) una línea y y Copia (yank) toda la línea actual en modo normal. Cuando se quiere copiar una línea completa, este único comando lo hace sin necesidad de seleccionar un rango primero.
Pegue lo que tira p Pega la línea copiada con yy debajo de la línea donde está el cursor. Se usa para duplicar una línea copiada o moverla a otro lugar.
Elimine el contenido de la etiqueta html e ingrese al modo de edición cit Con el cursor dentro de una etiqueta HTML, elimina solo el contenido entre las etiquetas de apertura y cierre y entra en modo de inserción allí. Combina "c" (change) con "it" (inner tag), útil para reescribir solo el contenido de la etiqueta manteniendo su estructura.
Seleccionar contenido de etiqueta html vit Con el cursor dentro de una etiqueta HTML, esto selecciona en modo visual solo el contenido entre las etiquetas. Combina "v" (visual) con "it" (inner tag), usado normalmente antes de copiar o eliminar el contenido de la etiqueta en conjunto.
Eliminar contenido de la etiqueta html dit Con el cursor dentro de una etiqueta HTML, esto elimina solo el contenido entre las etiquetas. Combina "d" (delete) con "it" (inner tag), usado cuando se quiere vaciar el contenido conservando la etiqueta misma.
Yank el contenido de la etiqueta html (copia) yit Con el cursor dentro de una etiqueta HTML, esto copia (yank) solo el contenido entre las etiquetas. Combina "y" (yank) con "it" (inner tag), útil para duplicar solo el contenido de la etiqueta en otro lugar.
Elimine el contenido de "" e ingrese al modo de edición c i Shift+" Con el cursor dentro de una cadena entre comillas dobles, esto elimina solo el texto entre las comillas y entra en modo de inserción allí. Combina "c" con "i\"" (inner quote), útil para reescribir solo el valor de una cadena.
Seleccione el contenido de "" v i Shift+" Con el cursor dentro de una cadena entre comillas dobles, esto selecciona en modo visual solo el texto entre las comillas. Se usa como paso de selección antes de copiar o revisar el valor.
Eliminar el contenido de "" d i Shift+" Con el cursor dentro de una cadena entre comillas dobles, esto elimina solo el texto entre las comillas. Se usa cuando se quiere vaciar el valor conservando las comillas.
Yank (copiar) el contenido de "" y i Shift+" Con el cursor dentro de una cadena entre comillas dobles, esto copia (yank) solo el texto entre las comillas. Es útil cuando se quiere copiar solo el valor a otro lugar.
Borra la palabra en el cursor e ingresa al modo de edición ciw Elimina solo la palabra bajo el cursor y entra en modo de inserción allí. Combina "c" con "iw" (inner word), usado a menudo para reescribir una sola palabra en el acto sin seleccionarla manualmente.
Seleccionar palabra en el cursor viw Selecciona toda la palabra bajo el cursor en modo visual. Combina "v" con "iw" (inner word), conveniente para seleccionar una palabra completa antes de copiarla o eliminarla.
Borrar palabra en el cursor diw Elimina toda la palabra bajo el cursor. Combina "d" con "iw" (inner word), usado para borrar una palabra completa de una vez sin el esfuerzo de seleccionar parte de ella manualmente.
Yank (copiar) la palabra en el cursor yiw Copia (yank) toda la palabra bajo el cursor. Combina "y" con "iw" (inner word), ahorrando el esfuerzo de seleccionar un rango manualmente cuando se quiere copiar una sola palabra.

Operaciones de archivo

Vim — Operaciones de archivo
Acción Atajo Qué hace
Cree un nuevo archivo llamado "test.js" :e test.js Enter En modo de línea de comandos, escribir ":e nombre-de-archivo" abre el archivo indicado, creándolo si no existe. Este ejemplo muestra cómo crear un nuevo archivo llamado "test.js".
Guardar : w Enter En modo de línea de comandos, escribir ":w" y presionar Enter guarda el archivo que se está editando. Corresponde a guardar los cambios, y es uno de los comandos más usados al trabajar en Vim.
Finalizar archivo actual : q En modo de línea de comandos, escribir ":q" cierra Vim. Si el archivo tiene cambios sin guardar, mostrará un error y no se cerrará, por lo que normalmente se usa después de guardar.
Eliminar archivo actual (salir sin guardar) : q Shift+! Enter En modo de línea de comandos, escribir ":q!" fuerza el cierre de Vim sin guardar los cambios. Se usa cuando se quiere descartar ediciones de prueba y abandonar el archivo tal como estaba.
Cambie el nombre del archivo a "othr.js" :f othr.js Enter En modo de línea de comandos, escribir ":f nuevo-nombre-de-archivo" cambia solo el nombre del buffer que se está editando. Este ejemplo lo renombra a "othr.js"; es necesario un :w posterior para guardarlo realmente con el nuevo nombre.
Guardar y Salir :wq Enter En modo de línea de comandos, escribir ":wq" guarda el archivo y luego cierra Vim. Combina ":w" y ":q" en un solo paso, y es la forma habitual de terminar una sesión de edición.
suspender vim Ctrl+Z Envía Vim al segundo plano y vuelve a la shell, suspendiéndolo temporalmente. Se usa cuando se quiere ejecutar otro comando brevemente sin cerrar Vim, y se puede volver a la pantalla de edición más tarde con fg.
Restaurar estado suspendido f g Enter Escrito en la shell como "fg" seguido de Enter, esto trae de vuelta al primer plano una sesión de Vim suspendida con ctrl-z. Es un comando de la shell, no de Vim, usado cuando se quiere retomar la edición.

Dividir pantalla (Mac)

Vim — Dividir pantalla (Mac)
Acción Atajo Qué hace
Pantalla dividida verticalmente :sp Enter En modo de línea de comandos, escribir ":sp" divide la ventana actual horizontalmente (una encima de la otra). Se usa cuando se quiere ver y editar otra parte del mismo archivo, u otro archivo, al mismo tiempo.
Pantalla dividida a izquierda y derecha :vsp Enter En modo de línea de comandos, escribir ":vsp" divide la ventana actual verticalmente (una al lado de la otra). Es conveniente en una pantalla ancha para comparar dos archivos, o dos partes del mismo archivo, uno al lado del otro.
Cerrar ventana : q Enter En modo de línea de comandos, escribir ":q" cierra solo la ventana dividida actualmente activa. Se usa para cerrar una ventana que ya no se necesita mientras las demás permanecen abiertas.
Cerrar todas las ventanas :qall Enter En modo de línea de comandos, escribir ":qall" cierra todas las ventanas divididas a la vez. Ahorra la molestia de cerrar cada una individualmente con :q, útil para terminar el trabajo de una vez.
Cerrar todo menos la ventana actual :only Enter En modo de línea de comandos, escribir ":only" cierra todas las ventanas divididas excepto la actual. Se usa para volver a una sola vista de tamaño completo después de trabajar con varias ventanas divididas.

Dividir pantalla (Win)

Vim — Dividir pantalla (Win)
Acción Atajo Qué hace
Pantalla dividida verticalmente :sp Enter En modo de línea de comandos, escribir ":sp" divide la ventana actual horizontalmente (una encima de la otra). Se usa cuando se quiere ver y editar otra parte del mismo archivo, u otro archivo, al mismo tiempo.
Pantalla dividida a izquierda y derecha :vsp Enter En modo de línea de comandos, escribir ":vsp" divide la ventana actual verticalmente (una al lado de la otra). Es conveniente en una pantalla ancha para comparar dos archivos, o dos partes del mismo archivo, uno al lado del otro.
Cerrar ventana : q Enter En modo de línea de comandos, escribir ":q" cierra solo la ventana dividida actualmente activa. Se usa para cerrar una ventana que ya no se necesita mientras las demás permanecen abiertas.
Cerrar todas las ventanas :qall Enter En modo de línea de comandos, escribir ":qall" cierra todas las ventanas divididas a la vez. Ahorra la molestia de cerrar cada una individualmente con :q, útil para terminar el trabajo de una vez.
Cerrar todo menos la ventana actual :only Enter En modo de línea de comandos, escribir ":only" cierra todas las ventanas divididas excepto la actual. Se usa para volver a una sola vista de tamaño completo después de trabajar con varias ventanas divididas.

Uso de registros

Vim — Uso de registros
Acción Atajo Qué hace
Seleccionar línea actual Shift+V Presionar V (mayúscula) en modo normal entra en el modo visual de líneas (selección por líneas). A diferencia de v (por caracteres), la selección siempre abarca líneas completas, útil para operar sobre varias líneas a la vez.
Seleccione las tres líneas a continuación jjj Presionar j tres veces en modo visual de líneas extiende la selección tres líneas más hacia abajo. Se usa para añadir las líneas siguientes a una selección ya iniciada.
Guardar selección en el registro "a" Shift+" a y Copia (yank) el rango seleccionado en modo visual al registro con nombre "a" en lugar del registro por defecto. Especificar "a con \"a y luego presionar y guarda la copia por separado, para que no se sobrescriba con otra copia posterior.
Mueve 3 hacia abajo jjj Presionar j tres veces en modo normal mueve el cursor tres líneas hacia abajo. Aquí se usa para llegar a la línea de destino antes de pegar el contenido guardado en el registro a.
Pegue el contenido del registro "a" Shift+" a p Especificar el registro a con \"a y luego presionar p pega el contenido almacenado en el registro a en la posición del cursor. A diferencia de p simple, permite pegar el contenido de un registro específico con precisión.
Guarde la línea actual en el registro "b" Shift+" b y y Especificar el registro b con \"b y luego presionar yy copia toda la línea actual al registro b. Se usa cuando se quieren mantener varios contenidos copiados en registros separados.
Pegue el contenido del registro "b" Shift+" b p Especificar el registro b con \"b y luego presionar p pega el contenido almacenado en el registro b en la posición del cursor. Permite pegar la línea guardada en b independientemente de lo que haya en el registro a.
Seleccionar línea actual Shift+V Presionar V (mayúscula) en modo normal selecciona la línea actual en modo visual de líneas. Aquí es el punto de partida para añadir más líneas a la selección antes de guardarlas en el registro c.
También seleccione las 5 filas inferiores jjjjj Presionar j cinco veces en modo visual de líneas extiende la selección cinco líneas más hacia abajo. Se usa para seleccionar un bloque más grande de líneas de una vez, además de la línea ya seleccionada.
Borrar rango seleccionado y guardar en el registro "c" Shift+" c d Especificar el registro c con \"c y luego presionar d elimina el rango seleccionado en modo visual mientras guarda su contenido en el registro c. Esto corresponde a "cortar", usado después de seleccionar un rango que se quiere mover a otro lugar.
Mover hacia abajo j Presionar j en modo normal mueve el cursor una línea hacia abajo. Aquí se usa para llegar a la línea de destino antes de pegar el contenido guardado en el registro c.
Pegue el contenido del registro "c" Shift+" c p Especificar el registro c con \"c y luego presionar p pega el contenido almacenado en el registro c en la posición del cursor. Se usa como paso final para mover a un nuevo lugar el contenido cortado con d.
Borrar la línea actual y guardar en el registro "d" Shift+" d d d Especificar el registro d con \"d y luego presionar dd elimina la línea actual mientras guarda su contenido en el registro d. Corresponde a un corte por línea, usado cuando se quiere conservarlo en un registro específico.
Pegue el contenido del registro "d" Shift+" d p Especificar el registro d con \"d y luego presionar p pega el contenido almacenado en el registro d en la posición del cursor. Se usa para recuperar una línea eliminada con dd, comprobando la ubicación mientras se hace.
Mostrar lista de información de registro :reg Enter En modo de línea de comandos, escribir ":reg" y presionar Enter muestra una lista con el contenido de todos los registros almacenados actualmente. Se usa para comprobar qué se copió y dónde cuando no se recuerda qué contiene cada registro.
Ingrese al modo VISUAL v Presionar v en modo normal entra en modo visual (selección por caracteres). Aquí es el paso preparatorio antes de extender la selección palabra por palabra con e repetido, para guardarla en el registro e.
Selecciona 2 palabras e e Presionar e dos veces en modo visual extiende la selección dos palabras, usando los finales de palabra como límite. Es más rápido que seleccionar carácter a carácter cuando se quieren seleccionar palabras completas.
Guardar selección en el registro "e" Shift+" e y Especificar el registro e con \"e y luego presionar y copia las dos palabras seleccionadas en modo visual al registro e. Se usa para mantener una copia a nivel de palabra separada de los otros registros (a a d).
Ingrese al modo INSERTAR i Presionar i en modo normal entra en modo de inserción. Aquí se usa antes de pegar la palabra copiada en el registro e directamente con ctrl-r.
Pegue el registro "e" mientras está en modo INSERT Ctrl+R e En modo de inserción, presionar ctrl-r seguido del nombre de un registro (aquí, "e") inserta el contenido del registro e directamente en la posición del cursor. La ventaja principal es insertar texto copiado previamente en lo que se está escribiendo sin salir del modo de inserción.
Volver arriba