При чистой установке Ubuntu 12.10 терминал gnome по умолчанию сообщает, что $ TERM должен быть xterm, тогда как он действительно должен сообщать xterm-256color. Каков наилучший способ изменить это? Я избегаю помещать это в мой .bashrc, потому что это просто напрашивается на неприятности.
gnome-terminal
Фредди
источник
источник
xterm
неверно, потому что большинство приложений не будут работать в 256-цветном режиме, если это неxterm-256color
илиscreen-256color
(vim и tmux являются основными, которые меня интересуют). Как и @Freddy, я бы предпочел не устанавливать их в своем профиле оболочки, потому что я могу подключаться с другого типа терминала через SSH, и потому что это действительно задача эмулятора терминала, чтобы установить это. Я поражен тем, что gnome-терминал не предоставляет несколько эмуляций.xterm-256colors
.Ответы:
Вам настоятельно советуют не менять сценарии запуска, особенно
~/.bashrc
. Любое «обнаружение терминала» с использованием current$TERM
или$COLORTERM
in~/.profile
является просто предположением и может, как вы сказали, вызвать проблемы при использовании других терминалов (скажем, Putty или xterm). Предполагается, что эмулятор терминала должен быть установлен$TERM
, и это не должно изменяться внутри оболочки.Терминал Gnome, AFAIK, не предлагает конфигурацию для изменения своей конфигурации
TERM
, но позволяет изменять команду запуска, и это все, что вам нужно. Вот хитрость:Затем используйте следующую команду:
Просто замените
/bin/bash
предпочитаемую оболочку, если она другая. И нет, вы не можете использовать"$SHELL"
в этой строке для автоопределения оболочки;) Вы должны жестко закодировать егоисточник
Для соединения с терминалом, который не может сделать 256 цветов.
Было бы гораздо лучше обнаружить терминал специально с
$COLORTERM
. Найдите gnome-терминал, xfce4-терминал и т. Д., А затем установите для$TERM
переменной значениеxterm-256color
.Я делаю это с:
источник
COLORTERM
.COLORTERM
вы можете положитьсяVTE_VERSION
.Хотя у 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
:источник
==
является синтаксисом только для bash, не используйте его для фрагментов, предназначенных для поискаsh
(как в случае с~/.profile
DE). Кроме того, синтаксис "x $ .." не нужен, поскольку вы правильно цитируете расширение var.