Je veux savoir s'il est possible de faire des emacs, lorsque vous utilisez un écran gnu ou une session tmux, utilisez les mêmes couleurs que lorsque TERM=xterm
. Dans un écran gnu ou une session tmux, TERM=screen
et emacs utilise un ensemble de couleurs différent par rapport à quand TERM=xterm
.
Par exemple, lorsque TERM=xterm-256color
, la couleur de premier plan de font-lock-comment-face
est «Firebrick». Mais quand TERM=screen-256color
, il est réglé sur 'chocolate1'.
Pour que tmux fonctionne correctement, la variable TERM doit être définie sur screen ou un dérivé, donc la réinitialisation de TERM n'est pas une option pour moi.
TERM=xterm emacs
pour forcer leTERM
réglage des variables pour emacs. Que se passe-t-il quand tu fais ça?Réponses:
La définition de
font-lock-comment-face
comprend de nombreuses variantes pour les cas de prise en charge de couleurs variables.chocolate1
variante est utilisée lorsqu'il y a au moins 88 couleurs disponibles et que le «fond» est «foncé».Firebrick
variante est utilisée lorsqu'il y a au moins 88 couleurs disponibles et que le «fond» est «clair».La différence est causée par un code qui donne une signification particulière aux valeurs de terme qui commencent par
xterm
,rxvt
,dtterm
eteterm
: il les considère comme un arrière - plan « lumière ».Vous devriez pouvoir personnaliser
frame-background-mode
* à salight
valeur pour toujours utiliser les variantes de couleur «claires».Si votre Emacs n'est pas assez nouveau pour avoir le sien
term/screen.el
, vous devrez également en adapter un pour vous-même qui effectuera les appels de réglage des couleurs appropriés. Vous pouvez utiliser l'un de tronc Emacs , ou j'ai un Gist qui comprend un.emacs.d/lisp/term/screen.el
(avec quelques bits supplémentaires pour reconnaître le modificateur + flèches / Accueil / séquences de fin fournies par tmux l »xterm-keys
option), et la.emacs
modification nécessaire pour laisser automatiquement la charge .Bien sûr, il pourrait y avoir encore d' autres morceaux de code qui vérifient directement la valeur à long terme et faire quelque chose différent pour
screen
- etxterm
-comme valeurs ...* Mx personnaliser-variable frame-background-mode
la source