Los registros son espacios de almacenamiento nombrados donde Vim guarda texto, macros y contenido del sistema. Entender qué registro usa cada operación evita pérdidas de texto inesperadas al pegar.
Abreviaciones de modos: N = Normal | I = Insert | V = Visual | C = Command | VB = Visual Block
Ver el contenido de los registros
Modo
Comando
Acción
C
:reg
Lista todos los registros con su contenido
C
:reg {a}
Muestra el contenido del registro {a}
C
:reg a b c
Muestra varios registros a la vez
N
"{a}
Prefijo para usar el registro {a} en el siguiente comando
Tipos de registros
Registro
Nombre
Contenido
"
Sin nombre
Último texto borrado o copiado (default)
0
Yank
Último texto copiado con y (nunca sobreescrito por d)
1–9
Numerados
Historial de los últimos 9 textos borrados
a–z
Nombrados
Uso manual; Vim nunca los sobreescribe
A–Z
Nombrados append
Añaden texto al registro minúscula correspondiente
+
Portapapeles
Clipboard del sistema (requiere +clipboard)
*
Selección
Selección primaria del sistema (X11/macOS)
_
Blackhole
Descarta el texto sin almacenarlo
/
Búsqueda
Último patrón de búsqueda
:
Comando
Último comando ejecutado
.
Inserción
Último texto insertado en Insert mode
%
Nombre archivo
Nombre del archivo del buffer actual
#
Alternativo
Nombre del buffer alternativo
-
Small delete
Último texto borrado menor a una línea
Copiar y pegar con registros
Modo
Comando
Acción
N
"{a}yy
Copia la línea al registro {a}
N
"{a}yw
Copia la palabra al registro {a}
N
"{a}p
Pega el contenido del registro {a} después del cursor
N
"{a}P
Pega el contenido del registro {a} antes del cursor
N
"0p
Pega el último yank (sin importar borrados posteriores)
N
"+p
Pega desde el clipboard del sistema
N
"+y
Copia al clipboard del sistema
N
"*y
Copia a la selección primaria del sistema
N
"_d
Borra sin almacenar en ningún registro
N
"_dd
Borra la línea sin sobreescribir el registro sin nombre
Registros en Insert y Command mode
Modo
Comando
Acción
I
<Ctrl-r>{a}
Inserta el contenido del registro {a}
I
<Ctrl-r>"
Inserta el contenido del registro sin nombre
I
<Ctrl-r>0
Inserta el último yank
I
<Ctrl-r>+
Inserta el clipboard del sistema
I
<Ctrl-r>/
Inserta el último patrón de búsqueda
I
<Ctrl-r>.
Inserta el último texto insertado
I
<Ctrl-r>%
Inserta el nombre del archivo actual
C
<Ctrl-r>{a}
Inserta el contenido del registro en la línea de comandos
C
<Ctrl-r><Ctrl-w>
Inserta la palabra bajo el cursor en la línea de comandos
Manipular registros nombrados
Modo
Comando
Acción
N
"{a}yy
Guarda la línea en el registro {a}
N
"{A}yy
Añade la línea al registro a (append)
C
:let @{a}='texto'
Asigna texto directamente a un registro
C
:let @{a}=@{a}.'más'
Concatena texto al registro existente
C
:let @{a}=@"
Copia el registro sin nombre al registro {a}
Tips
"0p en lugar de p es la solución al problema más común en Vim: pegar después de haber borrado algo, ya que "0 siempre contiene el último y y nunca es sobreescrito por d o x.
"_d (blackhole register) es esencial al reemplazar texto: borra sin contaminar el registro sin nombre, dejando intacto lo que querías pegar.
Los registros 1–9 forman un historial de borrados; "1p, "2p permiten recuperar texto borrado hace varios pasos sin depender de u.
<Ctrl-r><Ctrl-w> en Command mode inserta la palabra bajo el cursor directamente en la búsqueda o sustitución: elimina el tipeo manual en :s/\<palabra\>/nuevo/g.
Usar mayúsculas ("A, "B) para acumular texto de múltiples lugares en un solo registro y pegarlo junto de una vez es una técnica muy eficiente para consolidar fragmentos dispersos.