Cheatsheet de Vim - Edicion de texto eficiente

Intermedio | 15 min de lectura | 2025.12.12

Documentación Oficial

Que es Vim

Vim es un editor de texto avanzado utilizado como estandar en sistemas operativos tipo Unix. Tiene el concepto de “modos” que permite editar texto de manera eficiente usando solo el teclado. Es ampliamente utilizado en administracion de servidores y programacion.

Cambio de modos

Vim tiene varios modos, cada uno con un rol diferente.

TeclaModoDescripcion
iModo insercionInsertar caracteres antes del cursor
aModo insercionInsertar caracteres despues del cursor
IModo insercionMover al inicio de linea y comenzar a insertar
AModo insercionMover al final de linea y comenzar a insertar
oModo insercionInsertar nueva linea debajo y comenzar a escribir
OModo insercionInsertar nueva linea arriba y comenzar a escribir
EscModo normalVolver al modo normal desde otros modos
vModo visualSeleccion por caracteres
VModo visualSeleccion por lineas
Ctrl+vModo visualSeleccion rectangular (seleccion de bloque)
:Modo comandoIngresar comandos ex
" Como verificar el modo
" En la parte inferior izquierda se muestra -- INSERT -- o -- VISUAL --
" En modo normal no se muestra nada

Movimiento del cursor

El movimiento eficiente afecta enormemente la productividad en Vim.

Movimiento basico

TeclaDescripcion
hMover 1 caracter a la izquierda
jMover 1 linea hacia abajo
kMover 1 linea hacia arriba
lMover 1 caracter a la derecha

Movimiento por palabras

TeclaDescripcion
wIr al inicio de la siguiente palabra (word)
WIr a la siguiente palabra separada por espacios
bIr al inicio de la palabra anterior (back)
BIr a la palabra anterior separada por espacios
eIr al final de la palabra (end)
EIr al final de la palabra separada por espacios

Movimiento dentro de la linea

TeclaDescripcion
0Ir al inicio de la linea (columna 0)
^Ir al primer caracter no vacio de la linea
$Ir al final de la linea
f{char}Saltar al siguiente {char} en la linea
F{char}Saltar al {char} anterior en la linea
t{char}Ir justo antes del siguiente {char}
;Repetir busqueda de f/F/t

Movimiento dentro del archivo

TeclaDescripcion
ggIr al inicio del archivo
GIr al final del archivo
{n}GSaltar a la linea n
:{n}Saltar a la linea n
Ctrl+fDesplazar una pagina hacia abajo
Ctrl+bDesplazar una pagina hacia arriba
Ctrl+dDesplazar media pagina hacia abajo
Ctrl+uDesplazar media pagina hacia arriba
%Saltar al parentesis correspondiente
" Ejemplo: Saltar a la linea 100
100G
" o
:100

Operaciones de edicion

Eliminar

TeclaDescripcion
xEliminar 1 caracter en la posicion del cursor
XEliminar 1 caracter antes del cursor
ddEliminar 1 linea (cortar)
DEliminar desde el cursor hasta el final de la linea
dwEliminar palabra
diwEliminar palabra completa (inner word)
di"Eliminar contenido dentro de comillas dobles
di(Eliminar contenido dentro de parentesis
d$Eliminar desde el cursor hasta el final de la linea

Copiar y pegar

TeclaDescripcion
yyCopiar 1 linea (yank)
ywCopiar palabra
y$Copiar desde el cursor hasta el final de la linea
pPegar despues del cursor
PPegar antes del cursor
"0pPegar el ultimo texto copiado
"+yCopiar al portapapeles del sistema
"+pPegar desde el portapapeles del sistema

Cambiar (eliminar y entrar en modo insercion)

TeclaDescripcion
cwCambiar palabra
ciwCambiar palabra completa
ci"Cambiar contenido dentro de comillas dobles
ccCambiar linea completa
CCambiar desde el cursor hasta el final de la linea
sEliminar 1 caracter y entrar en modo insercion
SEliminar linea y entrar en modo insercion

Deshacer y rehacer

TeclaDescripcion
uDeshacer (Undo)
Ctrl+rRehacer (Redo)
.Repetir la ultima operacion
" Ejemplo: Deshacer 3 veces
3u

" Ejemplo: Repetir la ultima operacion 5 veces
5.

Busqueda y reemplazo

Busqueda

TeclaDescripcion
/{pattern}Busqueda hacia adelante
?{pattern}Busqueda hacia atras
nIr al siguiente resultado de busqueda
NIr al resultado de busqueda anterior
*Buscar hacia adelante la palabra en la posicion del cursor
#Buscar hacia atras la palabra en la posicion del cursor
" Ejemplo: Buscar 'function'
/function

" Ejemplo: Buscar ignorando mayusculas y minusculas
/pattern\c

" Ejemplo: Buscar con expresion regular (limite de palabra)
/\<word\>

Reemplazo

" Reemplazar la primera coincidencia en la linea actual
:s/old/new/

" Reemplazar todas las coincidencias en la linea actual
:s/old/new/g

" Reemplazar en todo el archivo
:%s/old/new/g

" Reemplazar con confirmacion
:%s/old/new/gc

" Reemplazar ignorando mayusculas y minusculas
:%s/old/new/gi

" Reemplazar en un rango especifico (linea 10 a 20)
:10,20s/old/new/g

" Reemplazar en seleccion (despues de seleccionar en modo visual)
:'<,'>s/old/new/g

Operaciones de archivo

ComandoDescripcion
:wGuardar
:w {filename}Guardar con nombre
:qSalir
:q!Salir forzadamente sin guardar
:wqGuardar y salir
ZZGuardar y salir (igual que :wq)
ZQSalir sin guardar (igual que :q!)
:e {filename}Abrir archivo
:r {filename}Insertar contenido de archivo
:!{command}Ejecutar comando externo
" Ejemplo: Hacer backup del archivo actual
:w %.bak

" Ejemplo: Insertar resultado de comando de shell
:r !date

Operaciones de ventana

ComandoDescripcion
:splitDivision horizontal
:vsplitDivision vertical
Ctrl+w hIr a la ventana izquierda
Ctrl+w jIr a la ventana inferior
Ctrl+w kIr a la ventana superior
Ctrl+w lIr a la ventana derecha
Ctrl+w =Igualar tamano de ventanas
Ctrl+w qCerrar ventana

Macros

Permite automatizar tareas repetitivas.

" Iniciar grabacion de macro (tecla q + nombre de registro)
qa

" Ejecutar una serie de operaciones...

" Finalizar grabacion
q

" Reproducir macro (tecla @ + nombre de registro)
@a

" Ejecutar macro 5 veces
5@a

" Volver a ejecutar la ultima macro
@@

Configuraciones utiles (.vimrc)

" Mostrar numeros de linea
set number

" Mostrar numeros de linea relativos
set relativenumber

" Resaltado de sintaxis
syntax on

" Configuracion de indentacion
set tabstop=4
set shiftwidth=4
set expandtab

" Configuracion de busqueda
set hlsearch      " Resaltar resultados de busqueda
set incsearch     " Busqueda incremental
set ignorecase    " Ignorar mayusculas y minusculas
set smartcase     " Distinguir si contiene mayusculas

" Integracion con portapapeles
set clipboard=unnamedplus

Plugins populares

PluginDescripcion
vim-plugGestor de plugins
NERDTreeExplorador de archivos
fzf.vimBuscador difuso
vim-fugitiveIntegracion con Git
coc.nvimLSP/Autocompletado

Enlaces de referencia

← Volver a la lista