Искам да задам целевата директория за компилация на байтове на emacs lisp, използвайки относителен път като ../foo
. Разбрах, че трябва да използвам byte-compile-dest-file-function
, но не знам как да го настроя. Как мога да го настроя?
Настройка на byte-compile-dest-file-функция
Отговори (2)
За да зададете променливата byte-compile-dest-function
, можете да използвате или customize-variable
интерактивно, или setq
във вашия начален файл. Тъй като ще трябва да напишете функция, която да върши работата и в двата случая, бих препоръчал последното, така че всичко да е на едно и също място във вашия init файл.
Например:
(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.