💾 Archived View for q01.flounder.online › otros › emacs.gmi captured on 2024-02-05 at 09:23:40. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-07-16)
-=-=-=-=-=-=-
Muy bien, sé que recientemente creé un artículo acerca de Neovim y además dije que me sentía muy cómodo allí, pero no pude evitar seguir explorando el mundo de los editores de texto en GNU/Linux... Y, lógicamente, terminé por tropezar con GNU Emacs. Curiosamente, existe una suerte de rivalidad entre los editores del estilo de Vim y Emacs; ambos tienen admiradores fervientes que afirman que el suyo es superior, mientras de alguna manera, ora en serio ora en broma, denigran al otro. Desde luego, no me iba a dejar influenciar por opiniones de este estilo, así que decidí probarlo por mi cuenta. Mi experiencia la detallo aquí, y espero que le sirva a quien también desee intentar este viaje.
Emacs tiene una historia peculiar; su primera versión fue creada por Richard Stallman (ideólogo del movimiento del software libre y fundador del proyecto GNU) y Guy Steele a mediados de la década de 1970. Su nombre significaba «Editor MACros»; un macro es algo así como una extensión de un editor para una tarea específica. El Emacs original sólo funcionaba en un sistema en particular, que posteriormente dejó de existir, pero el concepto triunfó entre la comunidad. Con el tiempo surgieron muchos editores similares, la mayoría de ellos privativos; para darle a Unix y al futuro sistema GNU un editor completamente libre, Stallman inició GNU Emacs hacia el año 1984, ya en el marco, como se ve, del desarrollo de GNU. GNU Emacs fue en efecto el primer producto del proyecto GNU; los componentes creados bajo este último, junto con el kernel Linux, pasarían a formar posteriormente la familia de sistemas operativos hoy conocida como GNU/Linux (muchas veces llamada «Linux» a secas). El éxito del editor, en fin, fue extraordinario, tal es así que en la actualidad, varias décadas después de su primera versión, se sigue utilizando.
Es posible instalar este editor en multitud de sistemas operativos:
Instrucciones de instalación (en inglés)
Algunas distribuciones de GNU/Linux tienen una versión de Emacs instalada; en mi caso no era así, así que procedí con:
sudo apt install emacs
Que es la forma de instalación más común para Debian, Ubuntu y derivados. GNU Emacs es un paquete bastante grande, al menos a comparación de Vim, por lo que puede tardar un tiempo en instalarse.
Emacs tiene la facilidad de que puede usarse tanto en la terminal como fuera de ella. Si quieres iniciar en una interfaz gráfica, normalmente debes escribir en la línea de comandos:
emacs
Si en cambio quieres editar en la terminal, utiliza:
emacs -nw
Lo normal es editar en una interfaz gráfica, pero es bueno tener ambas opciones a disposición.
De cualquier forma, lo primero que encontrarás será una pantalla de bienvenida. Recomiendo, primero que nada, realizar el tutorial integrado; puedes acceder al mismo manteniendo pulsada la tecla 'CTRL' y, sin soltarla, presionar la 'h', para después presionar la 't' (soltando el CTRL antes). Si iniciaste la interfaz gráfica, es más sencillo simplemente dar click en «Emacs tutorial». No te asustes por el inglés en el mensaje de bienvenida, el tutorial está en español.
Si has utilizado Vim en el pasado, pronto notarás que Emacs carece de «modos». Por ello, cada tecla corriente ('a', 'g', '?', etc.) se inserta en el texto de manera directa independientemente de las circunstancias, excepto si es precedida por un modificador (CTRL o ALT). Encuentro este funcionamiento mucho más simple y fácil de seguir, pero tiene el inconveniente notable de que muchas acciones requieren complicados combos de teclas. Por ejemplo, CTRL+X CTRL+S para guardar un archivo. Hay dos formas de contrarrestar esto; en primer lugar, utilizar la barra de herramientas rápidas en la parte superior de la ventana en la interfaz gráfica, con la que se pueden realizar acciones simplemente con el ratón, y en segundo lugar (esto es muy importante si planeas utilizar este editor intensivamente) mapear la tecla BLOQ MAYÚS a un CTRL alternativo. La posición corriente de la tecla CTRL la hace difícil de alcanzar la mayor parte del tiempo, así que este mapeo ahorrará muchos dolares.
Muy bien; tras terminar el tutorial (tomará alrededor de quince minutos), ya podrás proseguir con tu viaje. Hay algo crucial a tener en cuenta de ahora en más: GNU Emacs no es simplemente un editor de texto, sino un poderoso intérprete para el lenguaje de programación Elisp, por lo cual puede ser configurado para hacer prácticamente cualquier cosa. El secreto está en personalizarlo a tu gusto, no en intentar forzarte a lo que es por defecto.
A partir de ahora, utilizaré la notación de Emacs. Esto es, 'C-s' significa CTRL+S, y 'M-s' significa ALT+S. 'SPC' es la tecla de espacio, 'TAB' el tabulador, 'RET' es Enter, etc.
Los comandos de movimiento son sencillos de recordar con un poco de práctica, pues están diseñados para ello. 'C-a' y 'C-e' para moverse al principio o final de una línea, 'C-f' y 'C-b' para moverse hacia atrás o adelante por caracteres, 'M-f' y 'M-b' para moverse por palabras, y así. Este editor puede manejarse perfectamente de esta forma, y aprender los comandos te volverá más eficiente, pero tiene buen soporte para el ratón y las flechas del teclado también si lo prefieres.
Algo muy importante a tener en cuenta para editar en Emacs es el concepto de «región». La mayoría de los comandos actúan en la región, definida como el espacio entre el cursor y la «marca», siendo esta última colocada por el usuario o bien por algún comando. Ejemplo: para borrar una gran porción de texto, primero se coloca la marca (C-SPC), después se mueve el cursor para expandir la región (con M-b y M-f, por ejemplo), y finalmente se presiona DEL (la tecla de borrado habitual, comúnmente llamada en otros ámbitos «backspace» o similar). También se puede definir la región con el ratón. Desde luego, se pueden hacer muchas otras cosas con el texto de la región además de borrarlo, como cortarlo para insertarlo después en otro lugar (C-w), transformarlo en mayúsculas (C-x C-u), deshacer las últimas ediciones allí (C-x u), entre otros.
Lo más sencillo para moverse a través del texto, si sabes exactamente a dónde ir, es buscar con 'C-s' o 'C-r'. Esto es mucho más veloz y muestra exactamente el punto al que llegarás cada vez. Además, deja la marca en el punto donde inició la búsqueda; por ello, para borrar todo desde el cursor hasta la palabra 'mundo' incluyéndola basta con tipear 'C-s mundo RET C-w'. Aquí el comando C-w (kill-region) actúa en la región incluso cuando la misma es invisible (no está resaltada). En realidad, la región siempre existe, y sólo se muestra al usuario cuando está «activa». Para activar la región actual si está inactiva, se puede utilizar 'C-x C-x'. Con 'C-g', por cierto, puedes eliminar el resaltado y también cancelar cualquier comando.
En realidad, la mejor forma de aprender los conceptos de región, búsqueda, movimiento y demás es simplemente leer el manual y experimentar con los comandos.
Algo muy interesante de GNU Emacs es que puedes crear tus propios combos de teclas, que se adecúen a tus necesidades personales. Por ejemplo, 'C-x u' me parece demasiado complicado como algo tan vital como deshacer, y los otros combos que existen para esta función ('C-/' y 'C-_') son también complicados en un teclado no estadounidense. Así que agregué lo siguiente al archivo .emacs ubicado dentro de mi carpeta de usuario principal:
(global-set-key (kbd "C-z") 'undo)
Tras reiniciar Emacs (o tipear 'M-x eval-buffer RET'), soy capaz de utilizar 'C-z' para deshacer una acción. Nota: 'C-z' tiene una función predeterminada, que minimiza la ventana o suspende la sesión. Esto no suele ser útil, pero si la necesitas puedes tipear 'C-x C-z' de cualquier forma.
Como dije, Emacs no es simplemente un editor, sino un intérprete de Elisp. Por lo tanto, es posible configurarlo para cualquier función programable. Sin ir más lejos, incluye una calculadora (M-x calculator), un calendario (M-x calendar), un administrador de archivos (M-x dired), un navegador web (M-x eww), un clon de tetris (M-x tetris), y muchísimo más.
Pese a todo, una de las ventajas más grandes de este editor se llama Org mode (M-x org-mode). Es difícil explicarlo, pero básicamente se trata de un modo especial para guardar notas, listas de tareas y más utilizando texto plano. Se integra muy bien con los demás componentes de Emacs, es extensible y tiene demasiadas características como para cubrirlas en detalle aquí.
Página de inicio de Org Mode (en inglés)
Como se deja entrever, Emacs tiene tantas características que sólo puedo presentar una muy pequeña cantidad. Realmente recomiendo leer el manual integrado si tienes tiempo libre y sabes inglés. Puedes acceder al mismo con 'C-h i'.
En fin, ¿por qué utilizar este editor, teniendo a disposición otras piezas de software como Neovim? Hay muchas razones:
Habiendo aprendido a editar en ambos, y viendo las capacidades de cada uno, yo personalmente decidí quedarme en GNU Emacs. Poder editar sin tener que pensar en el modo de inserción o de comandos (como sucede en Vim), ser capaz de crear combos de teclas para realizar cualquier acción imaginable, el poder organizativo de Org, la licencia GPL, y muchas otras razones motivaron mi decisión. No obstante, recomiendo siempre probar ambos antes de realizar una elección.
PD: Este artículo fue escrito con GNU Emacs