如何在控制台模式下不使用颜色主题?

时间:2008-11-09 08:11:37

标签: emacs

我使用的是dark-blue2颜色主题,但在控制台下看起来很难看。 所以我想在终端下不使用颜色主题,那我该怎么办?

4 个答案:

答案 0 :(得分:13)

如果你在一个窗口系统中,那么变量 window-system 比那些家伙稍微短一些,{{> something {1}}如果你在终端,那么如果我想加载color-theme-darkblue2,我会:

nil

它只会使用终端中的默认颜色。当然,如果您愿意,可以在else部分加载一个术语友好的主题:

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

答案 1 :(得分:1)

在启动Emacs之前设置与单色终端相对应的“TERM”变量。例如,如果您在xterm中,请使用:

TERM=xterm-mono emacs -nw

如果“控制台”是指文本模式下的Linux控制台,则可以尝试使用“vt100”(或“vt320”)。

答案 2 :(得分:1)

我使用它,这很有效,因为我使用了来自Emacs CVS(未来23)的multi-tty内容:

(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))))))

答案 3 :(得分:0)

我使用的另一个简单的:

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

所以这将在窗体系统不是零的所有情况下加载主题,这基本上是任何一种gui。