【发布时间】:2019-11-22 02:00:49
【问题描述】:
我是 emacs lisp 的新手,并尝试将关键字值设置为如下所示的评估表达式:
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(default ((t (:height (+ 70 70)))))
)
请注意,最初的高度是一个静态值140,它运行良好。但是,当我将其更改为表达式时,它因 msg 失败:
error: Default face height not absolute and positive, +, 70, 70
我尝试这样做的原因是我在具有不同屏幕尺寸的多台计算机上共享相同的.emacs 文件。所以我的最终目标是根据屏幕大小计算字体大小。
将关键字值设置为表达式的正确方法是什么?
【问题讨论】:
-
如果您手动对自定义部分进行更改,那么如果使用内置方法再次保存自定义,这些更改可能会有些丢失。例如,你可以将 70 + 70 计算为 140,但是下次通过普通的内置方法保存自定义时,该值将是 140,而不是拼写为 70 + 70。话虽如此,你可以尝试更改单引用反引号并在要评估的部分之前放置逗号;即,尝试:`(default ((t (:height ,(+ 70 70))))) 。请参阅:gnu.org/software/emacs/manual/html_node/elisp/Backquote.html 您可以在自定义之外执行此操作。
-
@lawlist 谢谢。像魅力一样工作