Gnome-Terminalは$ TERMが `xterm`であると報告します


21

Ubuntu 12.10のクリーンインストールでは、デフォルトのgnome-terminalは$ TERMをxtermとして報告しますが、実際にはxterm-256colorを報告するはずです。これを変更する最良の方法は何ですか?私はこれを私の.bashrcに入れることを避けています。


2
xtermが間違っている理由を説明することに注意してください。私たちは皆、xtermを持っています。それに加えて、これをbashrcに入れると問題が発生する理由を説明することにも注意してください。
リンツウィンド

4
xtermほとんどのアプリケーションでは、256色モードでは動作しませんので、それはでない限り間違ってはあるxterm-256colorscreen-256color(VIMとtmuxのは、私が気に主なものです)。@Freddyのように、SSH経由で異なる端末タイプから接続している可能性があり、実際にこれを設定するのは端末エミュレーターの仕事であるため、シェルプロファイルでこれらを設定しないことを好みます。私はgnome-terminalが複数のエミュレーションを提供していないことに驚いています。
ジムスチュワート

3
vte-0.40(おそらくUbuntu 15.10に表示されます)はデフォルトをに変更しましたxterm-256colors
エグモント

回答:


17

特に、起動スクリプトを変更しないことをお勧めします~/.bashrc。current $TERMまたは$COLORTERMin を使用する「端末検出」~/.profileは単なる推測であり、前述のように、他の端末(Puttyやxtermなど)を使用するときに問題を引き起こす可能性があります。端末エミュレータはset $TERMになっているはず です。これはシェル内から変更しないでください。

AnoikのGnomeターミナルには、を変更するための設定はありませんが、TERM起動コマンドを変更することができます。それだけで十分です。ここにトリックがあります:

Profile Preferences => Title and Command => Run a custom command instead of my shell

次に、次のコマンドを使用します。

env TERM=xterm-256color /bin/bash

/bin/bash異なる場合は、お好みのシェルに置き換えてください。そして、いいえ、あなたは"$SHELL"シェルの自動検出のためにその行で使用することはできません;)あなたはそれをハードコーディングする必要があります


これらの設定には、「コマンドが終了するとき:」というオプションがあります。オプションは、「端末を終了」、「コマンドを再起動」、「端末を開いたままにする」です。どちらを選択すればよいですか?
カレブジェイ

@CalebJay:どちらを選択しても、そのオプションは端末の色とは関係ありません。コマンドが終了したときにどうするかは、純粋に好みの問題です。
メストレリオン

12

256色を実行できない端末との接続用。

を使用して端末を具体的に検出することをお勧めします$COLORTERM。gnome-terminalの、XFCE4端子などを探して、その後、セット$TERMに変数をxterm-256color

私はそれをします:

if [ "$COLORTERM" = "gnome-terminal" ] || [ "$COLORTERM" = "xfce4-terminal" ]
then
    export TERM=xterm-256color
elif [ "$COLORTERM" = "rxvt-xpm" ]
then
    export TERM=rxvt-256color
fi

4
3.13以降のGnomeターミナルはCOLORTERMもう設定されないことに注意してください。
メストレリオン

2
設定されなくなったバージョンのCOLORTERM場合は、に依存できますVTE_VERSION
エグモント

6

terminfoにxterm + 256color(/usr/share/terminfo/x/xterm+256color)があるのは事実ですが、termcapにはxterm(/usr/share/vte/termcap/xterm)しか$TERMないため、変更することはお勧めできません。

とにかく、$TERMgnome-terminalではなくvteによって設定されます。その環境変数のデフォルト値は、コンパイル時に(configureスクリプトにオプションを指定して)変更するか、vte_pty_set_term()関数を呼び出して変更できます。gnome-terminalのソースを見るvte_pty_set_termと、決して呼び出されないことがわかります。そのため、$TERMgnome-terminalの設定を編集して変更する方法はないと言えます。

あなたがしなければならないのは、次のコードをに置くことです~/.profile

if [ "$TERM" = "xterm" ]
then
    export TERM=xterm-256color
fi

==はbashのみの構文であり、ソースとなるスニペットには使用しないでくださいsh~/.profileDEの場合)。また、var展開を正しく引用しているため、「x $ ..」構文は必要ありません。
メストレリオン

@MestreLion:質問を自由に編集してください。
アンドレアコルベリーニ

試しましたが、AUでは6文字以上の変更が必要であるため、コメント
-MestreLion
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.