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.
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.
- 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:
Con copia de seguridad (lección 5.2). Arranca y confirma que funciona tal cual.
Lleva tus ajustes de options.lua y keymaps.lua a los archivos equivalentes de LazyVim. Recuerda: lo tuyo se fusiona y prevalece.
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.
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.
Abre :Lazy y anota qué plugins usas a diario. La mayoría de las 40+ specs de una distro no las tocas nunca.
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.
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.
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.
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.
- Con
NVIM_APPNAME, monta una segunda config para experimentar sin tocar la principal. - Si usas LazyVim, sustituye una config de lenguaje a mano por su Extra.
- Versiona tu
lazy-lock.jsonen Git. - Haz
:Lazy update, y practica un:Lazy restorepara ver la red de seguridad.