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) ".")))
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) ".")))
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.
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
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