654 - Helix, una alternativa a Neovim

654 - Helix, una alternativa a Neovim

He estado probando el editor #helix como una alternativa a #neovim y me ha gustado mucho, pero finalmente me quedo con #neovim por su flexibilidad

1:25
-3:15

Como ya te adelanté hace un par de episodios, tenía intención de hablarte de Helix. Sin embargo, no he tenido la oportunidad de hacerlo hasta el momento. Se me olvidó la tablet, y no pude utilizarlo para preparar el guión del podcast y contarte mi propia experiencia. Un desastre. Actualmente, ya lo tengo instalado tanto en ArchLinux como en Termux, y te puedo asegurar que en ambos va como una auténtica seda. Lo cual era algo que te podías imaginar porque es un auténtico mechero en lo que a consumo de recursos se refiere. Así, en este episodio te voy a hablar Helix, mi experiencia y si va a sustituir a Neovim en mis dispositivos.

Helix, una alternativa a Neovim

¿Que es Helix?

Si no conoces Helix indicarte que es un editor inspirado en Neovim y Kakoune y que está implementado en Rust. Sobre este segundo editor no te puedo decir mucho, porque no lo conocía hasta que empecé a estudiar Helix. De echo el modelo de edición de Helix está fuertemente basado sobre Kakonue. Lo cierto, es que tanto los conceptos, como muchos de los movimientos y acciones que aprendí con Neovim, los estoy utilizando de igual forma con Helix, aunque algunos de los conceptos varían suficiente como para que me arme un lío.

Características de Helix

Una de las cuestiones que mas me ha llamado la atención es que Helix actualmente no soporta complementos o plugins, algo que en la mayoría de editores modernos se añade desde el principio. Sin embargo, esto no quita a que muchas de las características que tienes que añadir en Neovim mediante complementos, vienen ya de caja en Helix. Esto es una tremenda ventaja en tanto en cuanto, prácticamente es instalar Helix y te puedes poner a programar. Y digo prácticamente, porque siempre necesitas configurar y personalizar el editor.

Dicho esto, algunas de las características que me han llamado la atención son,

  • Selección Múltiple. Al igual que en Neovim, puedes seleccionar múltiples líneas o palabras y editarlas simultáneamente. Algo que me parece imprescindible. En este caso te tengo que decir que me resulta mas intuitivo como está resuelto en Helix
  • Integración con Tree-sitter.Tree-sitter produce árboles sintácticos robustos y tolerantes a errores, lo que mejora el resaltado de sintaxis, el cálculo de indentaciones y la navegación por el código.
  • Manipulación potente de código. Navega y selecciona funciones, clases, comentarios, etc., y manipula nodos del árbol sintáctico en lugar de texto plano.
  • Soporte para servidores de lenguajes. Funciones específicas de cada lenguaje como autocompletado, ir a la definición, documentación, diagnósticos y otras características de IDE, todo sin configuración adicional.
  • Construido en Rust, para el terminal. Sin Electron, sin VimScript, sin JavaScript. Úsalo a través de SSH, tmux o directamente en un terminal. Tu batería del portátil te lo agradecerá.
  • Características modernas integradas. Buscador difuso para saltar a archivos y símbolos, búsqueda en todo el proyecto, hermosos temas, cierre automático de paréntesis, integración de «surround» y más.

Instalación de Helix

Para instalar Helix en ArchLinux, puedes hacerlo mediante el AUR. Para ello, puedes utilizar tu AUR Helper favorito, o bien clonar el repositorio y compilarlo. En mi caso, he utilizado yay y la instalación ha sido muy sencilla. En Termux, la instalación es igualmente sencilla, aunque tienes que tener en cuenta que necesitas tener instalado Rust y Cargo.

El tutorial de Helix

Si quieres aprender a utilizar Helix, te recomiendo que sigas el tutorial que tienes en la página oficial de Helix. Es un tutorial muy completo y que te va a permitir conocer las características mas importantes de Helix. Una vez instalado Helix, simplemente tienes que ejecutar lo siguiente en un terminal,

helix --tutor

Helix vs Neovim

Filosofía y Diseño

Helix
  • Ventajas:
    • Curva de aprendizaje más suave: Viene con configuraciones predeterminadas bien diseñadas. No necesitas pasar tiempo configurándolo para que sea productivo.
    • Selecciones múltiples y edición concurrente: Inspirado en Kakoune, facilita tareas como refactorizaciones rápidas.
    • Integración moderna de LSP: No requiere configuraciones manuales para habilitar el autocompletado o diagnóstico, todo está integrado.
    • Eficiencia de recursos: No utiliza plugins pesados como Electron; es rápido y ligero.
  • Inconvenientes:
    • Menos flexible: Tiene menos opciones de personalización que Neovim, lo que puede ser limitante para usuarios avanzados.
    • Comunidad más pequeña: Es un proyecto más nuevo, por lo que su ecosistema no está tan desarrollado.
Neovim
  • Ventajas:
    • Altamente configurable: Puedes adaptarlo a tus necesidades específicas con Lua, incluyendo soporte para plugins avanzados como telescope.nvim y treesitter.
    • Gran ecosistema de plugins: Cualquier funcionalidad adicional tiene probablemente un plugin disponible en su vasto ecosistema.
    • Herencia de Vim: Se beneficia de años de comunidad activa y usuarios que migraron desde Vim.
  • Inconvenientes:
    • Curva de aprendizaje más empinada: Requiere un conocimiento más profundo para configurarlo y adaptarlo a tus necesidades.
    • Requiere configuración inicial: A menos que uses una «distro» de Neovim como LunarVim, puedes pasar mucho tiempo afinando tu entorno.

Uso en el Terminal

  • Helix: Es completamente terminal-first, perfecto para usar sobre SSH o tmux. Su rendimiento es excelente, incluso en máquinas con recursos limitados.
  • Neovim: También está optimizado para terminal, pero tiene soporte para interfaces gráficas como Neovide o plugins basados en UI para quienes prefieran más visualización.

Edición y Navegación

  • Helix:
    • La edición y selección basada en nodos de árbol sintáctico es increíblemente poderosa, lo que permite manipular estructuras de código sin preocuparse por los detalles de la sintaxis.
    • Ofrece soporte integrado para Tree-sitter y otros mecanismos avanzados sin configuración.
  • Neovim:
    • Requiere instalar y configurar nvim-treesitter para lograr una experiencia similar.
    • Los usuarios avanzados pueden implementar flujos de trabajo muy personalizados con su configuración y ecosistema.

Lenguajes de Programación

  • Helix: LSP integrado por defecto. Se detectan automáticamente servidores de lenguaje disponibles, simplificando mucho la configuración.
  • Neovim: Necesitas configurar manualmente el soporte para servidores LSP a través de nvim-lspconfig o herramientas como mason.nvim. Sin embargo, ofrece un mayor control y flexibilidad.

Comunidad y Ecosistema

  • Helix:
    • Comunidad en crecimiento, pero más pequeña y con menos documentación o tutoriales.
    • Menos plugins, ya que el enfoque del editor es ser funcional sin demasiada extensibilidad.
  • Neovim:
    • Gran comunidad y soporte; abundan los recursos en línea.
    • El ecosistema de plugins de Vim/Neovim está muy desarrollado y sigue creciendo.

Resumiendo

AspectoHelixNeovim
Curva de aprendizajeMás fácil gracias a decisiones opinadas.Más difícil, pero flexible para usuarios avanzados.
ConfiguraciónTodo integrado; funciona bien desde el inicio.Necesita personalización, pero ofrece total control.
PluginsEcosistema limitado pero funcional.Enorme variedad de plugins disponibles.
RecursosRápido y eficiente; buena opción en máquinas de bajos recursos.Consume más si usas plugins pesados.
FlexibilidadOpiniones firmes, pocas opciones de personalización.Altamente personalizable según las preferencias del usuario.
  • Elige Helix si prefieres un editor rápido, preconfigurado y listo para usar con un enfoque minimalista y moderno. Ideal para quienes desean productividad inmediata y funcionalidad predeterminada sólida.
  • Elige Neovim si necesitas un editor extremadamente flexible, con un ecosistema maduro y estás dispuesto a invertir tiempo en configurarlo para tus necesidades exactas. Perfecto para usuarios avanzados o quienes ya están acostumbrados a Vim.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *