$ TERM変数を手動で設定することは正しいですか?


10

$TERMXTerm*termName: xterm-256color.Xresourcesファイルに追加する変数を設定しました。私がそれをしたとき、私はそれが何を意味するのか正確には知りませんでした(私はの外観を変更するためにオンラインガイドに従っていましたxterm)、今私はもう少し読んで、私がしたことが間違っているかどうか心配しています。具体的には、$TERM変数を手動で設定することに問題があることを知りたいのです。その場合、どうすれば間違いを元に戻すことができますか。

必要に応じて、私はFedora 20をで実行していxtermます。


これはプログラミングに関する一般的な質問です。何をするかによります。当然のことながら、デスクトップ環境があり、リモート接続がない場合は、問題ないかもしれません。そうでない場合は、考えられるすべてのケースをエラーチェックで処理する必要があります。
41754 14年

@uprego「リモート接続がないこと」について詳しく教えてください。
Santaru72 2014年

256色オプションの永続的なtmuxセッションを使用している可能性がありますが、sshセッションからアタッチすると、考えられるシナリオが広がりすぎてリストになりません。各アプリケーションには、各プログラマーの能力に応じて、望ましい効果があるかどうかが異なります。@goldilocksが彼の答えで指摘しているように危険ではないはずですが、「するべきではない」と「できてはならない」の間には違いがあります。
41754 2014年

@uprego:現実的には、判読できない出力を「危険」としてカウントしない限り、「できない」と言っておくべきでした。
goldilocks 2014年

回答:


7

ほとんどの場合、TERM手動で設定しないでください。変数は常に自動的に設定され、デフォルト値が正しくない状況は限られています。

の値はTERM、システムのterminfoデータベース(または、いくつかの古風なシステムでは、termcapデータベース)で参照する必要があります。TerminfoおよびTermcapは、端末タイプを、アプリケーションが使用する端末機能の説明にマップします。の値TERMは端末タイプです。

変更TERMが必要になる場合がある主な理由は、ローカルマシンとリモートマシンのターミナルデータベースが異なるときに、リモートでログインする場合です。

前のものに関連するもう1つの理由は、わずかに異なる機能を持つ端末に複数の同様のエントリがある場合があることです。これは主に、既存の端末と互換性があるが、より多くの機能を備えた新しい端末が登場したときに発生する傾向があります。次に、すべてのマシンが理解できるが、従来の機能のみをアドバタイズする従来の名前を使用するか、すべての新機能をアドバタイズするが一部のマシンが理解しない新しい名前を使用するかを選択します。

この例は、16色のxtermと256色のxtermです。従来のxtermは16色のみをサポートしているため、xtermターミナルデータベースはそれを指定しています。xtermエントリを変更すると、新しいxtermバージョンのユーザーは満足しますが、リモートでログインする古いxtermバージョンのユーザーの設定は壊れます。新しい名前への切り替え—  xterm-256color—利用可能な場合は常に新しい機能を提供しますが、古いターミナルデータベースを備えたマシンにリモートでログインした場合は認識されません。誰もが満足できる解決策はないので、選択肢xtermはあります。256色を使い続けないか、xterm-256colorそれをサポートしないリモートマシンにログインした場合は機能しない色を使用します。

したがって、デフォルト値のままにしxtermtermNameリソースを設定するxterm-256color(これにより、環境変数TERMが同じ値に設定される)ことは、どちらも賢明な選択です。設定TERM作業が、両方の任意の値にはないxtermし、xterm-256colorメイク感覚。


3

$ TERM変数を設定して、XTerm * termName:xterm-256colorという行を.Xresourcesファイルに追加します。

自分が何をしたかを認識している限り、それは問題ありません。ほとんどのGUI端末がこれをサポートしています。

コマンドラインまたはスクリプトで設定することもできます

export TERM=xterm-256color

これは、そのターミナルまたは後続の子にのみ適用されます。

移植可能なデフォルトはちょうどxterm16で、これは16色サポートを意味します。256色セットがあり、端末がそれをサポートしていない場合、256色TUIアプリを実行すると奇妙に見えます。あなたはおそらくすぐに気づくでしょう。しかし、それは危険ではありません。


だから私ではXTerm*termName: xtermなく設定XTerm*termName: xterm-256colorで大丈夫だよね?
Santaru72 2014年

それが必要な場合は、何も設定しないでください。;)xtermのデフォルトですが、xterm16色を意味します。使用の主なポイントは、端末が256色をサポートxterm-256colorすることをアプリケーション伝えることです。そうしないと、16色と見なされます。
goldilocks 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.