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


9

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

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

tmuxが正しく機能するためには、TERM変数をscreenまたは何らかの派生物に設定する必要があるため、TERMをリセットすることは私にとってオプションではありません。


(コメントしたいのですが...)emacsを次のTERM=xterm emacsように実行してみたかどうかはわかりませんTERM。それを行うとどうなりますか?
verdammelt

私は現在それを実験しています。私はまだ起こっている悪いことを検出していません。tmuxはxtermのキーシーケンスを出力するように構成できるようです(ただし、TERM = xtermはまだサポートされていません)。tmux FAQに基づいて、tmuxは画面だけでなく将来的にxtermをサポートするようになるかもしれません。
ALiX

回答:


3

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

  • chocolate1そこに少なくとも88色をご用意していると「背景」は「暗い」であるとき、バリアントが使用されています。
  • このFirebrickバリアントは、少なくとも88色が利用可能で、「背景」が「明るい」場合に使用されます。

差がで始まるTERMの値に特別な意味を与えるいくつかのコードによって引き起こされるxtermrxvtdtterm、とeterm:それは「光」の背景を持っているためにそれらを考えています。

frame-background-mode*をそのlight値にカスタマイズして、常に「明るい」カラーバリエーションを使用できるようにする必要があります。

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

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

* Mx Customize-variable frame-background-mode

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.