8

私の端末では 256 色が問題なく動作しています (テスト スクリプトはこちら) が、(Ruby-ncurses 経由で) ncurses を使用すると動作しなくなります。そのページに記載されているエスケープ シーケンスの印刷は正常に機能しますが、ncurses を初期化すると「puts」が機能しなくなり、見つけたさまざまな ncurses の色変更/文字列出力関数のいずれでも色を出力できません。何を与える?

4

3 に答える 3

7

これがすべての話かどうかはわかりませんが、端末の機能が実際に 256 色の説明を提供していることを確認してください。

TERM 環境変数の値は何ですか? xterm-256color に設定して再実行してみてください。ncurses は適切な色のエスケープ シーケンスを取得する必要があります。

SXEmacs 開発で使用するプログラムを使用して、端末の機能と端末の色出力をテストすることもできます。

http://www.triatlantico.org/tmp/tty-colors.c

gcc -o tty-colors tty-colors.c -lncurses でコンパイルします。

EDIT:ネット上で見つかったスクリプトが256色を出力するという理由だけで、それは「すべて設定」されていないことに注意してください。curses プログラムは、terminfo と termcap、および TERM 環境変数に依存して、端末と対話する方法を見つけます。したがって、curses アプリが 256 色を使用できるようにするには、256 色をサポートする既存の端末名に TERM 変数を設定する必要があります。上記の C プログラムは、ほとんどのスクリプトのように xterm シーケンスを出力するだけでなく、端末について ncurses がどう考えているかを示します [X.org のものでも]

于 2008-10-05T04:42:22.843 に答える
5

njsf: あなたは部分的にここにいて、さらに多くのことをいじくり回した後、最終的に機能するようになりました。ご協力いただきありがとうございます。ストーリー: XTerm (および rxvt、Eterm) はエスケープ シーケンスを介して 256 色をサポートします (私が見たもの)。 terminfo 経由でアクセスしようとしています。

同様の痛みを持つすべての人のために:

/lib/terminfo/x/xterm-256color およびその他の 256 色の terminfo ファイルを取得するには、ncurses-term (Ubuntu) パッケージをインストールする必要があることがわかりました。次に、TERM を xterm-256color に設定し、「*customization: -color」という行を ~/.Xdefaults に追加し、「xrdb -merge ~/.Xdefaults」を実行してそれをロードし、それ以降は適切な 256 色になりました。新しい xterm でのサポート。

于 2008-10-05T22:18:14.617 に答える
2

設定

ENV['TERM'] += '-256color' if ENV['TERM'] == 'xterm' # 256 色をアクティブ化

ubuntu 10.04 +で動作します

于 2011-09-14T19:55:40.367 に答える