![tmux 256 色ターミナルでの 256 色出力、8 色ターミナルでの 8 色出力](https://rvso.com/image/164713/tmux%20256%20%E8%89%B2%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%A7%E3%81%AE%20256%20%E8%89%B2%E5%87%BA%E5%8A%9B%E3%80%818%20%E8%89%B2%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%A7%E3%81%AE%208%20%E8%89%B2%E5%87%BA%E5%8A%9B.png)
tmux
256色モードを自動的に選択するようにしたい、つまり環境変数を用意したい
TERM=tmux-256color
内部 tmux
環境変数
TERM=xterm-256color
設定された外。
デフォルトの動作
256 色ターミナルエミュレータ
現在の動作では、tmux
いずれの場合でも8色モードを選択します。256色をサポートするターミナルエミュレータ(Gnome Terminalまたはxterm)を使用し、256色をサポートしていることを確認してください。
echo $TERM; tput colors
# xterm-256colors
# 256
次に開始しますtmux
。デフォルトではtmux
8 色に切り替わります。
echo $TERM; tput colors
# screen
# 8
8色端末エミュレータ
代わりに8色端末に切り替えると、つまり/dev/tty2
Ctrl+Alt+F2を押して切り替えると、次のようになります。
echo $TERM; tput colors
# linux
# 8
そしてtmux
同じ古い
echo $TERM; tput colors
# screen
# 8
強制256色モード
tmux
256色モードを強制的に選択できる以下を追加することで~/.tmux.conf
set -s default-terminal "tmux-256color"
しかし、これは、外部端末エミュレータそもそも 256 色をサポートしていませんでした。これは私が望んでいるものではありません。
アダプティブ256色モード
がある問題そしてよくある質問GitHubでは、(矛盾するパラメータを報告している人々がいる)
set -ga terminal-overrides ",xterm-256color*:Tc"
set -sa terminal-overrides ",xterm-256color*:Tc"
set -ga terminal-overrides ",*256col*:Tc"
set -sa terminal-overrides ",*256col*:Tc"
tmux
ターミナルのカラーモードを選択する必要がありますが、私のインストール (Arch 上の tmux 3.0) ではどれも動作しません。
tmux
現在のターミナル エミュレーターがサポートしている色に応じて、8 色または 256 色を選択できるようにする確実な方法はありますか?
答え1
これは、すでに実行中のプログラムの TERM を変更することはできないため、実際には tmux 自体で完全に実行できるものではありません。たとえば、xterm-256color で端末からデタッチし、xterm で端末に再アタッチする場合などです。
ただし、自分で行うことも可能です。クライアントの TERM は client_termname 形式で利用できます。そのため、PS1 や .profile などに次のような内容を含めることができます。
if [ -n "$TMUX" ]; then
T=$(tmux display -p '#{client_termname}')
case "$T" in
*-256color)
export TERM=tmux-256color
;;
*)
export TERM=tmux
;;
esac
fi
当然、未接続セッションでペインを作成する場合 (client_termname は空になります)、これはデフォルトで tmux になり、複数のクライアントに接続されたセッションがある場合は、最後に使用したクライアントの TERM になります。
このようにシェルで実行したくない場合は、クライアント接続フックを使用して default-terminal を変更できますが、これは新しいペインにのみ適用され、既存のペインには適用されません。
もう 1 つのオプションは、常に tmux-256color で実行し、外部のターミナルが 256 色に対応していない場合に tmux で色を下げて変換することです。
Tc に関する FAQ の内容はすべて RGB カラー (トゥルーカラー) に関するものであり、あなたが尋ねている内容ではありません。