tmux私の端末のテキストにスタイルを適用するためにエスケープシーケンスが必要ではないのはなぜですか?

tmux私の端末のテキストにスタイルを適用するためにエスケープシーケンスが必要ではないのはなぜですか?

0ANSIの色を赤にするには、端末はurxvtシーケンスを\e]4;0;red\a後者に渡す必要があります。

printf '\e]4;0;red\a'

一般的な構文が見つかりました。ここ:

OSC 4 ; c ; spec BEL

内部的にはtmux機能しません。それはおそらくtmux端末の前に消費されたからです。したがって、見つかった他のシーケンスでそれを保護する必要があります。ここ:

printf '\ePtmux;\e\e]4;0;red\a\e\\'

下線を引くなど、特定のスタイルをテキストに適用するには、内部で行っても外部で行っても構いませんtmux。常に同じ順序が機能しているようです。

printf '\e[4m underline \e[0m'

(セクション)で説明されているように、非公式のterminfo拡張子を追加および設定し、内部カーソルの外観を変更するオプションを設定したので、~/.tmux.confこれらの違いを説明できると思いました。terminal-overridesSsSetmuxman tmuxTERMINFO EXTENSIONS

set-option -as terminal-overrides ',*:Ss=\E[%p1%d q:Se=\E[2 q'

ただし、内部テキストにスタイルを適用しようとすると、構成tmuxなしで後者を起動します。

tmux -Ltest -f/dev/null

内部的に必要なだけシーケンスを保護tmuxする必要がないのはなぜですか?\e[4m underline \e[0m\e]4;0;red\a

ベストアンサー1

tmuxXTermではありません(XTerm内で使用しても)。これは使用中のすべての端末の上に配置され、独自の端末エミュレータ(もちろんマルチプレクサ)として機能します。あなたがリンクしたページはXTerm制御シーケンス用であり、(非常に便利ですが)すべての端末で動作するわけではありません。の場合、screenオンラインマニュアルページでscreen(1)許可されている制御シーケンスが表示されています。 tmux(1)同様のセクションは含まれていませんが、現在の動作は厳密に文書化されていませんが、少なくとも数年前に作成者の目標を反映している1984年の端末のさまざまな制御シーケンスの古い説明がありますtools/ansicode.txt

とにかく、テキスト属性を設定するためのSGRシーケンスは、カラーパレットを変更するために使用されるような「オペレーティングシステムコマンド」よりも一般的にサポートされています。同じリンクページから:

CSI午後m役割属性(SGR)

  • Ps = 0 ->正常(デフォルト)。
  • Ps = 1 -> 太字で表示されます。
  • Ps = 2 ->弱くて低下した強度(ISO 6429)。
  • Ps = 3 ->イタリック体(ISO 6429)。
  • Ps = 4 ->下線
  • Ps = 5 ->点滅(X11R6 xtermでは太字で表示)。
  • Ps = 7 ->逆。
  • Ps = 8 -> 見えない、つまり非表示(VT300)。
  • Ps = 9 - >行が引かれた文字(ISO 6429)。
  • Ps = 2 1 ->二重下線(ISO 6429)。
  • Ps = 2 2 ->通常(大胆でも薄暗くもありません)。
  • Ps = 2 3 ->イタリック体ではない(ISO 6429)。
  • Ps = 2 4 ->下線なし。
  • Ps = 2 5 ->安定(点滅しない)。
  • Ps = 2 7 - >正(逆数ではありません)。
  • Ps = 2 8 -> 表示されます。つまり、隠されません(VT300)。
  • Ps = 2 9 - >消去されない(ISO 6429)。
  • Ps = 3 0 -> 前景色を黒に設定します。
  • Ps=3 1 -> 前景色を赤に設定します。
  • Ps=3 2 -> 前景色を緑色に設定します。
  • Ps=3 3 -> 前景色を黄色に設定します。
  • Ps=3 4 -> 前景色を青色に設定します。
  • Ps=3 5 -> 前景色をマゼンタ色に設定します。
  • Ps = 3 6 -> 前景色をターコイズ色に設定します。
  • Ps = 3 7 -> 前景色を白に設定します。
  • Ps = 3 9 - >前景色をデフォルト値(元)に設定します。
  • Ps = 4 0 - >背景色を黒に設定します。
  • Ps=4 1 -> 背景色を赤に設定します。
  • Ps=4 2 -> 背景色を緑色に設定します。
  • Ps = 4 3 - >背景色を黄色に設定します。
  • Ps = 4 4 - >背景色を青に設定します。
  • Ps = 4 5 - >背景色をマゼンタ色に設定します。
  • Ps = 4 6 - >背景色をターコイズ色に設定します。
  • Ps = 4 7 - >背景色を白に設定します。
  • Ps = 4 9 - >背景色をデフォルト値(元)に設定します。

(予感があります。午後オリジナルPSプロジェクトに合わせて。 )

tmuxこれはアプリケーションで頻繁に使用され、ユーザーがサポートの欠如によって不満を感じる可能性があるため、これを直接サポートするのが合理的です。

\033]P0ff0000\033\\Linuxコンソールは、パレットインデックス0をred:に設定するために別のエスケープシーケンスを使用することにも注目する価値があります。通常はパレットインデックス(16進数で表されます)、色はOSC P n rr gg bb ST(16進数で表される)です。nrr gg bb

おすすめ記事