emacs colours in base alla variabile d'ambiente $ TERM


9

Voglio sapere se è possibile creare emacs, quando si esegue in una schermata gnu o in una sessione di tmux, usare gli stessi colori di quando TERM=xterm. In una schermata gnu o in una sessione di tmux, TERM=screenemacs utilizza un diverso set di colori rispetto a quando TERM=xterm.

Ad esempio, quando TERM=xterm-256color, il colore di primo piano di font-lock-comment-faceè "Firebrick". Ma quando TERM=screen-256color, è impostato su "chocolate1".

Affinché tmux funzioni correttamente, la variabile TERM deve essere impostata su schermo o su una derivata, quindi ripristinare TERM non è un'opzione per me.


(Vorrei poter commentare ...) Non mi è chiaro se hai provato a eseguire emacs come: TERM=xterm emacsper forzare l' TERMimpostazione della variabile per emacs. Cosa succede quando lo fai?
verdammelt,

Sto sperimentando con quello al momento. Non ho ancora rilevato nulla di brutto. Sembra che tmux possa essere configurato per emettere sequenze di tasti xterm (sebbene TERM = xterm non sia ancora supportato). Sulla base delle FAQ di tmux, tmux potrebbe venire a supportare xterm in futuro anziché solo sullo schermo.
ALiX,

Risposte:


3

La definizione difont-lock-comment-face include molte varianti per i casi di supporto di colore variabile.

  • La chocolate1variante viene utilizzata quando sono disponibili almeno 88 colori e lo "sfondo" è "scuro".
  • La Firebrickvariante viene utilizzata quando sono disponibili almeno 88 colori e lo "sfondo" è "chiaro".

La differenza è causata da un codice che dà un significato speciale per i valori termine che iniziano con xterm, rxvt, dtterme eterm: si considera loro di avere uno sfondo “light”.

Dovresti essere in grado di personalizzare frame-background-mode* al suo lightvalore per utilizzare sempre le varianti di colore "chiaro".

Se il tuo Emacs non è abbastanza nuovo per avere il suo term/screen.el, allora dovrai anche adattarne uno per te stesso che effettui le chiamate di regolazione del colore appropriate. È possibile utilizzare l'uno dal tronco Emacs , o ho un Gist che include una .emacs.d/lisp/term/screen.el(con alcuni pezzi in più per riconoscere le sequenze modificatore + frecce / Home / End forniti da tmux ‘s xterm-keysopzione), e la .emacsmodifica necessaria per farlo carico automaticamente .

Naturalmente, ci potrebbero essere ancora altri pezzi di codice che verificano direttamente il valore TERM e fare qualcosa di diverso per screen- e xterm-come valori ...

* Mx personalizza-cornice-modalità-sfondo-variabile

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.