Quiero saber si es posible hacer emacs, cuando se ejecuta en una pantalla gnu o una sesión tmux, use los mismos colores que cuando TERM=xterm
. En una pantalla gnu o una sesión tmux, TERM=screen
y emacs usa un conjunto diferente de colores en comparación con cuándo TERM=xterm
.
Por ejemplo, cuándo TERM=xterm-256color
, el color de primer plano font-lock-comment-face
es 'Firebrick'. Pero cuando TERM=screen-256color
, se establece en 'chocolate1'.
Para que tmux funcione correctamente, la variable TERM debe establecerse en pantalla o alguna derivada, por lo que restablecer TERM no es una opción para mí.
TERM=xterm emacs
forzar laTERM
configuración variable para emacs. ¿Qué pasa cuando haces eso?Respuestas:
La definición de
font-lock-comment-face
incluye muchas variantes para casos de diferentes colores.chocolate1
variante se utiliza cuando hay al menos 88 colores disponibles y el "fondo" es "oscuro".Firebrick
variante se utiliza cuando hay al menos 88 colores disponibles y el "fondo" es "claro".La diferencia es causada por un código que le da un significado especial a los valores término que comienzan con
xterm
,rxvt
,dtterm
, yeterm
: se les considera que tienen un fondo “luz”.Debería poder personalizar
frame-background-mode
* a sulight
valor para usar siempre las variantes de color "claro".Si su Emacs no es lo suficientemente nuevo como para tener el suyo
term/screen.el
, entonces también necesitará adaptar uno que haga las llamadas de ajuste de color apropiadas. Puede usar el de la troncal de Emacs , o tengo un Gist que incluye un.emacs.d/lisp/term/screen.el
(con algunos bits adicionales para reconocer el modificador + flechas / Inicio / secuencias finales proporcionadas por la opción de tmuxxterm-keys
), y la.emacs
modificación necesaria para permitir que se cargue automáticamente .Por supuesto, todavía podría haber otros bits de código que consultar directamente el valor a largo plazo y hacer algo diferente para
screen
- yxterm
-como valores ...* Mx personalizar-variable-frame-background-mode
fuente