Elisp: Есть ли способ получить имя текущего модуля .el(например, __FILE__ в C)?

В верхней части моего модуля elisp я хочу сделать что-то простое:

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

Ответ 1

Вы можете использовать переменную load-file-name, которая задается функцией load, задокументировано следующим образом:

Полное имя файла, загружаемого `load '.

Как описано в руководстве:

Когда Emacs находится в процессе загрузки файла, это значение переменной является именем этого файла, так как Emacs обнаружил его во время поиска, описанного ранее в этом разделе.

Примечание: buffer-file-name, поскольку процедура не работает, как вы могли ожидать.