termcapの明るい背景

termcapの明るい背景

明るい色の背景を表示するために実行中のプログラムを取得しようとしていますが、明るさの増加を適用する代わりに、プログラムは「一般」色の背景を表示します。

いくつかの詳細を追加します。

  • PuTTYを介してDebianを実行しているサーバーにログインし、TERM変数をに設定しますputty(または手動で実行しますexport TERM=putty)。
  • 正しく表示されたら、まず明るい背景を試してみました。

    echo -e "\e[43mHello\e[0m \e[103mWorld\e[0m"
    

    ご覧のとおり、これは\e[43m背景を黄色に設定するコードであり、これは背景\e[103m色を明るい黄色に設定するコードです。下の画像は実際に動作していることを示しています。

    通常の背景と明るい黄色の背景の両方で動作します。

  • 次に、明るい背景を表示したいプログラムを実行します。このプログラムはACUCOBOLランタイムです。このマニュアルでは、* nixオペレーティング・システムで使用されている場合は、TERM値を読み取り、その値として読み取ろうとし、/etc/a_termcap正しい端末機能を選択することを示しています。 Windows クライアントは端末機能情報を使用しません。

    ファイルのエントリはa_termcap次のとおりです。

    putty|/PuTTY Colors:\
        :k1=\E[[A:k2=\E[[B:k3=\E[[C:k4=\E[[D:k5=\E[[E:k6=\E[17~:k7=\E[18~:\
        :k8=\E[19~:k9=\E[20~:k0=\E[21~:K1=\E[23~:K2=\E[24~:\
        :KE=\E[4~:KI=\E[2~:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:\
        :kh=\E[1~:al=\E[L:dl=\E[M:KX=\E[3~:li#25:DI=\E[m:kN=\E[G:kP=\E[I:\
        :cl=\E[;H\E[J:cm=\E[%i%d;%dH:ce=\E[K:cd=\E[J:DL:nd=\E[C:\
        :RV=\E[7m:HI=\E[0;1m:LO=\E[m:BL=\E[5m:UL=\E[4m:RB=\E[5;7m:RU=\E[4;7m:\
        :C1=\E[30m:C2=\E[34m:C3=\E[32m:C4=\E[36m:C5=\E[31m:C6=\E[35m:\
        :C7=\E[33m:C8=\E[37m:AC:\
        :B1=\E[40m:B2=\E[44m:B3=\E[42m:B4=\E[46m:B5=\E[41m:B6=\E[45m:\
        :B7=\E[43m:B8=\E[47m:UL@:RU@:\
        :GO=\016:GF=\017:\
        :GM=\161\170\154\153\155\152\166\164\167\165\156:
    

    問題は値がほとんど読めないという点ですが、C1...C8B1...というコードはB8それぞれ前景色と背景色を指しているようです。

私の考えでは、ランタイムがこのコードについて知らないようです\e[100m\e[107mこの問題をどのように解決できますか?


編集する

何とかできると思います。できる白黒を明るくします。以下のスクリーンショットは、白黒の明るく一般的な変形を可能にします。

黒と白の明るい


編集する

端末エミュレータ名をに変更しputty、それに応じて変数を設定しましたTERM。しかし、私はそれが重要ではないと思います。

ベストアンサー1

短い:あなたはできません

長いアクコボルサポートページでは、termcapフィールドが何であるかを説明します。それは知っている8色、あなたの例では、次のものを使用すると予想しています。aixterm 16カラーコントロール。 16色すべてを処理することは、termcapアプリケーションの機能を超えています(代わりに独自の文字列をだましてフォーマットしない限りtgoto)。

すべての背景に明るい色を使用することができますが、一部のシーンは明るく、他のシーンは明るくすることはできません。変更する必要があるのは次のとおりですB1B8通常、番号付け規則では、色は0〜7です)。

:B1=\E[40m:B2=\E[44m:B3=\E[42m:B4=\E[46m:B5=\E[41m:B6=\E[45m:\
:B7=\E[43m:B8=\E[47m:

40 を 100 に、41 を 101 に変更するように進みます。

しかし、TERM=linuxあなたが提供したエスケープシーケンスの例と一致しません(Linuxコンソールの16色は次のものを組み合わせて達成されるためです)。勇敢な色0-7に置き換えます。つまり、40渡す40;1、等)。アイテムをコピーし、最初の行で名前を変更できます。

linux|/Linux system console:\

より適切なものとして、例えば

putty|bright-backgrounds:\

termcapの説明はサポートされていないため、2つの範囲(40〜47、100〜107など)の値を生成することはできません。表現。 terminfoの説明(ACUCOBOLではサポートされていないようです)がこれを行います。たとえば、ncursesでは16種類のカラーLinux説明する。実際に使用する端末を含む他の端末にも同様の説明があります。

おすすめ記事