如何设置flycheck-posframe的颜色

How to set color of flycheck-posframe

我是 emacs 的新手,但现在遇到了一些问题,我无法设置 flycheck-posframe 的颜色,正确的设置方法是什么 it.i 曾尝试写这个但它不能工作。谢谢

    (setq  flycheck-posframe-warning-prefix ""
           flycheck-posframe-error-prefix ""
           flycheck-posframe-border-width 5
           flycheck-posframe-error-face '((t :inherit nil :foreground "red"))
           flycheck-posframe-warning-face `(:foreground-color ."orange")
           flycheck-posframe-info-face '((t (:foreground "blue")))
           flycheck-posframe-border-face  '(:foreground "#dc752f")))

Emacs 中的面孔实际上与普通变量的存储方式不同,这意味着您不能使用 setq.

设置它们的值

修改面部属性最简单的方法是通过Emacs Customization interface。您可以通过 运行 命令 M-x customize-face 然后输入您要更改的面孔的名称来完成此操作。您可以在此自定义缓冲区中轻松编辑面部的属性。完成更改后,您必须 select Apply(如果您希望更改应用于当前的 Emacs 会话)或 Apply and Save(如果您希望更改持续到未来的 Emacs会话)以进行更改。

下面是一个使用自定义缓冲区修改flycheck-posframe-error-face的例子:

但是,如果由于某种原因您需要使用 Emacs Lisp 修改面部属性,您可以使用 set-face-attribute 函数来完成。此函数采用面部名称(作为符号)、帧(nil 的值表示更改影响所有帧)以及交替的属性名称和值。请注意,这些属性更改只会影响当前的 Emacs 会话。您需要在每次启动 Emacs 会话时执行这些函数,以便将这些更改应用到该会话(例如,通过将以下命令添加到您的 init 文件)。

以下应进行您尝试进行的修改:

(set-face-attribute 'flycheck-posframe-error-face
                    nil
                    :inherit nil
                    :foreground "red")

(set-face-attribute 'flycheck-posframe-warning-face
                    nil
                    :foreground "orange")

(set-face-attribute 'flycheck-posframe-info-face
                    nil
                    :foreground "blue")

(set-face-attribute 'flycheck-posframe-border-face
                    nil
                    :foreground "#dc752f")