Windows 上的 emacs23:在加载 emacs.el 期间,set-face-foreground 似乎被遗忘了
刚买了一台新的 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 评估时无法让这些设置“粘住”?
感谢你们提供的任何帮助。
Just got a new Windows laptop, installing emacs23 on it.
My previous computers have used emacs 22 for I-don't-know-how-long.
I have a longish emacs.el, which loads various side elisp libraries. I had everything set up just so, in emacs 22.
I brought this emacs.el over to the new pc, along with all the other elisp modules. Started emacs, and everything looks good. There's just one weird issue.
Near the top of the emacs.el, I do:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; basic, default colors
(set-face-foreground 'default "white")
(set-face-background 'default "black")
This makes the background black, and the foreground white (white-on-black). This is the opposite of what a default install of emacs on Windows will do.
While the rest of emacs.el is loading, I can see that these colors are in effect. It's just a blank Window, not even the scratch buffer is displayed. All I See is the message at the bottom of the window updating me on the progress of the load. (For some reason loading is much slower - I think I have some uncompiled .el libraries - I'll have to investigate that separately). Even so, it is a black window. (Without those statements in emacs.el, the window remains white.) Anyway, everything loads, then the screen reverts to black-on-white, rather than white-on-black.
The weird part is all the other fonts I've set, seem to "stick". Fonts like comment fonts, string fonts, function-names and so on in cc-mode... these all remain. Only the default foreground and background fonts don't "stick".
I guessed that maybe something in the stack of elisp modules was maybe resetting these fonts. So I duplicated those two statements (from above) at the very end of the emacs.el file. Still, though, the fonts get reverted.
If I then eval those statements in the scratch buffer after everything has loaded, then the fonts look as I expect - white-on-black.
Is there something different about how emacs23 does default fonts?
Why does it revert?
Why can I not get these settings to "stick" when evaluated from emacs.el?
Thanks for any help y'all can offer.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
找到了。我在 emacs.el 中也有这样的代码:
...这与
set-face-foreground
的事情相矛盾。所以我在那里注释掉了前景色和背景色的行,它按照我喜欢的方式启动。
Found it. I also had in the emacs.el, this code:
... which contradicted the
set-face-foreground
thing.So I commented out the lines for foreground-color and background-color there, and it started up the way I like.