Notxor tiene un blog

Defenestrando la vida


Sobre Info y la ayuda de Emacs

Hace unos días me llevé un susto con la ayuda de Emacs. Al abrirla me encontré que apenas había contenido, todo había desaparecido, incluidos el manual del editor, el manual de elisp, el de org. Un susto bastante grande, ya que utilizo la ayuda de forma habitual. Ya he dicho por aquí que suelo olvidar de una vez para otra cómo utilizar los comandos y las herramientas si no los uso todos los días. Tengo que refrescar mi memoria y es bastante habitual que consulte la ayuda, que entre otras cosas, para eso está.

El caso es que había hecho una actualización del sistema operativo y algo debió ir mal y de repente, sólo me aparecían los manuales de tres o cuatro herramientas y ninguno de los de Emacs.

Si pulsaba C-h r me abría el manual, luego estar estaba. Sin embargo, en la lista de Info que aparece al pulsar C-h i no aparecía. Como sabéis en el menú Help hay una entrada para Others manuals y al llamarlos desde allí, los manuales estaban, los abría y podía consultarlos. Pero ya estoy muy acostumbrado a pulsar C-h i y buscar lo que necesito, no a coger el ratón y tirar de menú.

Para mayor seguridad utilicé el comando info desde una terminal y ocurría lo mismo. La página principal no mostraba apenas entradas. Si llamaba a info, por ejemplo, como info emacs, abría el manual de Emacs pero seguía sin listarlo en el directorio de ayuda principal.

A estas alturas supongo que las preguntas son: ¿he conseguido hacer que aparecieran? y, si es así, ¿cómo? La respuesta a la primera pregunta es . A la segunda pregunta, es un poco más larga y por eso lo cuento en esta entrada del blog... pero la respuesta corta podría ser: chapuceando un poco, como buen chapucero que soy.

Archivos info

La ayuda de Emacs como sabéis está basada en otra herramienta de GNU: info. Esta herramienta consiste en una serie de archivos que se escriben mediante un lenguaje llamado texinfo y que se generan y guardan con la extensión .info o .info.gz. Pueden guardarse en varios directorios y por ejemplo, en mi .bashrc tengo añadida la línea

export INFOPATH=/usr/share/info:/local/share/info:~/opt/share/info

Se puede apreciar dónde se van a buscar los archivos info, especialmente, cuando no procede de un paquete de la distribución, sino que ha sido compilado desde código fuente a local o a ~/opt, según sea el caso.

Sabiendo dónde buscar, encontrar los ficheros fue fácil, estaban donde cabía esperar y desde ahí, llamar a info fichero para cargarlos era sencillo. Así pues, los archivos de información estaban en su sitio, sin embargo, ni el sistema de ayuda de Emacs ni el directorio general del comando info los encontraba.

El archivo dir

Dentro del directorio /usr/share/info me encontré un fichero de nombre dir sin la extensión .info. Es un fichero de texto, afortunadamente, y al abrirlo resultó ser el directorio de consulta de los contenidos. Digo afortunadamente, porque un fichero de texto se puede editar y el contenido, efectivamente, coincidía con el parco listado de entradas de la ayuda. Así supuse que ese fichero era el responsable de todo el problema.

Probé a añadir a mano una entrada de ayuda y funcionó, con una línea tal que:

* Manual de Emacs: (emacs).     Manual de referencia de emacs.

Me costó sólo un par de pruebas y el manual de referencia apareció en el listado de entradas de ayuda de C-h i. La estructura, como se puede apreciar es muy simple: un * en el primer carácter de la línea y a continuación lo que será el nombre del enlace Manual de Emacs en este caso. A continuación, y entre paréntesis, el nombre del fichero .info sin la extensión, aquí emacs. El punto . a continuación del paréntesis es importante, porque marca el final del enlace (esto fue una de las pruebas). Si no se pone, tomará como enlace el comentario, que lleva punto al final. Por último, en la columna 32 (para que esté alineada con el resto) una breve descripción del contenido, o comentario.

Conclusiones

Es un poco chapuza, seguramente habrá algún comando o script que rehaga el directorio de ficheros info de alguna manera más o menos automática. Sin embargo, después de haber estado investigando algo de tiempo, no encontré la manera. Por eso probé a hacerlo a mano y funcionó.

Seguramente me habré dejado algún fichero sin meter, supongo que me daré cuenta cuando lo necesite. De momento he metido los más habituales o los que consulto con más frecuencia.

Quizá me ponga en otro momento a hacer algún script que lo haga automáticamente, por si vuelve a suceder algo parecido


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, para usuarios de esa red.

Disculpen las molestias.