我尝试将字体设置如下:
(let ((my:font "WenQuanYi Micro Hei Mono"))
(when (member my:font (font-family-list))
(set-face-attribute 'default nil :font my:font :width 'condensed)
(add-to-list 'default-frame-alist
'(font . my:font))))
set-face-attribute
工作正常。我可以看到字体设置为WenQuanYi
。但是,当我检查default-frame-alist
的值时,它显示为(font . my:font)
,当尝试创建新框架(emacsclient)时,我收到此错误:
*ERROR*: Invalid font: my:font
看起来它试图将值名称用作字体名称。所以我不确定做正确的方法是什么。
答案 0 :(得分:1)
引用列表'(font . my:font)
产生这两个符号的缺点,而不是您想要的值。您可以使用反引用或调用cons来代替引用:
`(font ,my:font)
或
(cons 'font my:font)
您可能对信息页面(info "(elisp)Quoting")
和(info "(elisp)Backquoting")
感兴趣,这些页面会更详细地解释这些结构。
在一个不相关的说明中,局部变量的emacs lisp词汇约定使用连字符like-this
,而不是冒号like:this
。