3

ターミナル ウィンドウのカラー テキストについて学習しようとしています。(重要な場合は、OS X で Terminal.app を使用しています。) 端末の現在の前景色と背景色のペアを取得したいと思います。Term::Cap ライブラリを使用して perl スクリプトでこの情報を取得できるはずですが、解決策がわかりません。

perl スクリプトでは、端末の現在の前景色と背景色のペア値をどのように照会しますか?

4

3 に答える 3

2

私は、ほとんどの端末がこれを報告することをサポートしていないと思います -- そして、termcap や terminfo にそれに対するエントリがあるようには見えません。必要に応じて色のペアを設定するだけで、端末に現在の設定を尋ねる必要はありません。ECMA-48 標準 (ANSI X3.64 にちなんで "ANSI" として知られている) では、色を参照する唯一のコマンドは SGR "Set Graphic Rendition" であり、これは純粋に書き込み専用です。

于 2011-02-14T04:08:51.363 に答える
2

この機能は、terminfo と termcap の範囲外です。端末の応答を扱うためです。terminfo/termcap はこれらの機能について説明しています。

  • 端末に一般的に実装されている機能(画面のクリアなど) を実行するように指示する方法、または
  • 特殊キー( などHome) がキーボードから送信する文字シーケンス。

原則として、端末の説明の一部になる可能性のあるものに制限はありませんが、1980 年代には端末間での応答の共通性はほとんどありませんでした。いくつかの端末は特定の機能を報告できましたが、それらのほとんどは一定でした (バージョン情報など)。さまざまな反応のほとんどは、X/Open Curses で terminfo/termcap が多かれ少なかれ固まった後に来ました。 ncurses はそれを拡張しますが、拡張機能のほとんどは機能または特殊キーのいずれかです。

Terminal.app は の最も一般的に使用される機能を実装しますがxterm、(他の模倣者と同様に) 端末応答のほとんどを省略します。とりわけxterm、ウィンドウの現在の色をアプリケーションに伝えることができる端末応答を提供します。この情報を使用するために作成された 2 つのコマンドライン ユーティリティ (xtermsetおよびxtermcontrol) があります (繰り返しになりますが、これらはレパートリーの一部しかカバーしていません)。を使用xtermcontrolすると、この領域で Terminal.app が不足していることがわかります — スクリーンショットを参照してください:

Terminal.app と xtermcontrol を使用した xterm を示すスクリーンショット

于 2017-12-28T15:17:23.983 に答える
1

perl や Terminal.app についてはわかりませんが、xterm などは前景/背景色の制御シーケンスを stdin に出力すると"\033]10;?\07""\033]11;?\07"それぞれを出力します。特にhttp://invisible-island.net/xterm/ctlseqs/ctlseqs.htmlhttp://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Operating-System-Controlsを確認してください。

于 2015-07-18T19:12:22.743 に答える