Vim vs Neovim: ¿Cuál es mejor y cuál deberías usar?

¿Qué es Neovim y cómo se diferencia de Vim?

Ya sea que estés trabajando en código, escribiendo scripts o simplemente gestionando archivos de configuración, tu elección de editor puede impactar significativamente tanto tu productividad como tu disfrute. La belleza de Linux es que hay múltiples opciones de editores de texto disponibles para que elijas, incluyendo Vim y su versión mejorada, Neovim. El debate entre Vim y Neovim continúa evolucionando entre los usuarios de Linux, con opiniones fuertes en ambos lados. En esta guía, exploraremos Vim, Neovim, sus capacidades y las principales diferencias entre ellos.

¿Qué es Vim?

Vim, o Vi IMproved, es una versión más avanzada y rica en características del antiguo editor de texto llamado vi, que fue una herramienta fundamental en los sistemas operativos UNIX. Funciona en múltiples plataformas, incluyendo sistemas Unix, Windows, macOS y más. Si estás usando macOS o cualquier distribución de Linux, hay una muy buena posibilidad de que Vim ya esté instalado y listo para usar en tu sistema.

Si no está instalado, puedes instalarlo fácilmente usando tu gestor de paquetes predeterminado. Por ejemplo, en Ubuntu, usarías:

sudo apt install vim

Después de la instalación, solo escribe vim en la terminal para lanzarlo.

Iniciando Vim desde la terminal de Ubuntu.

Vim ofrece un entorno de edición modal que te permite navegar a través de archivos, hacer ediciones, guardar tu trabajo y realizar una multitud de otras acciones, todo sin necesidad de usar el ratón. Además, puedes ajustar prácticamente cada aspecto de su comportamiento y apariencia para adaptarlo perfectamente a tu flujo de trabajo a través de un archivo de configuración. El único problema es que puede ser difícil de usar para un nuevo usuario, y algunos incluso tienen problemas para salir de Vim.

¿Qué es Neovim?

Neovim se basa en el legado de vi y Vim. Se originó como un fork de Vim en 2014, con el objetivo de abordar las limitaciones percibidas en la arquitectura de Vim mientras se preserva la filosofía de edición modal que muchos usuarios aman. Neovim sirve como un reemplazo directo para Vim, lo que significa que puedes seguir usando tu archivo de configuración “.vimrc” existente.

Para el uso básico, Neovim se siente casi idéntico a Vim. Lo que distingue a Neovim es su soporte para características modernas como el procesamiento asíncrono, que permite que las operaciones se ejecuten en segundo plano sin congelar la interfaz. Otras características incluyen emulación de terminal incorporada, lo que permite a los usuarios ejecutar comandos de shell sin salir del editor.

A diferencia de Vim, Neovim no viene preinstalado. Sin embargo, instalar Neovim es simple. Por ejemplo, en Ubuntu, ejecuta:

sudo apt install neovim

Instalación de Neovim en Ubuntu

Después de la instalación, inicia Neovim con el comando nvim.

Iniciando Neovim desde la terminal de Ubuntu

Neovim incluye un tutorial incorporado para ayudarte a comenzar. Lanza Neovim y escribe :Tutor para aprender los fundamentos (incluyendo cómo salir del programa).

Principales diferencias entre Vim y Neovim

Aunque Vim y Neovim funcionan de manera similar, Neovim ofrece una experiencia más refinada en general.

Una de las principales mejoras en Neovim radica en su arquitectura. Está diseñado para ser más mantenible y modular, lo que reduce la barrera para las contribuciones y permite que evolucione más rápidamente. Este cambio arquitectónico también conduce a un mejor rendimiento y confiabilidad. Mientras que Vim sigue siendo un editor robusto, el diseño de Neovim lo hace más a prueba de futuro y amigable para los desarrolladores.

Opción de guía de Neovim

Además, gracias a la arquitectura asíncrona de Neovim, las tareas pueden ejecutarse en segundo plano sin bloquear el editor. Puedes obtener sugerencias de autocompletado, ejecutar linters o cargar proyectos grandes, y Neovim sigue funcionando sin problemas.

Neovim no solo admite plugins de Vim, sino que los mejora. El sistema de plugins de Vim depende en gran medida de Vimscript, que puede ser restrictivo y más difícil de trabajar. Neovim expande esto al admitir Lua, un lenguaje de scripting moderno y ligero. Herramientas como telescope.nvim y nvim-treesitter ofrecen una búsqueda y resaltado de sintaxis significativamente mejores que lo que proporciona Vim.

Neovim también maneja los archivos de configuración de una manera más estandarizada. Mientras que Vim almacena configuraciones y plugins en el directorio codificado “~/.vim”, Neovim sigue la Especificación del Directorio Base XDG, colocando archivos en “~/.config/nvim”. Esta estructura mantiene la organización de archivos más limpia y flexible. A pesar de esta diferencia, Neovim sigue siendo compatible con los archivos de configuración de Vim.

Al igual que Vim, Neovim ofrece una interfaz de usuario basada en terminal, pero añade la conveniencia de un emulador de terminal incorporado. Más allá de la terminal, Neovim admite interfaces gráficas modernas como Oni, Goneovim y VimR.

Pros y contras de Vim y Neovim

Discutamos los pros y contras de cada editor para que puedas decidir mejor cuál se alinea con tus necesidades.

Pros de Vim:

  • Preinstalado en la gran mayoría de los sistemas basados en Linux
  • Estabilidad excepcional con una base de código madura y bien probada
  • Amplia adopción y soporte de la comunidad
  • Funciona bien en sistemas con recursos o ancho de banda limitados

Contras de Vim:

  • La curva de aprendizaje inicial puede ser bastante pronunciada
  • Gestionar plugins puede ser más complejo
  • Integrar ciertas características modernas es más desafiante
  • Carece de soporte incorporado para el Protocolo de Servidor de Lenguaje (LSP)

Pros de Neovim:

  • Ofrece un rendimiento mejorado y una experiencia de usuario más receptiva
  • Soporte incorporado para el Protocolo de Servidor de Lenguaje
  • La programación en Lua proporciona una forma más eficiente de desarrollar y configurar plugins
  • La gestión de plugins es generalmente más fácil y fluida
  • Viene con configuraciones predeterminadas más sensatas y amigables para el usuario
  • Incluye un emulador de terminal incorporado

Contras de Neovim:

  • No está instalado por defecto en la mayoría de los sistemas
  • Algunos plugins de Vim que dependen de características específicas de Vim pueden requerir ajustes
  • Plugins de Vim más antiguos pueden no funcionar perfectamente sin modificaciones
  • Usa ligeramente más recursos que Vim
  • Cambiar a Lua para la configuración requiere aprender un nuevo lenguaje

¿Cuál deberías usar: Neovim vs. Vim?

Elegir entre Vim y Neovim depende de tu flujo de trabajo, nivel de comodidad y lo que necesitas de un editor. Opta por Vim si a menudo trabajas en diferentes sistemas donde no puedes instalar nuevo software; está disponible casi en todas partes. También es genial si deseas un editor estable y ligero que rara vez cambia y funciona bien en entornos de bajos recursos. Además, mantente con él si ya has pasado años afinando tu configuración de Vim.

Por otro lado, elige Neovim si deseas una experiencia de edición moderna. Tiene mejores configuraciones predeterminadas, soporte activo de la comunidad y características como LSP incorporado y scripting en Lua. Es ideal si eres un desarrollador que quiere características similares a un IDE sin la sobrecarga. Y si eres nuevo en la edición modal, las configuraciones predeterminadas más inteligentes de Neovim facilitan la curva de aprendizaje.

Reflexiones finales

Si bien tanto Vim como Neovim cumplen el mismo propósito central, Neovim ofrece una experiencia de edición más moderna y capaz. Se basa en la fundación de Vim con un rendimiento mejorado, un desarrollo de plugins más fácil, integración de LSP y un mejor soporte de UI. Estas mejoras hacen de Neovim una alternativa sólida para los desarrolladores que buscan un editor más potente y extensible.

Muchos desarrolladores usan ambos: Neovim para trabajo de desarrollo local y Vim para ediciones rápidas en servidores remotos. Personalmente, he probado ambos y me he decidido por Vim debido a su confiabilidad y disponibilidad en múltiples distribuciones de Linux.

En última instancia, comparten la mayoría de las mismas habilidades y combinaciones de teclas, por lo que aprender uno casi te hace fluido en el otro. Estos no son solo dos editores; lo que hace especial a Linux es la amplia variedad de opciones de editores disponibles para adaptarse a las preferencias de cada usuario.