¿Cómo puedo saber qué paquete de emacs incorporado debe ser 'requerido'?

8

Estaba leyendo el Registro de cambios para emacs 24.4 ( C-hn) y estaba tratando de ver qué es la función de Notificación de archivo. Intenté hacer C-hvuna variable relacionada auto-revert-use-notifypero no apareció nada.

Luego busqué ese nombre de variable en el código fuente de emacs y descubrí que se usaba en lisp/autorevert.el. Después de hacerlo (require 'autorevert), se definieron todas las funciones y variables subyacentes.

Pregunta: ¿Cómo sé si y qué necesito requiresi quiero usar una función incorporada de emacs inactiva en ese momento? ¿Hay una lista de dichos paquetes disponibles?

Kaushal Modi
fuente
A menudo uso helm a propósito para averiguar qué tipos de comandos / funciones / variables están disponibles para mí. Resulta que a veces la configuración exacta que quiero es "incorporada", pero requireprimero tengo que incluir su paquete.
nispio

Respuestas:

6

La respuesta, hasta donde yo sé, a sus preguntas es " No se puede saber " y " No existe una lista de bibliotecas ".

aproposy comandos similares se basan únicamente en lo que se actualmente cargado o autocargable, no lo que se distribuyen con Emacs. A menos que algo esté (a) integrado (es decir, en el código C), (b) disponible en una biblioteca ya cargada, o (c) cargado automáticamente, dichos comandos no lo seleccionan.

En ese caso, su único recurso es buscar el código fuente (que yo sepa). Grepping es una forma de hacerlo.

Si una variable como auto-revert-use-notify(que es una opción de usuario) se menciona explícitamente en Emacs NEWS ( C-h N), entonces sería genial si esa mención estuviera vinculada a la biblioteca fuente que la define, por lo que podría presionar RETo hacer clic mouse-2en su nombre para abrir el archivo de la biblioteca a su definición. Es posible que desee utilizar M-x report-emacs-bugpara archivar eso como una solicitud de mejora.

(También podría ser útil tener un comando para hacer eso en general: busque la definición de una variable o una función en el código fuente distribuido, sin necesidad de cargar la biblioteca. En este caso, sabía el nombre exacto de la variable, pero tuvo que grepencontrar dónde se define).

Dibujó
fuente
Parece que es hora de un require+paquete que le permite explorar los símbolos de los paquetes que aún no se han cargado. ;-)
nispio
@nispio: ¡adelante! Con comportamientos opcionales para buscar (1) bibliotecas proporcionadas con la distribución de Emacs o (2) bibliotecas en su load-path. ;-) (Pero una biblioteca llamada apropos+.elya existe, aunque sea mínima, y ​​esto no se trata realmente require).
Dibujó el