如何设置我的Linux X终端以便Emacs可以访问256种颜色?

时间:2009-03-26 03:35:54

标签: linux emacs colors xterm

当我在X终端窗口中运行emacs -nw时,我要求M-x list-colors-display,我会得到一个微不足道的调色板:

black                                                     
red    
green  
yellow 
blue   
magenta
cyan   
white  

我被告知可以获得265种颜色。将TERM环境变量设置为xterm-256color不起作用。是什么?

3 个答案:

答案 0 :(得分:4)

根据this,除了将ncurses-term设置为TERM之外,您还需要xterm-256color库。

好的,this还有其他一些尝试:

The xterm in Ubuntu Edgy does not advertise 256 color support by
default.  To fix this you need to install a 256 color terminfo entry,
and tell xterm to use it:

    apt-get install ncurses-term
    echo XTerm.termName: xterm-256color \
      >>~/.Xdefaults
    xrdb -merge ~/.Xdefaults

和:

So you need a file term/screen-256color.el in your load-path.  Emacs
22 expects it to contain a terminal-init-screen defun.  Emacs 21
expects it to contain a bunch of top-level forms.  Here's what I use:

    ;;; This is for GNU Emacs 22
    (defun terminal-init-screen ()
      "Terminal initialization function for screen."
      ;; Use the xterm color initialization code.
      (load "term/xterm")
      (xterm-register-default-colors)
      (tty-set-up-initial-frame-faces))

    ;;; This is for GNU Emacs 21
    (if (= 21 emacs-major-version)
        (load "term/xterm-256color"))

For Emacs 21, you also need to install the xterm-256color.el file from

    http://www.splode.com/~friedman/software/emacs-lisp/src/term/xterm-256color.el

答案 1 :(得分:3)

TERM设置为xterm-256color 您想要做的事情。此外,Emacs 22(至少)不需要我的任何特殊配置,以显示256种颜色。见related question。安装了ncurses-term软件包,我可以使用我的Ubuntu版本附带的vanilla xterm在Emacs上获得256种颜色(Interpid,在这种情况下,但我猜它在早期版本中会没问题) )。我还使用Gnome Terminal,Konsole和PuTTY获得了256种颜色,这是值得的。

答案 2 :(得分:0)

当我用Google搜索时,我得到的印象是大多数发行版都没有在打包的终端模拟器中启用256色支持。

我怀疑如果你继续看,你可能会得出与我相同的结论。最好的答案是下载urxvt并自行编译,并打开所有的铃声和​​口哨声。

我使用的是vim,所以可能还有其他特定于emacs的依赖项/陷阱,但我很确定支持256种颜色的终端很重要。