colores de emacs basados ​​en la variable de entorno $ TERM


9

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=screeny 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-facees '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í.


(Ojalá pudiera comentar ...) No me queda claro si ha intentado ejecutar emacs como: TERM=xterm emacsforzar la TERMconfiguración variable para emacs. ¿Qué pasa cuando haces eso?
— Verdammelt

Estoy experimentando con eso en este momento. Todavía no he detectado nada malo. Parece que tmux se puede configurar para emitir secuencias de teclas xterm (aunque TERM = xterm todavía no es compatible). Según las preguntas frecuentes de tmux, tmux podría ser compatible con xterm en el futuro en lugar de solo en la pantalla.
— ALiX

Respuestas:


3

La definición defont-lock-comment-face incluye muchas variantes para casos de diferentes colores.

  • La chocolate1variante se utiliza cuando hay al menos 88 colores disponibles y el "fondo" es "oscuro".
  • La Firebrickvariante 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, y eterm: se les considera que tienen un fondo “luz”.

Debería poder personalizar frame-background-mode* a su lightvalor 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 .emacsmodificació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- y xterm-como valores ...

* Mx personalizar-variable-frame-background-mode

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.