Я хочу знать, возможно ли сделать так, чтобы emacs, работая на экране gnu или в сеансе tmux, использовал те же цвета, что и когда TERM=xterm
. В сеансе gnu или сеансе tmux TERM=screen
emacs использует другой набор цветов по сравнению с тем, когда TERM=xterm
.
Например, когда TERM=xterm-256color
цвет переднего плана font-lock-comment-face
- «Огнеупорный кирпич». Но когда TERM=screen-256color
он установлен на «Chocolate1».
Для правильной работы tmux переменная TERM должна быть установлена на screen или на некоторую производную, поэтому сброс TERM для меня не вариант.
TERM=xterm emacs
для принудительнойTERM
установки переменной для emacs. Что происходит, когда вы делаете это?Ответы:
Определение
font-lock-comment-face
включает в себя множество вариантов для случаев различной поддержки цвета.chocolate1
Вариант используется , когда есть, по крайней мере , 88 доступных цветов и «фон» является «темным».Firebrick
Вариант используется , когда есть, по крайней мере , 88 доступных цветов и «фон» является «свет».Разница вызвана какой - то код , который дает особое значение для значений TERM , которые начинаются с
xterm
,rxvt
,dtterm
иeterm
: он считает их иметь «свет» фон.Вы должны иметь возможность настроить
frame-background-mode
* на егоlight
значение, чтобы всегда использовать «светлые» варианты цвета.Если ваш Emacs не достаточно новый, чтобы иметь свой собственный
term/screen.el
, то вам также нужно будет адаптировать его для себя, который будет делать соответствующие вызовы с настройкой цвета. Вы можете использовать один из ствола Emacs , или у меня есть Сущность , которая включает в себя.emacs.d/lisp/term/screen.el
(с некоторыми дополнительными битами признать модификатор + стрелки / Home / End последовательность , предоставляемый tmux «Sxterm-keys
опция), а.emacs
изменение необходимо , чтобы он автоматически нагрузки ,Конечно, могут быть и другие фрагменты кода, которые напрямую проверяют значение TERM и делают что-то другое для значений типа «как
screen
иxterm
…»* Mx настраиваемая переменная frame-background-mode
источник