代码之家  ›  专栏  ›  技术社区  ›  Cheeso

windows上的emacs23:set face前台在加载emacs.el时似乎被遗忘了。

  •  1
  • Cheeso  · 技术社区  · 14 年前

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

    我以前的电脑使用Emacs22已经很久了。

    我有一个longish emacs.el,它装载各种各样的elisp库。在Emacs22中,我把一切都安排好了。

    我把这个emacs.el和所有其他elisp模块一起带到了新的PC上。启动了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文件的最后复制了这两个语句(从上面)。不过,字体还是会被还原。

    如果在加载完所有内容后,在草稿缓冲区中对这些语句进行eval,那么字体看起来就像我所期望的那样——黑底白字。

    Emacs23如何使用默认字体有什么不同吗?
    为什么会恢复?
    当从emacs.el进行评估时,为什么我不能让这些设置“坚持”?

    谢谢你们的帮助。

    1 回复  |  直到 11 年前
        1
  •  2
  •   Cheeso    14 年前

    找到了。我在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 事情。

    所以我在那里对前景颜色和背景颜色的行进行了注释,它开始了我喜欢的方式。

    推荐文章