Я хочу установить каталог назначения для компиляции байтов emacs lisp, используя относительный путь, например ../foo
. Я понял, что должен использовать byte-compile-dest-file-function
, но не знаю, как его установить. Как я могу установить это?
Установка функции байтового компиляции целевого файла
Ответы (2)
Чтобы установить переменную byte-compile-dest-function
, вы можете использовать либо customize-variable
в интерактивном режиме, либо setq
в файле инициализации. Поскольку вам придется написать функцию, выполняющую работу в любом случае, я бы рекомендовал последнюю, чтобы все было в одном и том же месте в вашем файле инициализации.
Например:
(defun my-dest-function (filename)
(concat (file-name-directory filename)
"../"
(file-name-sans-extension (file-name-nondirectory filename))
".elc"))
(setq byte-compile-dest-file-function 'my-dest-function)
Вы можете найти его, используя C-h v, за которым следует имя этой переменной.
(defcustom byte-compile-dest-file-function nil
"Function for the function `byte-compile-dest-file' to call.
It should take one argument, the name of an Emacs Lisp source
file name, and return the name of the compiled file."
:group 'bytecomp
:type '(choice (const nil) function)
:version "23.2")
Вы можете видеть, что это настраиваемая переменная, поэтому вы можете изменить ее значение на «функцию».
РЕДАКТИРОВАТЬ: я не уверен, что это переменная, которую вы хотите изменить. На самом деле, вы можете видеть, что он часто имеет дело с переменными каталогами, я не понимаю, как установить определенный каталог, в котором должны находиться все .elc.