web-dev-qa-db-ja.com

Linuxコンソールで256色

.bashrcにあります

export TERM=xterm-256color

ただし、これにより、Linuxコンソールですべての色付きテキスト(ls --color、vimなど)が点滅します(Ctrl+Alt+F1)。

それで、私がどの端末(Linuxコンソールまたは疑似tty)にいるのかを認識して、有効な値でTERM変数をエクスポートできる可能性はありますか?

[編集]

私は代替の解決策だけを見つけました:

vimユーザー用(.vimrc内)

set t_Co=256

または.Xdefaultsのxtermの場合(その後xrdb -load .Xdefaults)

XTerm*termName:         xterm-256color

または画面用(.screenrc)

term screen-256color
5
PaulP

TERM変数をまったくエクスポートしないようにしてください。これは、端末自体が適切な値に設定する必要があります。 Linuxコンソールはこれをlinuxに設定する必要がありますが、さまざまなXベースのターミナルプログラムが設定した値を使用する場合があります。

これは、環境を認識しない場所にSSHで接続する場合のように、デフォルト値が機能しない場合や渡されない場合のオーバーライドとしてのみ設定する必要があります。

9
Caleb

コンソールの$ TERMはlinux、[1]なので、次のようにテストを作成できます。

if [ "$TERM" = "linux" ]; then
...

Caleb notes のように、環境変数TERMをエミュレートする端末のタイプに設定することはお勧めできません。

詳細については、 http://tldp.org/HOWTO/Text-Terminal-HOWTO-10.html#term_not_for_emulation を参照してください。

[1]カーネルバージョン1.3.2以降、コンソールのカーネルデフォルトはTERM = linuxです。

http://tldp.org/HOWTO/Keyboard-and-Console-HOWTO-11.html

5
jasonwryan