Suppose I want the face helm-match to have an unset foreground. Unfortunately, helm-match inherits from match so, if I try to unset the foreground normally:

(set-face-foreground 'helm-match nil)

The inherited foreground becomes active. I'd rather not mess with the match face itself (because I can't tell what ramifications that would have), and I would like to avoid hard coding the other values in helm-match because I use multiple themes.

How can I achieve this sanely?

  • Just customize the face (helm-match). That's what face customization is for. Show all the attributes in Customize, and uncheck the inheritance.
    – Drew
    Jan 30 '16 at 2:04
  • 1
    @Drew I would like to preserve the inheritance of other attributes.
    – PythonNut
    Jan 30 '16 at 2:18
  • 1
    So leave Inherit checked and check whatever other attributes you want to override any from the inherited face. The point is to use Customize (customize-face).
    – Drew
    Jan 30 '16 at 2:35

Use unspecified as value instead.

See also face attributes.

  • Nope. unspecified causes the face to inherit the property from the parent.
    – PythonNut
    Jan 30 '16 at 2:18
  • @PythonNut: yes, from linked page: "An unspecified attribute tells Emacs to refer instead to a parent face", what would you want instead?
    – npostavs
    Jan 30 '16 at 8:34
  • What about unspecified for the inherit attribute?
    – wasamasa
    Jan 30 '16 at 13:08
  • 4
    @npostavs I would like the face attribute to be truly unspecified. That is, left to lower priority faces on the same character, for example.
    – PythonNut
    Feb 2 '16 at 6:22

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.