我对如何在elisp中使用变量感到困惑

  • 本文关键字:变量 elisp emacs elisp quote
  • 更新时间 :
  • 英文 :


我尝试将字体设置如下:

  (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

看起来它试图将值名称用作字体名称。所以我不确定什么是正确的方法。

带引号的列表'(font . my:font)生成这两个符号的cons,而不是您想要的值。你可以使用反向报价或致电反对者来代替报价:

`(font ,my:font)

(cons 'font my:font)

您可能对信息页面(info "(elisp)Quoting")(info "(elisp)Backquoting")感兴趣,它们将更详细地解释这些结构。

与此无关的是,局部变量的emacs-lisp词汇约定使用连字符like-this,而不是冒号like:this

最新更新