Пользовательский параметр (т. Е. Переменная, определяемая defcustom
) имеет значение по умолчанию, некоторые допустимые значения и способы его инициализации, установки и получения.
Способ установки по умолчанию: по существу, setq-default
, что похоже на setq
, но если переменная имеет локальные для буфера значения, она задает значение по умолчанию (глобальное).
Но если defcustom
определяет специфицирующую функцию установки c, то вам нужно использовать функцию Customize, чтобы установить значение, как вы обнаружили (или использовать пользовательский интерфейс Customize, что всегда является хорошей идеей). Это имеет место, если defcustom
имеет (не по умолчанию) спецификацию :set
.
Если вы используете custom-set-variables
или customize-set-variable
вместо setq
( или setq-default
), или если вы используете пользовательский интерфейс Customize (например, M-x customize-option
), то вы уверены, что любой предполагаемый код инициализации или обновления (настройки), который необходим для значения параметра, будет автоматически запускаться и запускаться по мере необходимости , Если вы используете setq
, это не будет сделано.
Смотрите также этот emacs.StackExchange post .