Emacs Solo: Dos años de personalización extrema

Fuentes: Two Years of Emacs Solo: 35 Modules, Zero External Packages, and a Full Refactor

Este artículo del blog de Rahul Juliato detalla su experiencia de dos años utilizando una configuración de Emacs personalizada llamada 'Emacs Solo', que se distingue por evitar el uso de paquetes externos. La filosofía detrás de Emacs Solo es comprender a fondo las capacidades integradas de Emacs, garantizar la estabilidad a través de las actualizaciones de Emacs y, sobre todo, tener control total sobre la configuración. Esto contrasta con las configuraciones tradicionales que dependen de repositorios de paquetes externos, que pueden ser inestables o propensos a problemas.

Inicialmente, Emacs Solo era un único archivo init.el masivo, lo que dificultaba la navegación y el mantenimiento. La principal innovación de esta última iteración es una refactorización que divide la configuración en dos capas: init.el para la configuración del núcleo de Emacs y un directorio lisp/ para módulos adicionales escritos por el autor. init.el contiene solo configuraciones de paquetes y funciones integradas de Emacs, con :ensure nil para indicar que no se requiere instalación externa. Esto permite a otros usuarios copiar y pegar secciones de init.el directamente en sus propias configuraciones. El directorio lisp/ alberga 35 módulos personalizados que reemplazan o complementan funcionalidades que normalmente se obtendrían a través de paquetes externos.

Estos módulos adicionales cubren una amplia gama de funcionalidades, incluyendo temas, navegación, formateo, clientes IRC (RCIRC y ERC), un sistema de autocompletado personalizado (icomplete-vertical-mode), Dired (explorador de directorios) mejorado, y una configuración avanzada de Eshell (intérprete de comandos). El autor destaca la importancia de comprender y controlar el código que se ejecuta, en lugar de depender de soluciones de terceros.

Emacs Solo no está exento de limitaciones. La configuración es extensa y requiere un conocimiento considerable de Elisp. Sin embargo, el autor argumenta que este esfuerzo permite un control total y una mayor estabilidad. Una alternativa sería utilizar una configuración de Emacs más tradicional con paquetes externos, pero esto implicaría comprometer el control y la estabilidad. Este enfoque es ideal para usuarios avanzados de Emacs que buscan una configuración altamente personalizada y controlada, y que están dispuestos a invertir tiempo en aprender y mantener su propia configuración.