Neovim

Cuando hablamos de un gran editor de texto libre, siempre habrá alguien que levante la mano para hablar de Vim. Con casi 30 años de experiencias, y centenares de mejoras a sus espaldas, se ha convertido en clásico que nunca pasará de moda. Hablamos de un editor único. Compatible con el terminal, referente de nuevos editores, sinónimo de productividad con el teclado, increíble apoyo de la comunidad, navaja Suiza para programadores y estandarte del Opensource. Y a pesar de todo ello, los dioses han decidido dividirlo en dos. Vim, el clásico que todos conocemos. Y Neovim, una nueva esperanza.

El nacimiento de Neovim fue un parto natural. La comunidad enviaba sus mejoras al repositorio de Vim, y muchas de ellas eran descartadas. A no ser que arreglaran algún tipo de error que entonces eran rápidamente asimiladas. Pero un usuario lo cambió todo. Envió una mejora para dar una funcionalidad asíncrona que permitiría que Vim pudiera ejecutase de una manera que no congelara al propio editor. Pero sin explicación alguna, también fue rechazada. Ni corto ni perezoso decidió crear un fork. Una copia del código fuente. Donde continuaría su propia mejora. Poco a poco otros desarrolladores encontraron un lugar donde podían añadir sus ideas. Creando una continua y creciente flujo de ayudas que moldearon a Neovim tal como lo conocemos.

Vim existe y se ha mantenido tal como es por un hombre llamado Bram Moolenaar. El benevolente dictador que ha decidido que entraba y que se iba. El máximo responsable. Ello proboca que no pueda aceptar todo lo que se proponga para el editor. Si algo falla todos le señalarán, y con cierta rabia. Hay demasiados programadores que utilizan el editor a diario para que deje de funcionar aunque sea un solo día. Un efecto botella en toda regla. Pero los avances no esperan. Durante estos años han nacido editores de textos con avances que dejan en ridículo a muchas características de Vim. No todo puede llegar por medio de plugins. Es necesario un desarrollo paralelo y arriesgado. Al igual que en Debian existe una versión testing, donde se prueban todas las actualizaciones, y una estable donde las versiones están probandose durante mucho tiempo; en Vim era necesario de hace mucho un modelo similar. Ahora Vim buscar la estabilidad y Neovim las características avanzadas. Sería perfecto si existiera comunicación. La realidad es que Neovim se alimenta de los parches de Vim pero Vim no quiere ni oír hablar de Neovim. Por ello te digo, lector del artículo, que Neovim es el futuro y el presente.

Que tiene Neovim respecto a Vim

Neovim poseé un conjunto de nuevas características realizadas por la comunidad. En esencia son:

  • Neovim no esta realizado de 0, es un fork (copia de código) de Vim. Donde se ha limpiado el código eliminando el soporte a viejos sistemas operativos ahorrando la friolera de 300.000 líneas de código.

  • Nuevo sistema de plugins que permite multitud de nuevos lenguajes: clojure, lisp, go, haskell, lua, javascript, perl, python, ruby y rust. A nivel de architectura se ha madurado aislando el editor con ejecución asíncrona. Pero no ignora los plugins actuales. Neovim es compatible con todos los plugins de Vim, y siempre lo serán. Vim no puede ejecutar nada de Neovim.

  • Nuevas rutas de configuración. El archivo pasa de ~/.vimrc a ~/.config/nvim/init.vim, entre otros. Manteniendo una carpeta de usuario limpia.

  • Activación por defecto de 33 configuraciones. Modernizando el aspecto y funcionalidad del editor. Un conjunto de opciones que casi cualquier usuario de Vim necesita activar en su archivo de configuración. Disminuyendo la curva de dificultad para nuevos usuarios.

  • API para crear interfaces gráficas independientes del editor. Ahora puedes construir tu propio editor visual usando Neovim. Ha llegado la libertad.

  • Nuevas opciones para terminal que solo eran propias de las interfaces gráficas. Además se ha mejorado compatibilidad con multitud de terminales.

  • El editor es completamente asíncrono, mejorando sustancialmente el rendimiento.

  • Mayor apoyo de la comunidad. En GitHub Vim tiene 12.439 estrellas y Neovim 26.795 Neovim. Mientras que en Pull requests Vim tiene, mientres escribo estas líneas, 113 y Neovim 184.

Espero que este breve repaso sea suficiente para entender las diferencias entre ambos y ayude a comprender que lugar ocupa cada uno.

No olviden dejar un comentario.

Vim