Ich möchte wissen, ob es möglich ist, Emacs zu erstellen, wenn sie in einem Gnu-Bildschirm oder einer tmux-Sitzung ausgeführt werden und dieselben Farben wie bei verwenden TERM=xterm
. In einem Gnu-Bildschirm oder einer tmux-Sitzung TERM=screen
verwendet emacs einen anderen Farbsatz als wann TERM=xterm
.
Wenn beispielsweise TERM=xterm-256color
die Vordergrundfarbe von font-lock-comment-face
"Firebrick" ist. Aber wenn TERM=screen-256color
, ist es auf "Schokolade1" gesetzt.
Für tmux zur Arbeit der Variablen TERM richtig, muss festgelegt werden , um Bildschirm oder ein Derivat, so TERM Zurücksetzen ist keine Option für mich.
TERM=xterm emacs
Erzwingen derTERM
Variableneinstellung für Emacs. Was passiert, wenn Sie das tun?Antworten:
Die Definition von
font-lock-comment-face
umfasst viele Varianten für Fälle unterschiedlicher Farbunterstützung.chocolate1
Variante wird verwendet, wenn mindestens 88 Farben verfügbar sind und der „Hintergrund“ „dunkel“ ist.Firebrick
Variante wird verwendet, wenn mindestens 88 Farben verfügbar sind und der „Hintergrund“ „hell“ ist.Die Differenz wird durch einige Code verursacht , die eine besondere Bedeutung für TERM Werte gibt , die mit beginnen
xterm
,rxvt
,dtterm
, undeterm
: es hält sie für ein „Licht“ Hintergrund zu haben.Sie sollten in der Lage sein,
frame-background-mode
* an seinenlight
Wert anzupassen , um immer die "hellen" Farbvarianten zu verwenden.Wenn Ihr Emacs nicht neu genug ist, um einen eigenen zu haben
term/screen.el
, müssen Sie auch einen für sich selbst anpassen, der die entsprechenden Farbanpassungsaufrufe ausführt. Sie können die aus dem Emacs-Trunk verwenden , oder ich habe eine Übersicht , die a enthält.emacs.d/lisp/term/screen.el
(mit einigen zusätzlichen Bits, um die Modifikator + Pfeile / Home / End-Sequenzen zu erkennen, die von der Option von tmux bereitgestellt werdenxterm-keys
), und die.emacs
Modifikation, die erforderlich ist, damit sie automatisch geladen wird .Natürlich könnte es noch andere Codebits geben, die den TERM-Wert direkt überprüfen und etwas anderes für
screen
- undxterm
-ähnliche Werte tun …* Mx Customize-Variable Frame-Hintergrund-Modus
quelle