2010-11-13 21 views
1

剛剛安裝了新的Windows筆記本電腦,在其上安裝了emacs23。windows上的emacs23:set-face-foreground似乎在加載emacs.el時被遺忘

我以前的計算機已經使用了emacs 22,用於我不知道多長時間。

我有一個很長的emacs.el,加載各種邊elisp庫。我在emacs 22中設置了一切。

我把這個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-mode中的註釋字體,字符串字體,函數名等......這些全部保留。只有默認的前景和背景字體不會「粘住」。

我猜想,也許在elisp模塊堆棧中的東西可能是重置這些字體。所以我在emacs.el文件的最後複製了這兩個語句(從上面的內容)。不過,字體得到恢復。

如果我在裝入所有東西后評估暫存緩衝區中的那些語句,那麼字體看起來就像我期望的那樣 - 白底黑字。

emacs23如何設置默認字體有什麼不同嗎?
它爲什麼還原?
爲什麼我不能從emacs.el評估這些設置爲「粘」?

感謝您的任何幫助,你們可以提供。

回答

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事情。

因此,我在那裏註釋了前景色和背景色的線條,並以我喜歡的方式啓動。