Saltar al contenido principal

📋 Cheatsheet Vim

🎭 Modos

ComandoAcción
EscVolver a modo Normal
iInsert antes del cursor
aInsert después del cursor
IInsert al inicio de línea
AInsert al final de línea
oNueva línea abajo
ONueva línea arriba
vVisual carácter
VVisual línea
Ctrl+vVisual bloque
:Modo comando
/Búsqueda adelante
?Búsqueda atrás

🏃 Movimientos básicos

Carácter

ComandoAcción
h← Izquierda
j↓ Abajo
k↑ Arriba
l→ Derecha

Palabra

ComandoAcción
wSiguiente palabra
WSiguiente PALABRA (separada por espacios)
bPalabra anterior
BPALABRA anterior
eFinal de palabra
EFinal de PALABRA

Línea

ComandoAcción
0Inicio de línea
^Primer carácter no-blanco
$Final de línea
g_Último carácter no-blanco

Pantalla

ComandoAcción
HTop de pantalla
MMedio de pantalla
LBottom de pantalla
Ctrl+uMedia página arriba
Ctrl+dMedia página abajo
Ctrl+bPágina completa arriba
Ctrl+fPágina completa abajo
ggInicio de archivo
GFinal de archivo
:{número}Ir a línea número

Búsqueda en línea

ComandoAcción
f{char}Buscar carácter hacia adelante
F{char}Buscar carácter hacia atrás
t{char}Hasta carácter hacia adelante
T{char}Hasta carácter hacia atrás
;Repetir búsqueda de carácter
,Repetir búsqueda de carácter (reversa)

✂️ Edición

Borrar

ComandoAcción
xBorrar carácter
XBorrar carácter anterior
ddBorrar línea
dwBorrar palabra
d$Borrar hasta final de línea
d0Borrar hasta inicio de línea
dGBorrar hasta final de archivo
dggBorrar hasta inicio de archivo

Cambiar (borrar + insert)

ComandoAcción
ccCambiar línea
cwCambiar palabra
c$Cambiar hasta final de línea
CCambiar hasta final de línea
sCambiar carácter
SCambiar línea completa

Copiar (yank)

ComandoAcción
yyCopiar línea
ywCopiar palabra
y$Copiar hasta final de línea
yGCopiar hasta final de archivo

Pegar

ComandoAcción
pPegar después
PPegar antes

Otros

ComandoAcción
uDeshacer
Ctrl+rRehacer
.Repetir último comando
~Cambiar mayúscula/minúscula
>>Indentar línea
<<Des-indentar línea
JUnir línea con la siguiente

🔍 Búsqueda y reemplazo

Búsqueda

ComandoAcción
/textoBuscar "texto"
?textoBuscar "texto" hacia atrás
nSiguiente resultado
NResultado anterior
*Buscar palabra bajo cursor
#Buscar palabra bajo cursor (atrás)

Reemplazo

ComandoAcción
:s/old/new/Reemplazar en línea actual
:s/old/new/gReemplazar todo en línea
:%s/old/new/gReemplazar en todo el archivo
:%s/old/new/gcReemplazar con confirmación

🗂️ Buffers y ventanas

Buffers

ComandoAcción
:e archivoAbrir archivo
:b númeroCambiar a buffer número
:bnextSiguiente buffer
:bprevBuffer anterior
:bdCerrar buffer
:lsListar buffers

Ventanas

ComandoAcción
:splitDivisión horizontal
:vsplitDivisión vertical
Ctrl+w hVentana izquierda
Ctrl+w jVentana abajo
Ctrl+w kVentana arriba
Ctrl+w lVentana derecha
Ctrl+w wSiguiente ventana
Ctrl+w qCerrar ventana
Ctrl+w =Igualar tamaños

Pestañas

ComandoAcción
:tabnewNueva pestaña
:tabnextSiguiente pestaña
:tabprevPestaña anterior
:tabcloseCerrar pestaña
gtSiguiente pestaña
gTPestaña anterior

📝 Comandos útiles

Archivos

ComandoAcción
:wGuardar
:w archivoGuardar como
:waGuardar todos
:qSalir
:q!Salir sin guardar
:wqGuardar y salir
:xGuardar y salir
:qaSalir de todo

Configuración

ComandoAcción
:set numberMostrar números
:set nonumberOcultar números
:set pasteModo paste
:set nopasteDesactivar modo paste
:syntax onActivar sintaxis
:syntax offDesactivar sintaxis

Ayuda

ComandoAcción
:helpAyuda general
:help comandoAyuda de comando
:helpgrep textoBuscar en ayuda

🎯 Combinaciones de objetos de texto

Formato: {operador}{objeto}

Operadores

  • d - borrar
  • c - cambiar
  • y - copiar
  • v - seleccionar

Objetos de texto

ComandoAcción
wpalabra
WPALABRA
soración
ppárrafo
ttag HTML/XML
"texto entre comillas dobles
'texto entre comillas simples
```texto entre backticks
( o )texto entre paréntesis
[ o ]texto entre corchetes
{ o }texto entre llaves

Modificadores

  • i - inner (dentro de)
  • a - around (alrededor de, incluyendo)

Ejemplos

ComandoAcción
diwborrar palabra (inner word)
dawborrar palabra con espacios (around word)
ci"cambiar texto entre comillas
ya{copiar contenido entre llaves
vi(seleccionar dentro de paréntesis

🔢 Modificadores numéricos

Cualquier comando puede ser precedido por un número:

ComandoAcción
3w3 palabras adelante
5j5 líneas abajo
2ddborrar 2 líneas
3yycopiar 3 líneas
4>>indentar 4 líneas

🎨 Marcas y registros

Marcas

ComandoAcción
maMarcar posición como 'a'
`aIr a marca 'a'
'aIr a línea de marca 'a'
:marksVer todas las marcas

Registros

ComandoAcción
"ayyCopiar línea al registro 'a'
"apPegar del registro 'a'
:regVer contenido de registros

🔄 Macros

ComandoAcción
qaGrabar macro en registro 'a'
qParar grabación
@aEjecutar macro 'a'
@@Repetir última macro
3@aEjecutar macro 'a' 3 veces

💡 Pro tip: Imprime esta página y tenla cerca mientras aprendes. Con el tiempo no la necesitarás.