【问题标题】:emacs23 on windows: set-face-foreground seems to get forgotten during load of emacs.elWindows 上的 emacs23:在加载 emacs.el 期间似乎忘记了 set-face-foreground
【发布时间】:2010-11-13 21:35:22
【问题描述】:

刚买了一台新的 Windows 笔记本电脑,上面安装了 emacs23。

我以前的计算机使用 emacs 22 已经不知多久了。

我有一个较长的 emacs.el,它加载了各种侧 elisp 库。我在 emacs 22 中设置了所有内容。

我把这个 emacs.el 连同所有其他 elisp 模块一起带到了新电脑上。启动了emacs,一切看起来都很好。只有一个奇怪的问题。

在 emacs.el 的顶部附近,我这样做了:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; basic, default colors

(set-face-foreground 'default "white")
(set-face-background 'default "black")

这会使背景变黑,前景变白(黑底白字)。这与在 Windows 上默认安装 emacs 的操作相反。

在加载 emacs.el 的其余部分时,我可以看到这些颜色是有效的。它只是一个空白窗口,甚至没有显示暂存缓冲区。我看到的只是窗口底部的消息,告诉我加载进度。 (由于某种原因,加载速度要慢得多 - 我想我有一些未编译的 .el 库 - 我将不得不单独调查)。即便如此,它还是一个黑色的窗口。 (如果没有 emacs.el 中的这些语句,窗口仍然是白色的。)无论如何,一切都会加载,然后屏幕恢复为白底黑字,而不是黑底白字。

奇怪的部分是我设置的所有其他字体,似乎“坚持”。 cc-mode 中的注释字体、字符串字体、函数名等字体......这些都保留了下来。只有默认的前景和背景字体不会“粘”。

我猜想也许 elisp 模块堆栈中的某些东西可能正在重置这些字体。所以我在 emacs.el 文件的最后复制了这两个语句(从上面)。尽管如此,字体还是会被还原。

如果我在加载完所有内容后在暂存缓冲区中评估这些语句,那么字体看起来就像我预期的那样 - 黑底白字。

emacs23 处理默认字体的方式有什么不同吗?
为什么会恢复?
当从 emacs.el 评估时,为什么我不能让这些设置“坚持”?

感谢大家提供的任何帮助。

【问题讨论】:

    标签: windows emacs emacs-faces


    【解决方案1】:

    找到了。我在emacs.el里也有,这段代码:

    (setq default-frame-alist
      '((top . 10) (left . 860)
        (width . 100) (height . 28)
        (cursor-color . "Blue")
        (cursor-type . box)
        (foreground-color . "White")
        (background-color . "Black")
        (mouse-color . "sienna3")
        (font . "-*-Lucida Console-normal-r-*-*-11-82-96-96-c-*-iso8859-1")
        )
      )
    

    ...这与set-face-foreground 的事情相矛盾。

    所以我在那里注释掉了前景色和背景色的行,它以我喜欢的方式启动。

    【讨论】:

      猜你喜欢
      • 2015-10-28
      • 2014-05-07
      • 2017-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-24
      • 2019-08-02
      相关资源
      最近更新 更多