刚买了一台新的 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模式下的注释字体、字符串字体、函数名等字体……这些都保留了下来。只有默认的前景和背景字体不会“粘住”。
我猜想可能是 elisp 模块堆栈中的某些东西正在重置这些字体。所以我在 emacs.el 文件的最后复制了这两个语句(从上面)。尽管如此,字体还是恢复了。
如果我在加载所有内容后在暂存缓冲区中评估这些语句,那么字体看起来就像我期望的那样 - 黑底白字。
emacs23 默认字体有什么不同吗?
为什么会恢复?
为什么在从 emacs.el 评估时我不能让这些设置“坚持”?
感谢你们提供的任何帮助。
最佳答案
找到了。我在 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 矛盾。
所以我在那里注释掉了 foreground-color 和 background-color 的行,然后它以我喜欢的方式启动。
关于windows - Windows 上的 emacs23 : set-face-foreground seems to get forgotten during load of emacs. el,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4174854/