Chcę wiedzieć, czy możliwe jest tworzenie emacsa, podczas uruchamiania na ekranie GNU lub sesji Tmux, używaj tych samych kolorów, co kiedy TERM=xterm
. Na ekranie GNU lub sesji Tmux, TERM=screen
emacs używa innego zestawu kolorów w porównaniu do kiedy TERM=xterm
.
Na przykład, kiedy TERM=xterm-256color
kolor pierwszego planu font-lock-comment-face
to „Firebrick”. Ale kiedy TERM=screen-256color
jest ustawiony na „czekolada1”.
Aby tmux działał poprawnie, zmienna TERM musi być ustawiona na screen lub jakąś pochodną, więc resetowanie TERM nie jest dla mnie opcją.
TERM=xterm emacs
aby wymusićTERM
ustawienie zmiennej dla emacsa. Co się stanie, kiedy to zrobisz?Odpowiedzi:
Definicja
font-lock-comment-face
obejmuje wiele wariantów dla różnych przypadków pomocy kolorów.chocolate1
wariant jest używany, gdy dostępnych jest co najmniej 88 kolorów, a „tło” jest „ciemne”.Firebrick
wariant jest używany, gdy dostępnych jest co najmniej 88 kolorów, a „tło” jest „jasne”.Różnica jest spowodowana jakimś kodem, który daje szczególne znaczenie wartościom pojęcie, które zaczynają się
xterm
,rxvt
,dtterm
, ieterm
: uzna je mieć „lekkie” tło.Powinieneś być w stanie dostosować
frame-background-mode
* do jegolight
wartości, aby zawsze używać „jasnych” wariantów kolorów.Jeśli Twój Emacs nie jest wystarczająco nowy, aby mieć własny
term/screen.el
, musisz również dostosować go dla siebie, który wykona odpowiednie połączenia dostosowujące kolory. Można użyć jednego z Emacs bagażniku lub mam GIST , która obejmuje.emacs.d/lisp/term/screen.el
(wraz z dodatkowymi bitami rozpoznawać sekwencje modyfikator + strzałki / Home / End dostarczonych przez tmux „sxterm-keys
opcja), a.emacs
modyfikacja potrzebne do niech go automatycznie obciążenie .Oczywiście, nie może być jeszcze inne fragmenty kodu, które bezpośrednio sprawdzić wartość TERM i zrobić coś innego na
screen
- ixterm
-jak wartości ...* Mx dostosuj zmienną ramkę w tle
źródło