Gnome-Terminal сообщает, что $ TERM будет `xterm`

В чистой установке Ubuntu 12.10 терминал gnome по умолчанию сообщает, что $ TERM должен быть xterm, тогда как он действительно должен сообщать о xterm-256color. Каков наилучший способ изменить это? Я избегаю помещать это в мой .bashrc, потому что это просто напрашивается на неприятности.

21
задан 27 December 2012 в 20:03

3 ответа

Вам настоятельно советовали не менять сценарии запуска, особенно ~/.bashrc. Любое «обнаружение терминала» с использованием тока $TERM или $COLORTERM в ~/.profile является всего лишь предположением и может, как вы сказали, вызвать проблемы при использовании других терминалов (например, Putty или xterm). Предполагается, что эмулятор терминала должен установить $TERM, и это не должно быть изменено изнутри оболочки.

Терминал Gnome, AFAIK, не предлагает конфигурацию для изменения его TERM, но позволяет изменять команду запуска, и это все, что вам нужно. Вот хитрость:

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

Затем используйте следующую команду:

env TERM=xterm-256color /bin/bash

Просто замените /bin/bash на предпочитаемую вами оболочку, если она другая. И нет, вы не можете использовать "$SHELL" в этой строке для автоопределения оболочки;) Вы должны жестко закодировать его

0
ответ дан 27 December 2012 в 20:03

Хотя у terminfo есть xterm + 256color (/usr/share/terminfo/x/xterm+256color), а у termcap есть только xterm (/usr/share/vte/termcap/xterm), поэтому изменение $TERM не рекомендуется.

Так или иначе, $TERM устанавливается не терминалом gnome, а vte. Значение по умолчанию для этой переменной среды может быть изменено либо во время компиляции (давая возможность скрипту конфигурации), либо путем вызова функции vte_pty_set_term(). Глядя на источники gnome-терминала, я вижу, что vte_pty_set_term никогда не вызывается, поэтому я могу сказать, что нет способов изменить $TERM путем редактирования настроек gnome-терминала.

Что вам нужно сделать, это поместить следующий фрагмент кода в ваш ~/.profile:

if [ "$TERM" = "xterm" ]
then
    export TERM=xterm-256color
fi
0
ответ дан 27 December 2012 в 20:03

Для соединения с терминалом, который не может выполнять 256 цветов.

Было бы намного лучше обнаружить терминал специально с помощью $COLORTERM. Найдите gnome-терминал, 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
0
ответ дан 27 December 2012 в 20:03

Другие вопросы по тегам:

Похожие вопросы: