Notxor tiene un blog

Defenestrando la vida

Toda la ayuda de Emacs

Notxor
2022-09-29

Quieres aprender a utilizar Emacs y en lugar de ponerte a ello, pretendes que te haga yo el trabajo. Bien, así no funciona el aprendizaje, hazme caso. Muchas cosas las podrás aprender leyendo este blog, así que, de alguna manera ya tienes muchas cosas explicadas. Además, una de las ventajas de Emacs es que todo es consultable, el mismo código te explica cómo funciona o, al menos, para qué sirve, sólo tienes que preguntar y leer. ¿Cómo preguntas? Pues para eso tienes el sistema de ayuda, uno de los más completos que puedes encontrar en este mundo. En este pequeño artículo te voy a explicar cómo puedes usarla, que es la manera cómo yo me inicié y aprendí a utilizarlo. Además hay un montón de blogs, artículos y canales de vídeo que te proporcionarán información adicional. La ventaja de la ayuda que viene con Emacs es que la puedes consultar dentro del propio editor e incluso ejecutar el código de los ejemplos que encuentras.

F1

No me refiero a la fórmula uno. Me refiero a la tecla de función F1 que en el mundo mundial, de toda la mundialidad, suele asociarse con la ayuda de las aplicaciones; en Emacs también. Aunque, los que usamos este editor habitualmente, estamos más acostumbrados a la combinación C-h. Pero recuerda, cualquiera de los dos métodos te permitirá acceder a la ayuda.

Algo más sobre las teclas: como has visto <F1> y C-h son equivalentes. Ocurre lo mismo con otras teclas. Por ejemplo, una muy socorrida que se utiliza bastante es la combinación M-x para introducir a continuación un comando. El mismo efecto lo consigues pulsando <ESC> x1 y también la tienes en la tecla de menú junto al <Control derecho>. Esto es para que veas, que algunas veces las cosas se pueden hacer de varias maneras.

¿Por dónde empezar?

Esta pregunta es la más fácil de contestar. Si no has utilizado Emacs con antelación, te vendrá muy bien que comiences por aprender cómo funciona, cómo moverte por un fichero, como cargar, modificar y guardar los ficheros, etc. Por tanto, te vendrá muy bien hacer el tutorial que viene con él. Además puedes elegir en qué idioma hacerlo.

Como ya te he dicho antes, en Emacs las cosas se pueden hacer de varias maneras. Una es aprenderte la combinación de teclas que hace lo que quieres2, pero de éstas sólo te aprenderás las que usas normalmente. Otra forma de utilizar funcionalidades es, como te he dicho antes, llamándolas desde M-x o <ESC> x o la tecla de menú. Por abreviar y centrarnos en la tarea de aprender a manejar Emacs, son equivalentes:

M-x help-with-tutorial <=> C-h t

Al activarlo te mostrará un buffer con explicaciones básicas de cómo moverte por Emacs y ejercicios simples para acostumbrarte a su manejo.

Apropos y la ayuda para la ayuda

¿Ya has hecho el tutorial? Bien, pues vamos a seguir con otras cosas que te pueden ser de ayuda. Pulsa M-x (o cualquiera de sus variantes, ya sabes) y escribe apropos, te pedirá un término que buscar, teclea help y debería aparecerte algo como:

Captura_apropos-buffer.png

Quizá tu Emacs no se vea exactamente así, pero quédate con el contenido del buffer de la derecha. Ahí tienes una lista de variables y funciones que contienen el término help, puedes moverte por él. Quiero que vayas a la entrada help-for-help, pero quería que vieras que aún no sabiendo el nombre exacto puedes buscar la referencia.

Captura_help-for-help.png

Muestra información sobre el comando help-for-help, no demasiada, pero te indica a qué teclas está ligado, junto con una breve explicación de lo que hace, la versión desde la que se encuentra incluido en Emacs, etc. Algunas funciones y variables están bien documentadas y otras pueden dejarte algo que de desear. Básicamente, este comando abre un buffer de ayuda para manejar la ayuda de Emacs. Si lo llamas con cualquiera de las teclas a las que está asignado, por ejemplo pulsando <f1> <f1>, te aparecerá un buffer como el siguiente:

Captura_hfh-buffer.png

Fíjate que es una lista de cosas que puedes consultar pulsando una tecla de ayuda, la que completaría la combinación de teclas está remarcada a la izquierda. Si no te cabe toda la información en la pantalla, usa las teclas de página arriba y página abajo para moverte por el buffer. En resumen, ¿de qué ayuda podemos hablar? Pues toda la ayuda, ¿cómo? pues usando C-h <tecla>. Mira el listado:

  • Comandos, teclas y funciones:
    • m: Muestra ayuda sobre los comandos y teclas propios de los modos menores y mayor que tengas activados.
    • b: Muestra todas las teclas configuradas y la función asignada a cada una de ellas.
    • k: Muestra ayuda para una determinada combinación de teclas.
    • c: Muestra sólo la función a la que está asignada una combinación de teclas.
    • w: Muestra qué tecla lanza un comando específico.
    • a: Busca comandos con ese nombre (similar a apropos)
    • d: Busca documentación para funciones, variables y demás.
    • x: Muestra la ayuda para un comando3.
    • f: Muestra ayuda para una función.
    • v: Muestra ayuda sobre una variable.
    • o: Muestra ayuda para una función o una variable.
  • Manuales
    • r: Muestra el manual de Emacs.
    • F: Muestra la sección del manual para un comando.
    • K: Muestra la sección del manual para una combinación de teclas.
    • i: Muestra todos los manuales instalados.
    • R: Muestra un manual específico.
    • S: Muestra la descripción de un símbolo en el manual correspondiente.
  • Otros comandos de ayuda
    • C-e: Ayuda de cómo extender Emacs con paquetes.
    • p: Abre un buffer para buscar información sobre paquetes.
    • P: Describe un paquete específico.
    • t: Inicia el tutorial de Emacs.
    • e: Muestra el buffer *Messages* con los mensajes recientes del área de eco.
    • l: Muestra las últimas pulsaciones que se han hecho.
    • .: Muestra ayuda local en el punto donde estás.
  • Varios
    • C-a: Muestra la ventana de inicio por defecto de Emacs.
    • C-f: Muestra las preguntas frecuentes de Emacs.
    • C-n: Muestra novedades sobre los cambios recientes.
    • C-p: Muestra información sobre problemas conocidos.
    • C-d: Muestra ayuda sobre cómo depurar Emacs.
    • g: Muestra información sobre el proyecto GNU.
    • C-c: Muestra la licencia de uso de Emacs.
  • Internacionalización y sistemas de códigos de letras y tipos
    • I: Describe métodos de entrada para caracteres especiales.
    • C: Describe el sistema de códigos.
    • L: Describe el entorno para una determinada lengua.
    • s: Muestra la tabla de símbolos.
    • h: Muestra un archivo con varios sistemas de escritura. Display the HELLO file illustrating various scripts

No quiero decir que te lo tengas que leer todo para aprender a utilizar Emacs. De hecho, yo no me lo he leído todo, sin embargo, sí aprendí cómo utilizar la ayuda. Cuando tengo dudas o no sé hacer algo, lo primero que hago es abrir la ayuda o buscar toda la información que pueda sobre lo que necesito.

Manuales

Tienes mucha información en los manuales. Algunos son libros completos. Si utilizas la combinación C-h i te muestra una lista de todos los manuales que encuentre en el sistema. Algunos paquetes tienen su manual y vienen con él, como org-mode. Los más importantes son:

  • Emacs
  • org-mode
  • Emacs Lisp Intro
  • Elisp

Pero también son muy recomendables otros más específicos según el uso que vayas a darle a Emacs. Así a bote pronto se me ocurren: el manual de eshell, el manual de magit, el manual de calc y el manual Widget y el de Transient si quieres meterte en temas de programación de interfaces con Emacs.

Si vas a utilizar tu Emacs para temas de programación, también es recomendable que le eches un vistazo al manual de EDE y al de gdb.

Conclusiones

Ya sé que leer cuesta un esfuerzo extra a que te lo den todo resuelto. Quizá te has acostumbrado a que ese problema que tú tienes ahora, lo tiene que haber tenido alguien antes y seguramente está relatado en algún blog. En muchos casos es así y en este mismo sitio te puedes encontrar con muchas respuestas a dudas que puedes tener. Pero el mérito de esas respuestas no están más que en la documentación que viene con Emacs, que es donde suelo mirar como primera opción.

Me parece una buena manera de aprender, porque así lo he hecho yo. Son tres pasos muy sencillos:

  1. Intento resolver mi problema recurriendo a la ayuda del programa.
  2. Si no lo encuentro o no soy capaz de solucionarlo por mi cuenta, pido ayuda.
  3. Después documento todo lo que he hecho, fundamentalmente para cuando lo vuelva a necesitar, pero además también, porque puede ayudar a otras personas y lo publico en el blog o me lo apunto en mis notas.

Así pues, no me seas vago y lee los manuales. Sé que no es una lectura muy amena, pero sí muy provechosa.

Footnotes:

1

Esa combinación significa que pulsas la tecla de escape, la sueltas y pulsas luego la x. Sí, la tecla escape, yo la tengo mapeada también en el bloqueo de las mayúsculas y necesito mover menos la mano.

2

Sí, esa es una de las queja-excusas de los que no lo usan. Que hay una infinidad de teclas para todo. Es cierto, hay una infinidad de teclas porque hay una infinidad de funcionalidades que llamar.

3

Lo que diferencia un comando de una función es que el comando se puede llamar, bien desde M-x o bien con una combinación de teclas.

Categoría: emacs

Comentarios

Debido a algunos ataques mailintencionados a través de la herramienta de comentarios, he decidido no proporcionar dicha opción en el Blog. Si alguien quiere comentar algo, me puede encontrar en Mastodon y en Diaspora con el nick de Notxor.

También se ha abierto un grupo en Telegram (enlace de invitación al grupo), para usuarios de esa red.

Disculpen las molestias.