Emacs, el editor de texto libre con vocación de sistema operativo: sus 'extensiones' más usadas suplen toda clase de aplicaciones

Emacs, el editor de texto libre con vocación de sistema operativo: sus 'extensiones' más usadas suplen toda clase de aplicaciones
1 comentario

Si has oído hablar de 'emacs', quizá tengas una idea de este software como un editor de texto avanzado, algo más similar a Visual Studio Code que al Bloc de Notas, pero que funciona tanto en entornos gráficos como en modo texto (de hecho, es famoso por sus largas listas de atajos de teclado, que permiten usar todas sus funciones prescindiendo por completo del mouse).

Puede que también sepas que sigue en pie una larga y enconada guerra entre sus usuarios más entusiastas y los del editor Vi/Vim. Éstos últimos suelen decir de Emacs, medio en broma medio en serio, que se trata de "un gran sistema operativo al que sólo le falta un editor de texto decente".

Emacs está disponible para Windows, Linux, *BSD, Mac, MS-DOS, Android, etc

Y es que es cierto que este software —un histórico de los entornos Unix, creado en 1976 por el hoy tan polémico Richard Stallman— es tan modular y personalizable, y dispone de un ecosistema tan variado de complementos, que podría decirse que únicamente carece de kernel para completar las funciones básicas de un sistema operativo (de hecho, hay quien ha logrado hacer funcionar un PC únicamente con el kernel de Linux y el propio Emacs).

Sus propias ventanas, paquetes, aplicaciones… y hasta distribuciones

Cuando en Emacs hablamos de 'ventana', no nos referimos a la única que se abre al iniciar el programa (que sería el 'frame'), sino a las múltiples subventanas internas que podemos llegar a abrir dentro del propio programa, cada una con su propio 'buffer' de contenidos.

Dichas 'ventanas' pueden ser del editor de texto, de cualquier otra funcionalidad si antes hemos recurrido a las múltiples extensiones disponibles para Emacs (tantas que, como si de un SO se tratase, cuenta con su propio gestor de paquetes).

Y, de igual modo que tu sistema operativo reacciona de forma distinta según qué tipo de archivo indiquemos que queremos usar (abriendo el Notepad si es un .txt, el VLC si es un .mkv, etc), los 'modos' de Emacs se activan según el tipo de archivo que queremos abrir, ofreciendo funcionalidades distintivas en cada caso.

Suelen usarse para cosas simples como colorear la sintaxis de un código con base al lenguaje que estemos usando, pero se pueden usar para visualizar documentos y archivos multimedia, para organizar notas, para acceder a páginas web, usar la línea de comandos, etc.

Siendo tan configurable y contando con tantas posibles aplicaciones complementarias no es de extrañar que, al igual que ocurre ya con Linux, Emacs cuente con 'distribuciones' dirigidas a determinados usos y tipos de usuarios, como Spacemacs, Dooms Emacs, Prelude, etc.

Emacs cuenta con paquetes de aplicaciones como EAF (Emacs Application Framework), que puedes ver en funcionamiento en la imagen principal del artículo; pero también con complementos (aplicaciones) individuales con una larga trayectoria, como los siguientes:

Línea de comandos: eshell

Editor Eshell

Hay varias opciones para utilizar la línea de comandos del sistema desde Emacs. Dos de ellas son 'shell' y 'term', que no hacen sino permitir a Emacs interactuar con Bash o alguna otra shell externa. Sin embargo, Emacs también cuenta con una shell propia llamado 'eshell', que emula el comportamiento de las 'coreutils' (grep, cat, cp, cd, diff, ls, echo, mv, makdir, rm, alias…), pero con su propio comportamiento y personalizaciones…

…como la opción de redirigir la salida de un comando directamente a un búfer Emacs, de utilizar pseudodispositivos como /dev/clip (para mandar algo al Portapapeles), o de combinar los comandos con instrucciones en lenguaje LISP.

Administrador de archivos: dired

Dired

Dired es un administrador de archivos, muy similar al famoso Midnight Commander, que lleva 47 años facilitando la realización de operaciones con ficheros desde Emacs. Incluye funciones de búsqueda y filtrado de ficheros y, usado en combinación con paquetes como Tramp, es capaz de usar protocolos como SSH, telnet o FTP para acceder también a sistemas de ficheros remotos.

Organizar de notas: Org-Mode

Org Mode
Org-Mode con un complemento para iconos (Vía: u/psamim en Reddit)

Vivimos en tiempos en que muchos usuarios consideran a Evernote algo ya pasado de moda en los tiempos de Notion… y sin embargo, otros llevan décadas disfrutando de muchas de las funciones de éste gracias a uno de los 'modos' más valorados de Emacs: Org-Mode.

A grandes rasgos, es una base de datos basada en archivos de texto simple capaz de servir como diario personal, como listado de tareas, como planificador de proyectos o incluso como sistema de publicación de blogs.

Reproductor multimedia: emms

Music
Pantallazo de una alternativa a EMMS llamada EAF-music-player.

El Emacs MultiMedia System (EMMS) es el resultado de introducir en Emacs un clon del histórico XMMS (a su vez, un clon libre de WinAmp), permitiendo manejar archivos de audio y listas de reproducción, o el scrobbling mediante Libre.fm. Recurriendo a extensiones, puede incluir funciones complementarias, como la búsqueda de letras de canciones.

Navegador web / cliente de email: Eww + mu4e

Emacs Internet
Mu4e junto a un navegador alternativo a Eww, denominado emacs-w3m. (Imagen: u/valankat en Reddit)

Eww (Emacs Web Wowser) es un navegador web muy ligero, aunque algo retro: compatible con varias funcionalidades de HTML5 y CSS, pero sigue sin ser la mejor opción para mostrar ciertos sitios web modernos.

En cualquier caso, combinando este navegador con el uso del cliente de e-mail Mu4e, Emacs nos permitirá realizar la mayor parte de nuestras tareas online sin necesidad de minimizarlo o cerrarlo. ¿Y si necesitamos un lector de feeds RSS? Pues tendremos la opción de instalar Elfeed. ¿O de chatear en IRC? Pues instalemos ERC.

Gestor de ventanas: exwm

Exwm
"Hijo mío, allá hasta donde tu vista alcanza, todo eso será EXWM (o sea, Emacs)". (Imagen vía u/plotnick en Reddit)

Si dudabas de la capacidad de Emacs para asumir la mayor parte de las funciones de un sistema operativo, tus dudas desaparecerán una vez descubras que 'exwm' permite usar Emacs como un gestor de ventanas minimalista (no muy distinto del popular i3), de tal forma que permitirá incluso ejecutar programas ajenos a Emacs como si fueran un búffer (ventana) de éste. Puede ser usado también en combinación con entornos de escritorio como LXDE.

Imagen principal | vía 'u/rafaelcgs10' en Reddit

Temas
Inicio