1

刚买了一台新的 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 评估时,为什么我不能让这些设置“坚持”?

感谢您提供的任何帮助。

4

1 回答 1

2

找到了。我在 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...这与事情相矛盾。

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

于 2010-11-13T22:21:01.550 回答