Hace años que uso Vim, y siempre he tenido claro que en algún momento tendría que migrar a NeoVim. Pues bien: ese momento ha llegado.
La razón es Lean. Para los que no lo conozcáis, Lean es un lenguaje de programación que sirve para formalizar teoremas matemáticos. Lo que esto significa es poco relevante ahora mismo, la cosa es que estoy aprendiendo Lean, y para usarlo necesito un entorno de desarrollo muy concreto. Desde el equipo de Lean recomiendan usar la extensión que tienen en VSCode, que es el único sistema con soporte oficial. Pero obviamente para mí esto no es una opción. Así que miré si había plugins de Vim que me permitieran hacer lo mismo. Y sí, los hay, pero solo en NeoVim. Parece que las funcionalidades que requiere el desarrollo en Lean solo es posible implementarlas en NeoVim.
Pregunta: ¿Alguno de vosotros ha hecho la mudanza de Vim a NeoVim y tiene algún consejo que darme? Y, más en general, para todos los que usáis NeoVim, ¿alguna recomendación más allá de lo estándar?
La verdad es que, por un lado, me da muchísima pereza hacer el cambio (especialmente por tener que portear los snippets de LaTeX en caso de que cambie de motor de snippets: tengo muchos y va a ser un coñazo) y por otra estoy emocionado con todas las cosas nuevas que ofrece NeoVim (telescope, filetree, UIs, LSP muy avanzado, …). Al menos me servirá para hacerle el mantenimiento a mi configuración y renovarla, que hará más de un año que no la toco. Espero no volverme adicto y terminar dejando cosas de lado (ejem, hacer vídeos) por configurar el dichoso editor (lo sé porque le pasó a un amigo…). En fin, deseadme suerte en esta empresa.
Te recomiendo que uses lazy.nvim, ya que packer.nvim, aunque es el más utilizado, está deprecado desde agosto del año pasado. Es sencillísimo de utilizar y configurar los plugins es trivial. Obviamente ayuda saber Lua, pero tampoco es obligatorio.
Te dejo mi configuración, tiene solo lo esencial. Treesitter, autocompletado y snippets para los lenguajes que uso, un colorscheme y poco más, lo importante es la estructura de los directorios, cada plugin y cada config tiene su lugar.
En algún momento en tu viaje por neovim te vaz a encontrar con gente que no para de recomendarte distribuciones de neovim, en mi caso quiero recomendarte un proyecto llamado kickstart. Es llevado por una de las personas de Neovim.
Esta pieza no es una distribución per se, es una base desde la cual puedas construir tu propia distribución, sabes configuraciones que se ajustan a ti y que comprendes, porque ese es el problema que luego hay con las disteibuciones de neovim, estás utilizando las configuraciones de alguien mas y puede que no acaben de adaptarse a ti.
Esta base cuenta con el gestor lazy.nvim, por lo que no creo que tengas problemas para poner los complementos que necesites.
Claro esto depende de la persona, si no eres de personalizar todo, usa solo lazy.nvim
Mi razón por la que pase, fue porque al programar en lenguajes como Python, C++ (muchos lenguajes de programación que no dependen de un IDE), escribir en HTML, CSS lenguajes de marcado en general , NeoVim ya aplica el coloreo de la sintaxis sin tener que configurar nada e incluso tiene amplia compatibilidad de temas con Powerlevel10k. De ahí en más, no he necesitado nada más.
Simplemente lo instalo, añado el alias vim=‘nvim’ y listo, el uso base es idéntico.
Yo uso lazy.vim con nvchad para personalizarlo, también mason para formato, tengo autocompletado, telescope, y también nvim-orgmode que realmente es muy útil para organizarte, te recomiendo que lo veas.
Tu configuración de Vim funcionará en Neovim. Poco a poco podrías ir migrando el la configuración a Lua, en general, la configuración en Lua es más rápida en desarrollo como en ejecución que los vimscript. En mi caso, cuando cambie de Vim a Neovim, usaba packer, luego use Lazy y ahora uso NixNeovim.
Yo uso mucho LaTeX dentro de Markdown y uso un plugin, render-markdown.nvim, que renderiza el Markdown para poder leer de una forma más bonita el Markdown. Tambien renderiza el código LaTeX.
El tema de los snippets, existe LuaSnippets, que usa el formato de snippets de VSCode haciendo que sea más fácil integrar nuevos snippets.
No sé cómo tendrás tu configuración, pero creo que no hay razones para no migrar a NeoVim, ya que es 100% compatible con la configuración de Vim.
(Hay plugins para integrar plugins de Neovim en Lua en vim, pero nunca los use y no se que tan dificil sera)
Yo cuando migre a NeoVim desde Vim primero empeze con LazyVim (una “distro” de neovim") y una vez que entendi mas o menos todas las configuraciones borré la .config/nvim y empezé de cero (me fijé en los dotfiles de este video para tener una idea, ya que no soy experto en lua, aunque la verdad no le hice ni caso al video)