emacs цвета, основанные на переменной окружения $ TERM

Я хочу знать, можно ли сделать emacs, при запуске на экране gnu или сеансе tmux, использовать те же цвета, что и при TERM=xterm . На экране gnu или сеансе tmux TERM=screen и emacs использует другой набор цветов по сравнению с TERM=xterm .

Например, когда TERM=xterm-256color , цвет переднего плана font-lock-comment-face – «Firebrick». Но когда TERM=screen-256color , он настроен на «chocolate1».

  • Как отключить поддержку X для emacs
  • tmux, как связать ключ для входа в режим VI и искать назад?
  • Emacs Hexl для чтения файлов устройств?
  • Как заставить tmux-окно быть заданным размером
  • emacs: в терминале выбранная строка теряется на ctrl-k
  • Как получить guake для обновления фоновых символов?
  • Для правильной работы tmux переменная TERM должна быть установлена ​​на экран или на какую-нибудь производную, поэтому сброс TERM для меня не является вариантом.

  • Как запускать команды терминала и выполнять команды на Linux (Mint 17.2, KDE, плазма)?
  • вывод при чтении ввода с клавиатуры
  • Emacs не откроется в графическом режиме в gnome
  • предотвратить использование программы от терминала?
  • Комбинированный su и экран при запуске
  • Изменить тип терминала для экрана по последовательному соединению
  • One Solution collect form web for “emacs цвета, основанные на переменной окружения $ TERM”

    Определение font-lock-comment-face включает в себя множество вариантов для случаев различной поддержки цвета.

    • Вариант chocolate1 используется, когда доступно по меньшей мере 88 цветов, а «фон» – «темный».
    • Вариант Firebrick используется, когда доступно не менее 88 цветов, а «фон» – «светлый».

    Разница вызвана некоторым кодом, который придает особое значение значениям TERM, которые начинаются с xterm , rxvt , dtterm и eterm : он считает, что они имеют «легкий» фон.

    Вы должны быть в состоянии настроить frame-background-mode * на его light ценность, чтобы всегда использовать «светлые» цветовые варианты.

    Если ваш Emacs не является достаточно новым, чтобы иметь собственный term/screen.el , вам также потребуется адаптировать его для себя, что делает соответствующие term/screen.el . Вы можете использовать ту, что из магистрали Emacs , или у меня есть Gist, который включает в себя .emacs.d/lisp/term/screen.el (с некоторыми дополнительными битами, чтобы распознавать модификаторы + стрелки / домашние / конечные последовательности, предоставляемые tmux 's xterm-keys ) и модификация .emacs необходимая для автоматической загрузки.

    Конечно, все еще могут быть другие биты кода, которые непосредственно проверяют значение TERM и делают что-то другое для значений screen и xterm like …

    * Mx customize-variable frame-background-mode

    Linux и Unix - лучшая ОС в мире.