包装set-face-attribute的宏不起作用

时间:2014-06-11 17:01:50

标签: emacs macros elisp

我想创建一个可以改变它的宏:

(set-face-attribute 'term-color-blue nil :foreground "#5555FF")

(term-color blue "#5555FF")

我试过这个:

(defmacro term-color (name color)
  `(set-face-attribute ',(intern (concat "term-color-" (symbol-name name)))
                       :foreground ,color))

但错误wrong-type-argument symbolp "#5555FF",我的宏有什么问题?

Macroexpand返回:

(set-face-attribute (quote term-color-blue) :foreground "#5555FF")

1 个答案:

答案 0 :(得分:1)

nil在宏观扩张中明显缺失。

尝试

(defmacro term-color (name color)
  `(set-face-attribute ',(intern (concat "term-color-" (symbol-name name)))
                       nil :foreground ,color))