Как сохранить цвета emacs от обычного терминала до экрана gnu

Я использую снежный барс OSX для записи.

Когда я использую emacs прямо из терминала, у меня есть набор цветов (например, для c/С++), который мне очень нравится --- зеленый на черном, красные комментарии, цветные ключевые слова... и т.д. это задано в моих "настройках терминала", а некоторые находятся в моем файле ~/.emacs(см. ниже). Когда я запускаю emacs с экрана, основная цветовая схема такая же (зеленый на черном), но окраска различна (например, символы комментариев красные, но не все комментарии) - и действительно раздражает.

Любая помощь будет оценена!

В моем файле ".emacs" (это перестает работать в emacs gnu-screen):

(global-font-lock-mode t)
(custom-set-faces
 '(font-lock-comment-face
   ((((class color) (background light))
     :foreground "tomato")
    )))

В моем файле .screenrc:

shell -$SHELL            # colors still don't work without this
#term xterm-256color    # using this doesn't fix the colors (suggested on some forums)

altscreen on
startup_message off

Я думал, что команда "shell - $SHELL" в моем файле .screenrc сделала командную строку на экране той же, что и по умолчанию, - она ​​ делает, чтобы моя команда сказала "имя_компьютера:/DIR/username $'вместо' bash -3.2 $'

=============================================== ==================

Решение: благодаря Грегу Е.

Мне нужно было настроить эмулятор терминала на экране в соответствии с настройкой моей обычной оболочки. Чтобы сделать это, я добавил

export TERM='xterm-color'

to ~/.bash_profile

По какой-то причине "term xterm-color" в файле "~/.screenrc" не работает.

Ответ 1

Мое подозрение заключается в том, что, хотя ваш терминал может быть скомпилирован с поддержкой более чем стандартных 16 цветов, вашей конкретной версии экрана GNU может не быть. Я не очень хорошо знаком с OSX, но в Linux я проверял, отличается ли вывод tput colors между простым терминалом и одним запущенным экраном (я ожидаю, что там будет некоторый эквивалент OSX, если tput недоступен). Если это так, вам может потребоваться установить (или вручную скомпилировать) другую сборку экрана, которая включает поддержку дополнительных цветов (обычно 256 является максимальным, но 88 также является общим, а 16 - минимальным по умолчанию).

Изменить: в конечном итоге правильное решение оказалось вручную задающим переменную среды $TERM (см. комментарии ниже).