Ayuda en Emacs - Aprender o Repasar es Facil


Indagar sobre las múltiples funciones de Emacs es una tarea inevitable. Ya sea para explorar y descubrir comandos útiles, o tras un tiempo alejados del editor durante el que nuestros músculos olvidan hasta los atajos de teclado más cotidianos.

Por suerte Emacs cuenta con mucha documentación incorporada y si aprendemos a preguntarle, nos responderá todas nuestras dudas sin necesidad de salir a buscar respuestas en la web.

Un problema de la información disponible online es que está centrada por lo general en los atajos de teclado que vienen por defecto en Emacs (o en los paquetes de terceros que instalemos), y entonces se vuelven inaplicables las sentencias del tipo “para salir de Emacs se usa C-x C-c”. Yo promuevo el uso del nombre de las funciones para dar ayuda, pero en cualquier caso, es mejor preguntarle a nuestra versión local de Emacs todo lo que necesitemos saber, puesto que conoce nuestros atajos de teclado al dedillo.

A continuación se listan algunas opciones para obtener ayuda.

Info

Contamos con un conjunto de manuales muy detallados escritos en TeXinfo (el formato de documentación oficial de GNU, que usa un mismo archivo fuente para producir distintos formatos de salida como HTML, Info, PDF, XML, etc.).

Mediante la función info accedemos a un índice con todos los manuales TeXinfo instalados en nuestro sistema, incluido el propio manual de Emacs pero también los de muchos paquetes extras. Están construidos como hipertexto, navegable con las teclas citadas debajo.

Atajo Función Descripción
C-h i info Abre el manual info
C-h 4 i info-other-window Idem, pero en otra ventana
[ and ] Info-forward-node / Info-backward-node Ir al nodo siguiente / previo
l and r Info-history-back / Info-history-forward Navegar historial hacia atrás o adelante
n and p Info-next / Info-prev Ir al nodo siguiente / previo (misma jerarquía)
u Info-up Sube un nivel a un nodo superior
SPC Info-scroll-up Scroll de una pantalla
TAB Info-next-reference Cicla entre enlaces (hiperlinks) de la página
RET Info-follow-nearest-node Abre el enlace activo
m Info-menu Pregunta por un item del menú (si hay uno) y lo abre
q quit-window Cierra la ventana con el navegador de info

Info admite el uso de bookmarks (más sobre esto en otro posteo…).

Apropos

Es un comando que responde preguntas como “¿cuáles son los comandos para trabajar con archivos?”. La manera de hacerlo es usar un patrón de búsqueda que puede ser una palabra, una lista de palabras o una expresión regular. Es útil cuando no estamos seguros de lo que estamos buscando. Permite buscar variables y comandos, y tiene soporte para realizar las búsquedas con expresiones regulares.

Atajo Función Descripción
C-h a apropos-command Muestra todos los comandos que coinciden con el criterio de búsqueda
apropos Muestra todo: funciones y variables

Por ejemplo, nos sirve para buscar funciones relacionadas con archivos (buscaríamos: file) o rectángulos (rectangle). El resultado se muestra en un buffer: las funciones que incluyen file o rectangle en el nombre, su atajo de teclado y una breve descripción. Se puede navegar hasta el nombre de los comandos o variables listados y con RET abrir un nuevo buffer con más información.

Cuando se especifica más de una palabra como patrón de búsqueda, para que haya coincidencia debe haber dos o más de esas palabras en el nombre. Por ejemplo si buscamos sobre operaciones sobre copiar o cortar oraciones podríamos buscar así: C-h a sentence kill yank insert.

Para mayor flexibilidad se pueden usar expresiones regulares. En general, son expresiones de búsqueda que contienen los siguientes caracteres: ^$*+?.[. Funciones que terminen con “guión y región”: -region$, o con “guión y rectángulo”: -rectangle$.

Hay varias funciones más en la familia de apropos. Las podemos buscar con C-h a apropos.

Describe

Disponemos de ayuda para todas las funciones, a la cual accedemos mediante el nombre de la función o con su atajo de teclado. También tenemos una descripción de los modos activos en el buffer, con el que podemos ver un listado de las funciones disponibles y sus atajos de teclado. Finalmente, si conocemos un prefijo está disponible una ayuda que indica todas las funciones que comparten ese inicio de atajo de teclado.

Atajo Función Descripción
C-h f describe-function Muestra documentación de la función en un nuevo buffer, a partir del nombre de la función
C-h k describe-key Idem anterior, pero a partir del atajo de teclado
C-h c describe-key-briefly Muestra una linea con el nombre de la función asociada al atajo, en el minibuffer
C-h m describe-mode Muestra un buffer con la información del modo mayor y sus atajos, junto con una descripción de los modos menores
C-h b describe-bindings Muestra un buffer con una lista de todas los atajos y sus definiciones
Prefijo C-h Muestra un buffer con una lista de todas las posibles funciones que se pueden ejecutar completando el prefijo