Emacs 256 цветов, не работающих с использованием PuTTY и экрана

У меня возникли проблемы с получением 256 цветов для работы с использованием emacs 23.1.1, соединяющего PuTTY и экран. Сервер работает CentOS 5.6.

В моей конфигурации PuTTY моя строка терминального типа установлена ​​на xterm-256color. В моем .screenrc у меня есть term xterm-256color Как только на экране tput colors мне присваивается 256, echo $TERM дает мне xterm-256color, но как только я запускаю emacs M-x list-colors-display, мне дают только 8 цветов.

Не знаю, в чем проблема.

Спасибо.

Ответ 1

Я столкнулся с той же проблемой.

Чтобы устранить эту проблему, просто добавьте ее в ~/.bashrc(да, я использую bash)

# -----------
export TERM=xterm-256color
export TERMCAP=
# ------------

запустить экран и emacs в окне экрана. теперь все в порядке.

версии:

bash -4.2.45

Emacs-24.3_10

Версия экрана 4.00.03 (FAU) 23-Oct-06

Ответ 2

У Putty есть настройка, позволяющая использовать режим 256 цветов. Он под окном/цветами, обозначенный "Разрешить терминалу использовать xterm 256-цветный режим". Убедитесь, что он установлен.

После загрузки emacs вы можете подтвердить значение TERM, которое emacs использует с помощью:

(assoc 'tty-type (frame-parameters (car (frame-list))))

Это должно быть (tty-type . "xterm-256color").

Ответ 3

Попробуйте вместо этого использовать emacs в режиме демона (emacs --daemon) и откройте emacsclients (emacsclient -t) вместо использования screen/tmux. Это даст вам одну меньшую переменную для обработки этой отладки.

Ответ 4

Глядя на ваш пост и ваши отзывы другим, это звучит так, как будто ваша проблема... экран. Чтобы проверить мою гипотезу, попробуйте это...

$ wget http://www.frexx.de/xterm-256-notes/data/256colors2.pl
$ chmod 755 256colors2.pl
$ ./256colors2.pl

... если вы видите 256 цветов в оболочке, но не на экране, проблема в экране. И даже если есть другие проблемы, вам придется исправить экран, чтобы иметь любую надежду увидеть 256 цветов в emacs;)

Недавно я исправил эту ситуацию для себя в системе, где у меня нет sudo, создавая личную копию экрана. Экран небольшой, и это не имеет большого значения... И, IMHO, emacs с 256 цветами стоит того.

В Linux 2.6.x я сделал это:

$ wget ftp://ftp.gnu.org/gnu/screen/screen-4.0.3.tar.gz 
$ tar -xf screen-4.0.3.tar.gz
$ cd screen-4.0.3
$ ./configure --prefix=$HOME --enable-colors256
$ make
$ make install 

Проверьте новый экран с помощью...

$ ~/bin/screen
$ ./256colors2.pl

... если он работает, поместите это в свой ~/.bashrc:

PATH = ~/bin: $PATH; export PATH

На экране у меня появились отчеты, являющиеся более ранней версией...

$ ~/bin/screen -v
Screen version 4.01.00devel (GNUdf0777e) 2-May-06

... чем версия моей системы:

$ /usr/local/bin/screen -v
Screen version 4.00.03 (FAU) 23-Oct-06

Но пока оба утверждают, что поддерживают 256 цветов...

$ tput colors 
256

Только новая сборка действительно делает. Да!

Ответ 5

Ваш ~/.screenrc должен читать:

term screen-256color

(это не должно смешиваться с xterm-256color)

Ответ 6

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

termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
term xterm-256color

Вам также может понадобиться эта строка.

defbce "on"

Говорите, если этого еще недостаточно.

Ответ 7

У меня была аналогичная проблема с шпатлевкой и экраном, хотя я не использовал emacs. После ответа ataylor я отправился в Window/Colours in Putty. Там я нашел и проверил "Использовать системные цвета". Это исправило мою проблему.