2009-03-26 1 views
8

Когда я бегу emacs -nw в окне X терминала, и я прошу M-x list-colors-display, я предложил ничтожные палитру:Как настроить мой терминал Linux X, чтобы Emacs имел доступ к 256 цветам?

black              
red  
green 
yellow 
blue 
magenta 
cyan 
white 

Я сказал, что можно получить 265 цветов. Установка переменной окружения TERM в xterm-256color не выполняет эту работу. Что значит?

ответ

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 
+0

При тестировании Debian цвета 'tput показывают 256, но emacs видит только 8. Нужно ли emacs 22? (У него есть фатальные ошибки, которые мешают мне использовать его.) –

+0

Не должно быть 'XTerm * termName' - то есть с' * 'между' XTerm' и 'termName' вместо'. 'В вашем случае? – amn

0

Когда я гугл это у меня сложился впечатление, что большинство дистрибутивов не позволяют 256 поддержки цвета в эмуляторы упакованных терминалов.

Я подозреваю, что если вы продолжаете смотреть, вы можете прийти к тому же выводу, что и я. Лучший ответ - загрузить urxvt и скомпилировать его сами, включив все звонки и свистки.

Я использовал vim, поэтому могут быть другие зависимости/gotchas, специфичные для emacs, но я уверен, что терминал, поддерживающий 256 цветов, важен.

+0

Пользователи Debian имеют доступ через пакет rxvt-unicode. –

+0

Цвет tput показывает 88 цветов, но emacs видит только 8 –

+0

Но скомпилирован ли он с поддержкой цвета 256 цветов? –

3

TERM до xterm-256colorявляется что вы хотите сделать. Кроме того, Emacs 22 (по крайней мере) не нуждался в какой-либо специальной конфигурации от меня, чтобы отображать 256 цветов. См. Это related question. С установленным пакетом ncurses-term я смог получить 256 цветов на Emacs, используя vanilla xterm, который поставлялся с моей версией Ubuntu (в этом случае Interpid, но я предполагаю, что это будет хорошо в более ранних версиях). Я также получил 256 цветов, используя терминал Gnome, Konsole и PuTTY, для чего это стоит.