The post's title pretty much says it all.

In particular, I want to find out what happens if I invoke custom-set-variables twice, with completely different arguments each time. E.g.

(custom-set-variables '(this "foo"))
(custom-set-variables '(that "bar"))

Does this have the same effect as

(custom-set-variables '(this "foo")
                      '(that "bar"))


And ditto for custom-set-faces.

1 Answer 1


They both just set the named variables. custom-set-variables sets the value of the variable as well as several other properties, while custom-set-faces only sets some properties. You can get these using the symbol-value and symbol-plist functions.

For example:

(custom-set-variables '(db48x/test 24 t) '(db48x/test 42 t))
(symbol-value 'db48x/test)
(symbol-plist 'db48x/test)
(theme-value ((user 42)) saved-value (42) saved-variable-comment nil force-value t variable-comment nil custom-requests 42)

For a face you have this:

(symbol-plist 'default)
(face-defface-spec ((t nil)) face-modified nil face 0 face-documentation "Basic default face." event-symbol-element-mask (default 0) event-symbol-elements (default) ...)

For more information about how variables get their values, I recommend section 8.1 Symbol Components of the ELisp manual. (Use M-: (info "(elisp) Symbol Components") to jump right to it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.