wandres.dev
MAESTRO · Dominio profundo del editor

Registros y marcas a nivel experto

Los registros son un portapapeles con decenas de ranuras; las marcas y las listas de saltos, tu teletransporte. Domínalos y tu memoria de trabajo se multiplica.

⏱ 14 min

En el Nivel 3 viste registros y marcas por encima. Aquí los exprimimos: registros especiales, el de expresión, marcas globales que cruzan archivos, y las listas de saltos y cambios que te llevan exactamente a donde estuviste.

🎯 Al terminar esta lección sabrás
  • Dominar los registros especiales y el de expresión.
  • Añadir a un registro y usar el “black hole”.
  • Marcas locales, globales y automáticas.
  • Navegar con la jumplist y la changelist.

Registros: mucho más que copiar y pegar

Cada registro es una ranura de portapapeles. Antepón "x a un yank, delete o paste para usar el registro x.

Registro Contenido
"a"z los que asignas tú ("ayy)
"A"Z añaden al registro (no lo pisan)
"0 el último yank (los delete no lo tocan)
"1"9 anillo de borrados recientes
"_ el “black hole”: borra sin guardar nada
"+ / "* portapapeles del sistema
"% / "# archivo actual / alterno
": "/ ". último comando / búsqueda / texto insertado
"= registro de expresión (evalúa código)
El "0 y el "_ te salvan a diario

Dos trucos que usan los expertos sin pensar: (1) tras borrar algo, tu yank sigue intacto en "0 — pega con "0p aunque hayas borrado diez cosas después. (2) Para borrar sin ensuciar tu portapapeles, usa el black hole: "_dd borra la línea pero conserva lo que tenías copiado. El clásico “borro esto para pegar aquí” deja de fallar.

Añadir a un registro

Las MAYÚSCULAS acumulan. Recolecta líneas de sitios distintos en un solo registro:

"ayy   → copia la línea al registro a
… te mueves a otra línea …
"Ayy   → AÑADE esta línea al registro a (no la pisa)
"ap    → pega ambas

El registro de expresión

"= evalúa una expresión y pega el resultado. En modo Insertar, Ctrl-r= abre el prompt:

En Insertar:  <C-r>= 24 * 60 <CR>   → inserta 1440

Y para insertar cualquier registro mientras escribes, Ctrl-r + la letra: Ctrl-ra pega el registro a sin salir de Insertar.

Mira todo con :registers.

Marcas: teletransporte con precisión

m{letra} pone una marca; el backtick + la letra salta a la posición exacta (fila y columna). El apóstrofo + la letra salta al inicio de esa línea.

Marca Qué es
az locales al archivo (las pones tú)
AZ globales: cruzan archivos (salta a otro fichero)
`. posición del último cambio
`^ posición de la última inserción
`" posición al cerrar el archivo la última vez
`[ / `] inicio / fin del último texto copiado o pegado
`< / `> inicio / fin de la última selección visual
💡
Marcas globales para tu 'espacio de trabajo'

Pon una marca global en cada archivo caliente de tu tarea: mR en el router, mM en el modelo, mT en los tests. Ahora, desde cualquier sitio, backtick + R te teletransporta al router aunque esté en otro buffer. Es como tener anclas nombradas por todo el proyecto.

Jumplist y changelist

Neovim recuerda por dónde has saltado y qué has cambiado. Dos listas que casi nadie aprovecha:

↩️

Jumplist

Ctrl-o retrocede al salto anterior; Ctrl-i avanza. Un salto es cualquier movimiento “grande” (búsqueda, G, gd…). Míralo con :jumps.

✏️

Changelist

g; va al cambio anterior; g, al siguiente. Te lleva por donde has editado, no por donde has saltado. Míralo con :changes.

💡
Ctrl-o es tu 'atrás' universal

Saltaste a una definición con gd, luego a otra referencia, luego buscaste algo… y quieres volver. Ctrl-o te devuelve paso a paso por toda tu ruta, aunque cruce archivos. Es el botón “atrás” del navegador, pero para tu código. Combinado con g; (último sitio que editaste) casi nunca necesitas recordar dónde estabas.

⛳ DRILL Recolecta tres líneas dispersas de un archivo en un solo pegado.
Ver solución
"ayy · "Ayy · "Ayy · "ap

"ayy copia la primera al registro a. Te mueves y "Ayy (mayúscula) añade la segunda; otra vez para la tercera. Vas a donde quieras pegarlas y "ap las suelta las tres juntas.

⚔️ Multiplica tu memoria de trabajo
  1. Borra algo, luego borra más, y recupera lo primero con "0p vs "1p.
  2. Usa "_dd para borrar sin perder tu portapapeles.
  3. Pon marcas globales en dos archivos y salta entre ellos con backtick + letra.
  4. Navega tu historial con Ctrl-o / Ctrl-i y con g; / g,.