私は自分の端末(gnome-terminal)用にすでに設定した16色のパレットを利用するemacs用のカスタムカラーテーマ(ソーラー化)設定を取得しようとしています。
TERM=xterm-256color
を使用して通常の端末からemacsを実行すると、M-x list-colors-display
を正しく取得して、16のANSIカラーすべてを表示できます。赤、緑、明るい緑、明るい赤など。
ただし、tmuxおよびTERM=screen-256color
内から実行すると、M-x list-colors-display
は基本的な8色のみを一覧表示し、拡張された明るい色は表示されません。両方の設定で、(display-color-cells)
を評価すると256色が報告されます。私が見つけることができる明るい色への唯一の参照はLISP/term /xterm.elとLISP/term/rxvt.elにあるので、問題はTERM
設定にあるように思われます。
Tmuxが正しく機能するには、TERM
をscreenまたはscreen-256colorに設定する必要があるため、TERMを別の方法で設定する必要はありません。エイリアスを使用して運が良かった:
alias emacs='TERM=xterm-256color emacs'
Emacsに16のANSIカラーすべての使用を許可するように強制するためのこれよりも良い方法はありますか?
ご覧のとおり、追加の色はTERM固有のライブラリファイルによって構成されています(例:term/LISP)。新しいバージョンのGNU Emacsにはterm/screenが含まれており、term/xtermの色の定義を再利用していますが、あなたのように聞こえますEmacsのバージョンはこれを行いません。
新しいEmacsにアップグレードしたくない場合は、おそらく 要点 のコンテンツを使用できます。これにはterm/screen.el
と、それを有効にするために.emacs
に入れることができるビットが含まれています。そのバージョンのterm/screen.el
には、tmuxのxterm-keys
オプションを有効にした場合に役立つと思われるいくつかの重要な定義も含まれています。
コードのコアビットは次のようになります。
;;; .emacs addition
(add-to-list 'load-path "~/.emacs.d/LISP/")
;;; ~/.emacs.d/LISP/term/screen.el
(load "term/xterm")
(defun terminal-init-screen ()
(xterm-register-default-colors)
(tty-set-up-initial-frame-faces))