2008-11-09 64 views

回答

1

在啓動Emacs之前設置一個對應於單色終端的「TERM」變量。例如,如果你是在一個xterm,使用:

TERM=xterm-mono emacs -nw 

如果「控制檯」你的意思是在文本模式下的Linux控制檯,您可以嘗試使用「VT100」(或「VT320」)來代替。

1

我用這個,效果很好,因爲我用的是multi-tty東西從Emacs的CVS(未來23):

 
(defun mrc-xwin-look (frame) 
    "Setup to use if running in an X window" 
    (color-theme-deep-blue)) 

(defun mrc-terminal-look (frame) 
    "Setup to use if running in a terminal" 
    (color-theme-charcoal-black)) 

(defun mrc-setup-frame (frame) 
    (set-variable 'color-theme-is-global nil) 
    (select-frame frame) 
    (cond 
    ((window-system) 
    (mrc-xwin-look frame) 
    (tool-bar-mode -1) 
    (mrc-maximize-frame)) 
    (t (mrc-terminal-look frame)))) 

(add-hook 'after-make-frame-functions 'mrc-setup-frame) 

(add-hook 'after-init-hook 
     (lambda() 
     (mrc-setup-frame (selected-frame)))) 

它選擇不同的顏色主題取決於框架是否在控制檯中運行或一個X窗口。 (我不想失去語法高亮顯示在控制檯。)

順便說一句,最大限度地發揮這個樣子的:

 
(defun mrc-maximize-frame() 
    "Toggle frame maximized state" 
    ;; from http://paste.lisp.org/display/54627/raw 
    (interactive) 
    (cond 
    ((eq 'x (window-system)) 
    (progn 
     (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 
       '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0)) 
     (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 
       '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0)))) 
    (t 
    (message "Window system %s is not supported by maximize" 
     (symbol-name (window-system)))))) 
13

比那些傢伙略短,變window-systemsomething如果你在一個窗口系統的時候,和nil如果你在終端的時候,所以如果想裝入顏色主題darkblue2我將有:

(if window-system 
    (progn 
     (load "color-theme") 
     (color-theme-darkblue2))) 

,它只會使用終端中的默認顏色。當然,你可以明顯地加載一個長期友好的主題,在其他部分,如果你想:

(load "color-theme") 
(if window-system 
    (color-theme-darkblue2) 
    (some-term-theme))) 
0

另一種簡單的一個我用:

(when window-system 
    (load-theme '<myThemeName>)) 

因此,這將加載主題中的所有窗口系統不是零的情況,這基本上是任何類型的GUI。