You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Emacs Lisp中将svg-tag-tags的:face值存入变量todo-faces-a?

问题解决方法

你的配置无法运行主要是custom-set-faces的语法错误,关于将:face的值存入变量todo-faces-a,分两种场景处理:

场景1:定义自定义Face(推荐方式)

Emacs中自定义Face需要遵循custom-set-faces的正确语法,原代码多了一层不必要的引号且结构有误,修正后:

(custom-set-faces
 '(todo-faces-a ((t (:background "red"
                                 :foreground "white"
                                 :height 0.7
                                 :weight bold)))))

这里((t ...))表示该Face在所有终端/图形界面下生效,同时:distant-foreground不是标准Face属性(svg-tag通常不支持),可直接删除。

之后在svg-tag-tags里引用这个Face的写法是正确的,保持'todo-faces-a即可:

(setq svg-tag-tags
      `(("TODO" . ((lambda (tag)
                     (svg-tag-make "TODO"
                                   :face 'todo-faces-a
                                   :inverse nil
                                   :margin 0
                                   :padding 0
                                   :ascent 0
                                   :height 0))))))

场景2:直接用变量存储Face属性列表

如果不想定义正式的Face,只想把属性列表存在变量里,可直接设置变量,在svg-tag-make中引用时去掉引号:

(setq todo-faces-a '(:background "red"
                     :foreground "white"
                     :height 0.7
                     :weight bold))

(setq svg-tag-tags
      `(("TODO" . ((lambda (tag)
                     (svg-tag-make "TODO"
                                   :face todo-faces-a
                                   :inverse nil
                                   :margin 0
                                   :padding 0
                                   :ascent 0
                                   :height 0))))))

这种方式不需要使用custom-set-faces,直接将属性列表赋值给变量即可。

内容的提问来源于stack exchange,提问作者cwind

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 15:16:04