Insertar, borrar, cambiar y reemplazar texto son las operaciones centrales de cualquier sesión de edición. Vim ofrece comandos precisos para cada variante, reduciendo la edición a combinaciones predecibles.


Abreviaciones de modos:
N = Normal | I = Insert | V = Visual | C = Command | VB = Visual Block

Entrar a Insert mode

ModoComandoAcción
NiInsert antes del cursor
NaInsert después del cursor
NIInsert al inicio de la línea (primer no-blanco)
NAInsert al final de la línea
NoNueva línea abajo y entra a Insert
NONueva línea arriba y entra a Insert
NsBorra el carácter bajo el cursor y entra a Insert
NSBorra la línea completa y entra a Insert
NCBorra desde el cursor hasta el final y entra a Insert

Borrar texto

ModoComandoAcción
NxBorra el carácter bajo el cursor
NXBorra el carácter anterior al cursor
NddBorra la línea completa
NDBorra desde el cursor hasta el final de la línea
N{n}ddBorra n líneas
NdwBorra hasta el inicio de la siguiente palabra
NdeBorra hasta el final de la palabra actual
NdibBorra el contenido dentro de ()
NdabBorra () incluyendo los paréntesis
I<Ctrl-h>Borra el carácter anterior (igual que Backspace)
I<Ctrl-w>Borra la palabra anterior
I<Ctrl-u>Borra desde el cursor hasta el inicio de la línea

Cambiar texto

ModoComandoAcción
Nr{c}Reemplaza el carácter bajo el cursor por c
NREntra a Replace mode (sobreescribe caracteres)
NccBorra la línea y entra a Insert
NcwCambia hasta el final de la palabra
Nci"Cambia el contenido dentro de comillas dobles
Nca"Cambia incluyendo las comillas dobles
Nci(Cambia el contenido dentro de paréntesis
NcitCambia el contenido dentro de una etiqueta HTML/XML
Nct{c}Cambia desde el cursor hasta antes del carácter c

Copiar y pegar

ModoComandoAcción
NyyCopia la línea completa
NYCopia la línea completa (igual que yy)
NywCopia hasta el inicio de la siguiente palabra
NyeCopia hasta el final de la palabra actual
Ny$Copia desde el cursor hasta el final de la línea
NpPega después del cursor
NPPega antes del cursor
NgpPega después y deja el cursor al final del texto pegado
N]pPega y ajusta la indentación al contexto actual

Deshacer y rehacer

ModoComandoAcción
NuDeshace el último cambio
NUDeshace todos los cambios en la línea actual
N<Ctrl-r>Rehace el cambio deshecho
N{n}uDeshace los últimos n cambios

Transformaciones

ModoComandoAcción
N~Alterna mayúscula/minúscula del carácter bajo el cursor
VuConvierte la selección a minúsculas
VUConvierte la selección a mayúsculas
V~Alterna mayúsculas/minúsculas en la selección
NguuConvierte la línea completa a minúsculas
NgUUConvierte la línea completa a mayúsculas
N>>Indenta la línea a la derecha
N<<Indenta la línea a la izquierda
V>Indenta la selección a la derecha
NJUne la línea actual con la siguiente
NgJUne líneas sin añadir espacio entre ellas

Tips

  • ci", ci(, cit son algunos de los comandos más productivos de Vim: cambian exactamente el contenido de un delimitador sin seleccionar manualmente.
  • ]p al pegar evita tener que reindivatar manualmente bloques de código copiados de otro contexto.
  • En Insert mode, <Ctrl-w> y <Ctrl-u> evitan salir a Normal solo para borrar; mantienen el flujo de escritura.
  • r{c} es más eficiente que entrar a Insert, corregir y salir cuando solo hay un carácter incorrecto.
  • J con un número prefijo une varias líneas de una vez: 3J une las 3 líneas siguientes a la actual.