En esta pagina vas a encontrar los principales atajos de VIM, no es una guía completa ni mucho menos, pero te ayudará a no quedarte dentro de el editor de VIM sin saber como salir.
TIP
Si has llegado a esta pagina porque no puedes salir de vim:
:qa! (Sin guardar) :qwa! (Guardando todo)
Básico
Modos
En vim existen tres modos fundamentales, normal, insert y replace. Normal: Te permite navegar por el fichero sin modificarlo Insert: Te permite editar el fichero, añadiendo o eliminando caracteres (como un editor normal) Replace: Reemplaza los caracteres existentes por los que escribas
. Repites el ultimo comando ejecutado
i Modo Insert
I Modo Insert al inicio del fichero
a Modo Insert un caracter después del cursor
A Modo Insert al final de la linea
<esc> Salir del modo insert
s Eliminar el caracter bajo el cursor y entrar al modo Insert
R Modo Replace
<insert> Modo Replace
gR Modo Replace virt, trata tabulaciones como un único espacio
r{char} Reemplaza un solo caracter
gr{char} Reemplaza un solo caracter en modo Replace Virtual
Vr- Selecciona una linea y reemplaza todos los caracteres por -
Movimiento
Para moverte por el texto
Escribir y atajos
Salir de vim
Hay distintas formas de salir de vim, ya sea guardando o no, sobrescribiendo, forzando root
:q Cerrar el archivo actual
:qa Cerrar todos los archivos
:w Guarda el archivo actual
:wq/:x Igual que :w pero saliendo de vim al finalizar
ZZ Guardar y salir
ZQ Salir sin comprobar cambios
Comandos
Vim también permite ejecutar comandos en la shell desde el propio editor
:! Accede a la shell
:!ls Ejecuta ls en la shell (:ls solo muestra la lista del buffer)
% Variable que almacena el nombre actual del archivo
:!{cmd} % Ejecuta un comando en la shell dando como argumento el archivo
:shell Inicia una shell interactiva en el editor de vim
:read !{cmd} Almacena la salida del comando en el buffer actual
:write !{cmd} Usa el buffer actual como entrada para el comando
:write {archivo} Guarda el buffer actual en el archivo
:write! {archivo} Guarda el buffer actual en el archivo sobreescribiendo el mismo
:[rango]!{cmd} Pasa las lineas del rango al cmd y las reemplaza con la salida
:!mkdir -p %:h Crea los directorios necesarios para almacenar el archivo
Archivos y buffers
En vim existen comandos internos que nos permiten editar archivos (similar a un explorador de archivos)
:cd {ruta} Cambia la ruta de trabajo de vim
:pwd Muestra la ruta actual de trabajo de vim
:edit {archivo} Edita el archivo
:edit/:e! Recarga el archivo actual sin guardar cambios
:find {archivo} Edita un archivo sin una ruta completa, se puede usar <tab>