web-dev-qa-db-ja.com

$ TERM環境変数に基づくemacsの色

Gnu screenまたはtmuxセッションで実行しているときに、TERM=xtermのときと同じ色を使用して、emacsを作成できるかどうかを知りたいです。 gnu screenまたはtmuxセッションでは、TERM=screenとemacsは、TERM=xtermの場合とは異なる色のセットを使用します。

たとえば、TERM=xterm-256colorの場合、font-lock-comment-faceの前景色は「耐火レンガ」です。ただし、TERM=screen-256colorの場合は、「chocolate1」に設定されます。

Tmuxが正しく機能するには、TERM変数必須をscreenまたは派生物に設定する必要があるため、TERMをリセットすることはできません。

9
ALiX

font-lock-comment-face の定義には、さまざまな色のサポートの場合の多くのバリエーションが含まれています。

  • chocolate1バリアントは、88色以上が使用可能で、「背景」が「暗い」場合に使用されます。
  • Firebrickバリアントは、88色以上が使用可能で、「背景」が「明るい」場合に使用されます。

この違いは、xtermrxvtdtterm、およびetermで始まるTERM値に特別な意味を与えるコードによって引き起こされます。 「明るい」背景を持っています。

frame-background-modeをカスタマイズできるはずです*light値に変更して、常に「明るい」カラーバリエーションを使用します。

Emacsが独自のterm/screen.elを持つほど新しくない場合は、適切な色調整呼び出しを行うEmacsを自分に合わせて調整する必要もあります。 Emacsトランク のものを使用するか、.emacs.d/LISP/term/screen.el(修飾子+矢印/ホーム/を認識するための追加ビットを含む)を含む 要点tmuxxterm-keysオプション)によって提供される終了シーケンス、および自動的にロードするために必要な.emacs変更。

もちろん、TERM値を直接チェックし、screen-とxtermのような値に対して異なる処理を実行するコードの他のビットがまだ存在する可能性があります…

* M-xカスタマイズ変数フレームバックグラウンドモード

3
Chris Johnsen