orgmode - 更改代码块背景颜色

orgmode - change code block background color

下面的代码将更改 html 导出背景颜色为 #eff0fe:

#+ATTR_HTML: :style background-color:#eff0fe;
#+BEGIN_EXAMPLE
hello world!
#+END_EXAMPLE

像下面这样:

在emacs中编辑时如何改变背景颜色?

我看过 Pretty fontification of source code blocks 文档,但听起来它对我不起作用!

听起来有些面孔名称已更改,以下配置有效:

(custom-set-faces
 '(org-block-begin-line
   ((t (:underline "#A7A6AA" :foreground "#008ED1" :background "#EAEAFF" :extend t))))
 '(org-block
   ((t (:background "#EFF0F1" :extend t))))
 '(org-block-end-line
   ((t (:overline "#A7A6AA" :foreground "#008ED1" :background "#EAEAFF" :extend t))))
 )

输出:

另一种方法(我认为更通用)在 this page 中进行了说明,我已将代码段复制粘贴到此处。它只会更改代码块,而不会更改 #+BEGIN#+END#+RESULTS 行。

下面的示例将使代码块相对于您的 emacs 主题的背景颜色变暗 3%(注意最后一个参数中的数字 3)。但是,如果您在编辑期间更改主题,代码块的颜色将保持不变。

(require 'color)
(set-face-attribute 'org-block nil :background
                    (color-darken-name
                     (face-attribute 'default :background) 3))

使用浅色主题输出:

使用深色主题输出:

您可以进一步修改个别编程语言的代码块颜色。下面的示例将修改 emacs-lisp 和 python.

的代码块颜色
(setq org-src-block-faces '(("emacs-lisp" (:background "#EEE2FF"))
                            ("python" (:background "#E5FFB8"))))