REFERENCIA RÁPIDA DE VIM
Modos, navegación, edición, búsqueda, macros, buffers
Modos
Cambio de Modo
| i | Modo inserción (antes del cursor) |
| a | Modo inserción (después del cursor) |
| o | Insertar línea abajo y entrar en modo inserción |
| O | Insertar línea arriba y entrar en modo inserción |
| v | Modo visual (carácter) |
| V | Modo visual (línea) |
| Ctrl+v | Modo bloque visual |
| : | Modo línea de comandos |
| R | Modo reemplazo |
| Esc | Volver al modo normal |
Navegación
Movimiento por Carácter y Línea
| h j k l | Izquierda, abajo, arriba, derecha |
| 0 / ^ | Inicio de línea / primer carácter no vacío |
| $ | Fin de línea |
| w / W | Siguiente palabra / PALABRA |
| b / B | Palabra anterior / PALABRA |
| e / E | Fin de palabra / PALABRA |
| f{c} / F{c} | Buscar carácter hacia adelante / atrás |
| t{c} / T{c} | Hasta carácter hacia adelante / atrás |
Movimiento por Pantalla y Archivo
| gg / G | Ir a primera / última línea |
| :{n} | Ir a línea n |
| Ctrl+d / Ctrl+u | Media página abajo / arriba |
| Ctrl+f / Ctrl+b | Página completa abajo / arriba |
| H / M / L | Parte superior / media / inferior de la pantalla |
| % | Saltar al corchete coincidente |
Edición
Insertar y Añadir
| I | Insertar al principio de la línea |
| A | Añadir al final de la línea |
| ea | Añadir al final de la palabra |
| gi | Insertar en la última posición de inserción |
Eliminar y Cambiar
| x / X | Eliminar carácter bajo / antes del cursor |
| dd | Eliminar línea |
| dw | Eliminar palabra |
| d$ / D | Eliminar hasta el final de la línea |
| cc / S | Cambiar línea entera |
| cw | Cambiar palabra |
| c$ / C | Cambiar hasta el final de la línea |
| ci" / ci( | Cambiar dentro de comillas / paréntesis |
Copiar y Pegar
| yy | Copiar (yank) línea |
| yw | Copiar palabra |
| y$ | Copiar hasta el final de la línea |
| p / P | Pegar después / antes del cursor |
| J | Unir la línea de abajo a la actual |
Deshacer y Repetir
| u | Deshacer |
| Ctrl+r | Rehacer |
| . | Repetir último comando |
Buscar y Reemplazar
Búsqueda
| /pattern | Buscar hacia adelante |
| ?pattern | Buscar hacia atrás |
| n / N | Siguiente / coincidencia anterior |
| * | Buscar palabra bajo el cursor (adelante) |
| # | Buscar palabra bajo el cursor (atrás) |
Sustitución
:s/old/new/ " reemplazar primero en línea
:s/old/new/g " reemplazar todos en línea
:%s/old/new/g " reemplazar todos en archivo
:%s/old/new/gc " reemplazar todos, confirmar cada uno
Modo Visual
Selección
| v | Iniciar selección de carácter |
| V | Iniciar selección de línea |
| Ctrl+v | Iniciar selección de bloque |
| o | Moverse al otro extremo de la selección |
| gv | Reseleccionar última selección visual |
Acciones sobre la Selección
| d | Eliminar selección |
| y | Copiar selección |
| c | Cambiar selección |
| > | Indentar selección |
| < | Quitar indentación de selección |
| ~ | Alternar mayúsculas/minúsculas |
| U / u | Mayúsculas / minúsculas de selección |
Buffers y Ventanas
Buffers
| :ls | Listar buffers abiertos |
| :bn / :bp | Siguiente / buffer anterior |
| :b{n} | Ir al buffer n |
| :bd | Cerrar buffer actual |
| :e file | Abrir archivo en nuevo buffer |
Ventanas
| :sp file | División horizontal |
| :vsp file | División vertical |
| Ctrl+w h/j/k/l | Navegar a ventana |
| Ctrl+w = | Igualar tamaños de ventana |
| Ctrl+w q | Cerrar ventana |
Pestañas
| :tabnew file | Abrir archivo en nueva pestaña |
| gt / gT | Siguiente / pestaña anterior |
| :tabclose | Cerrar pestaña actual |
Registros
Usar Registros
| "ay | Copiar en registro a |
| "ap | Pegar desde registro a |
| "Ay | Añadir copia al registro a |
| :reg | Mostrar todos los registros |
Registros Especiales
| "" | Sin nombre (último eliminado/copiado) |
| "0 | Última copia |
| "+ | Portapapeles del sistema |
| "/" | Último patrón de búsqueda |
| ". | Último texto insertado |
| "_ | Agujero negro (descartar) |
Macros
Grabar y Reproducir
| q{a} | Iniciar grabación de macro en registro a |
| q | Detener grabación |
| @{a} | Reproducir macro desde registro a |
| @@ | Repetir última macro |
| 5@a | Reproducir macro a 5 veces |
Ejemplo de Macro
qa " iniciar grabación en a
I// " insertar // al inicio de línea
Esc j " volver a normal, bajar
q " detener grabación
10@a " comentar las siguientes 10 líneas
Configuración
Opciones Comunes
:set number " mostrar números de línea
:set relativenumber " números de línea relativos
:set tabstop=4 " ancho de tabulación
:set expandtab " espacios en lugar de tabulaciones
:set ignorecase " búsqueda sin distinción de mayúsculas
Visualización y Comportamiento
:set wrap / nowrap " alternar ajuste de línea
:set hlsearch " resaltar coincidencias de búsqueda
:set incsearch " búsqueda incremental
:set cursorline " resaltar línea actual
:syntax on " activar resaltado de sintaxis
Operaciones de Archivo
Guardar y Salir
| :w | Guardar |
| :w file | Guardar como archivo |
| :q | Salir (falla si hay cambios sin guardar) |
| :q! | Salir sin guardar |
| :wq / :x / ZZ | Guardar y salir |
| :wa | Guardar todos los buffers |
| :qa | Salir de todos los buffers |
Información de Archivo y Externo
| Ctrl+g | Mostrar información del archivo |
| :!cmd | Ejecutar comando de shell |
| :r !cmd | Insertar salida de comando |
| :r file | Insertar contenido de archivo |
Objetos de Texto
Objetos Internos y Alrededor
| iw / aw | Dentro / alrededor de la palabra |
| is / as | Dentro / alrededor de la oración |
| ip / ap | Dentro / alrededor del párrafo |
| i" / a" | Dentro / alrededor de comillas dobles |
| i' / a' | Dentro / alrededor de comillas simples |
| i( / a( | Dentro / alrededor de paréntesis |
| i{ / a{ | Dentro / alrededor de llaves |
| it / at | Dentro / alrededor de etiqueta HTML |
Combinaciones Comunes
ciw " cambiar palabra interna
di" " eliminar dentro de comillas
ya{ " copiar alrededor de llaves
vip " seleccionar párrafo interno
Marcas y Saltos
Marcas
| m{a} | Establecer marca a en posición del cursor |
| 'a | Saltar a la línea de la marca a |
| `a | Saltar a la posición exacta de la marca a |
| :marks | Listar todas las marcas |
Lista de Saltos
| Ctrl+o | Saltar a posición anterior |
| Ctrl+i | Saltar a siguiente posición |
| :jumps | Mostrar lista de saltos |
| '' | Saltar a la última posición de salto |