В elisp я создал следующий макрос. Он будет устанавливать значение "val" в переменную "var" только в том случае, если переменная является несвязанной. Он существует для того, чтобы переменные, заданные в вашем файле .emacs, не были растоптаны где-нибудь еще.
(defmacro set-ifunbound (var val)
`(if (not (boundp ',var))
(setq ,var ,val)
(identity ,var)))
Конечно, это должен быть общий шаблон. Есть ли встроенный способ сделать то же самое?