Quero saber se é possível fazer com que o emacs, ao executar em uma tela gnu ou sessão do tmux, use as mesmas cores de quando TERM=xterm
. Em uma tela gnu ou sessão tmux, o TERM=screen
emacs usa um conjunto diferente de cores em comparação com quando TERM=xterm
.
Por exemplo, quando TERM=xterm-256color
, a cor do primeiro plano font-lock-comment-face
é 'Firebrick'. Mas quando TERM=screen-256color
, é definido como 'chocolate1'.
Para o tmux funcionar corretamente, a variável TERM deve ser configurada como screen ou alguma derivada, portanto, redefinir o TERM não é uma opção para mim.
TERM=xterm emacs
forçar aTERM
configuração variável para o emacs. O que acontece quando você faz isso?Respostas:
A definição de
font-lock-comment-face
inclui muitas variantes para casos de suporte de cores variadas.chocolate1
variante é usada quando há pelo menos 88 cores disponíveis e o "fundo" é "escuro".Firebrick
variante é usada quando há pelo menos 88 cores disponíveis e o "fundo" é "claro".A diferença é causada por um código que dá significado especial para valores termo que começam com
xterm
,rxvt
,dtterm
, eeterm
: considera-los a ter um fundo “light”.Você deve poder personalizar
frame-background-mode
* ao seulight
valor para sempre usar as variantes de cores "claras".Se o seu Emacs não é novo o suficiente para ter o seu
term/screen.el
, você também precisará adaptar um para si mesmo, que faça as chamadas de ajuste de cor apropriadas. Você pode usar o de tronco Emacs , ou eu tenho uma essência que inclui uma.emacs.d/lisp/term/screen.el
(com alguns bits extras para reconhecer as seqüências modificador + setas / Home / End fornecidos pelo tmux ‘sxterm-keys
opção), ea.emacs
modificação necessária para deixá-lo de carga automaticamente .Claro, ainda pode haver outros pedaços de código que verificam diretamente o valor a longo prazo e fazer algo diferente para
screen
- exterm
-como valores ...* Modo de quadro de fundo variável variável Mx
fonte