wandres.dev
ARQUITECTO · Distribuciones y LazyVim

Migrar con cabeza y el lockfile

De tu config a LazyVim, o de LazyVim a tu propia config. Cómo migrar sin perder el control, y por qué el lazy-lock.json es tu seguro de reproducibilidad.

⏱ 12 min

Un Arquitecto se mueve entre config a mano y distro sin drama, porque entiende que ambas son lo mismo por debajo: specs de lazy.nvim. Migrar en cualquier dirección es cuestión de método, no de suerte.

🎯 Al terminar esta lección sabrás
  • Migrar de tu config a mano hacia LazyVim.
  • Migrar de LazyVim de vuelta a una config propia.
  • Entender y versionar el lazy-lock.json.
  • Mantener el control tras cualquier migración.

De tu config a LazyVim

No copies y pegues a lo bruto. Migra por capas:

1
Instala LazyVim limpio

Con copia de seguridad (lección 5.2). Arranca y confirma que funciona tal cual.

2
Porta opciones y keymaps

Lleva tus ajustes de options.lua y keymaps.lua a los archivos equivalentes de LazyVim. Recuerda: lo tuyo se fusiona y prevalece.

3
Sustituye tus configs de lenguaje por Extras

Donde tenías lua/plugins/lang-rust.lua a mano, activa lang.rust en :LazyExtras y borra tu archivo. Deja que la distro mantenga eso.

4
Trae solo tus plugins únicos

Los plugins que LazyVim no incluye, cópialos a lua/plugins/. Los que sí incluye, no los dupliques: override sus opts si quieres cambiarlos.

De LazyVim a config propia

También es válido “graduarse” de la distro cuando quieras control total. La clave: LazyVim es lazy.nvim por debajo, así que puedes extraer justo lo que uses.

1
Inventaría lo que de verdad usas

Abre :Lazy y anota qué plugins usas a diario. La mayoría de las 40+ specs de una distro no las tocas nunca.

2
Recrea tu esqueleto

Parte de la config de los Niveles 1–4 (o de kickstart) y añade, uno a uno, los plugins de tu inventario con sus opts. Puedes copiar los defaults de LazyVim desde su documentación o su código.

3
Prueba en paralelo

Usa NVIM_APPNAME para probar tu config nueva sin borrar LazyVim: NVIM_APPNAME=nvim-mia nvim. Dos configs conviviendo hasta que la tuya esté lista.

💡
Prueba cualquier config sin miedo con NVIM_APPNAME

NVIM_APPNAME=lo-que-sea nvim hace que Neovim use ~/.config/lo-que-sea en vez de ~/.config/nvim. Es la forma de tener LazyVim y tu config a mano (o dos distros) instaladas a la vez y alternar entre ellas con una variable de entorno. Ideal para migraciones sin riesgo.

El lazy-lock.json: tu seguro

Tanto tu config como LazyVim generan un lazy-lock.json: la lista de versiones exactas (commits) de cada plugin instalado.

🔒

Reproducible

Con el lockfile, tu setup se instala idéntico en otra máquina. Sin él, cada máquina tendría versiones distintas.

📌

Estable

:Lazy update actualiza y reescribe el lock. Si algo se rompe, :Lazy restore vuelve a las versiones del lockfile.

🌿

Versiónalo en Git

Guarda lazy-lock.json en tu repo de config. Es la foto exacta de un setup que funciona.

La disciplina del que no rompe su editor

Regla de oro del mantenimiento: versiona el lockfile y actualiza a propósito, no por inercia. Haz :Lazy update cuando tengas tiempo de revisar, no justo antes de una entrega. Si algo va mal tras actualizar, :Lazy restore te devuelve al estado del lockfile en segundos. Con esta disciplina, tu editor nunca te deja tirado en el peor momento — la diferencia entre un setup de juguete y una herramienta de trabajo.

⚔️ Muévete sin miedo
  1. Con NVIM_APPNAME, monta una segunda config para experimentar sin tocar la principal.
  2. Si usas LazyVim, sustituye una config de lenguaje a mano por su Extra.
  3. Versiona tu lazy-lock.json en Git.
  4. Haz :Lazy update, y practica un :Lazy restore para ver la red de seguridad.