【问题标题】:Change Emacs' background color更改 Emacs 的背景颜色
【发布时间】:2011-08-07 12:08:19
【问题描述】:

我有一个函数可以将 Emacs 的颜色主题设置为我自己定义的主题。在这个函数中我做:

(set-face-attribute 'default cur-frame :foreground fg-color :background bg-color)

然后我为default-frame-alistinitial-frame-alistspecial-display-frame-alist 设置背景颜色、前景色和光标颜色。

所有这些都可以在我的 Mac 上正常运行。但是当我在 Linux 上使用它时,它对于所有已经打开的框架看起来都很好,但是在新创建的框架上它看起来像这样:

如果使用 set-background-color / set-foreground-color 函数而不是 (set-face-attribute 'default ...),我不会遇到新框架的这个问题。但如果我这样做,我必须手动重置已经打开的每一帧的颜色。

我在 Mac 和 Ubuntu 上都使用 Emacs 23.3 版。

为了澄清,这是我使用的主题文件:

my-color.el

【问题讨论】:

  • C-l 是否正确绘制颜色?
  • @vpit3833 不。它向下滚动窗口,但没有任何变化。
  • 为什么不直接使用颜色主题模式?
  • @BozhidarBatsov 我已经尝试了所有主题,我都讨厌它们。我所需要的只是几个简单明了的主题,我可以在不同的场合来回切换。所以我决定自己编。一切正常,直到最近我才意识到 Linux 平台上的这个问题,因为我大部分时间都在我的 Mac 上工作。
  • 还有一些与颜色主题兼容的外部主题,例如 - github.com/bbatsov/zenburn-emacs(以及许多其他主题)。 emacs 24 将具有内置的主题功能

标签: emacs customization emacs-faces


【解决方案1】:

set-face-attribute 顾名思义,设置的是人脸的属性(即与字体相关的属性),而不是框架的属性。使用

(add-to-list 'default-frame-alist '(background-color . "lightgray"))

和类似改变框架相关的属性。

【讨论】:

  • 这似乎工作正常,直到我调整窗口大小,然后颜色再次被破坏(emacs 24.4.1)。
【解决方案2】:
(if (eq system-type 'darwin)
    ;; mac os x settings
  (if (eq system-type 'gnu/linux)
    (setq default-frame-alist '((background-color . "black")
                                (foreground-color . "gray")))))

这样的东西应该可以帮助您维护每个操作系统的设置。

【讨论】:

  • 其实我已经有了,如果你有兴趣试试看,这是我在bitbucket 上的 emacs 配置 repos,它在名为 my-color.el 的文件中。问题是,如果我将 set-face-attributes 用于 'default,即使我设置了 default-frame-alist,新框架也会被搞砸。没有它,它们会很好,但我必须手动设置每个其他打开的帧。虽然一般不会有那么多帧,但我还是想用一个命令进行更改。
【解决方案3】:

好像用起来比较好

(custom-set-faces
  '(default ... )
  '(region ... )
  ....
)

style 来设置面,这样就不会有这个问题了。

【讨论】:

    【解决方案4】:

    Emacs 在最近的 Emacs 版本中使用1)(或不覆盖)Gtk3.0 主题背景。使用例如更改背景set-background-colordefault-frame-alist 仅在我调整窗口大小之前有效,之后 Gtk 主题背景再次“闪耀”。

    我还没有弄清楚如何让 emacs 始终在 Gtk 主题背景上绘制,但至少我找到了一种方法来更改 Gtk 主题背景颜色,仅适用于 Emacs:https://superuser.com/questions/699501/emacs-showing-grey-background-where-there-are-no-characters/937749#937749

    所以这并不能完全解决切换主题时更改背景颜色的问题,但至少可以摆脱打开新框架时遇到的黑白对比。

    1) 至少在我的机器上 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-08
      • 2012-05-16
      • 1970-01-01
      • 2011-03-18
      • 2021-08-03
      相关资源
      最近更新 更多