2009-12-28 9 views
10

En la parte superior de mi módulo elisp, quiero hacer algo tan simple como:elisp: ¿Hay alguna manera de obtener el nombre del módulo .el actual (como __FILE__ en C)?

(message (concat "Loading " (expand-file-name (current-elisp-module) "."))) 
+0

posible duplicado de [¿Cómo hacer referencia al archivo que se está cargando actualmente en Emacs Lisp?] (Http://stackoverflow.com/questions/1344747/how-to-refer-to-the-file-currently-being- loaded-in-emacs-lisp) – mlt

Respuesta

9

Puede utilizar la variable load-file-name, que se establece por la función load, documentado de la siguiente manera:

Nombre completo del archivo cargado por `carga '.

según se detalla en el manual:

Cuando Emacs está en el proceso de carga de un archivo, el valor de esta variable es el nombre de ese archivo, como Emacs encontró que durante la búsqueda descrita anteriormente en este sección.

Nota:buffer-file-name como una rutina no funciona como se podría esperar que lo haga.

+0

Gracias por redondear la respuesta, Trey. Estaba más apurado de lo habitual escribiendo eso, y pensé que sería útil ponerlo a cabo más temprano que tarde. – seh

Cuestiones relacionadas