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. Там я нашел и проверил "Использовать системные цвета". Это исправило мою проблему.