Введение
Мой вопрос возникает из-за необходимости понять, почему у меня сейчас (после нескольких испытаний) Terminal и tmux, поддерживающий 256 цветов, и tput colorsсказано, что их всего 8.
Фон
Начнем с самого начала.
Я использую Ubuntu box, Guake , tmux , Vim и мне нравится тема Solarized . Они выглядели довольно ужасно, поэтому я решил включить поддержку 256 цветов и немного поиграть.
Посмотрим, что будет с моим терминалом . tput colorsговорит, что есть 8 цветов. Я лично установил их на фиолетовый, слева, и, конечно, справа у нас есть 2 разных оттенка синего. $TERMговорит xterm. (Чтобы покрасить lsя eval это по моему .bashrc.)

Vim также выглядит хорошо, несмотря на то, что я вызываю его с 256флагом в среде, где 256 цветов не поддерживаются.
set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized
Единственный парень, который жалуется на ограниченное цветовое пространство, это tmux . Вызов tmuxдает «неправильные» ожидаемые результаты.

Но колл tmuxс -2флагом заставляет все работать как по волшебству .

Теперь единственное, что я понимаю, это то, что -2эквивалентно export TERM=screen-256color( источник ).
Guake ведет себя аналогично терминалу, и оба они отвечают xtermна вопрос echo $TERM.
Вопрос
В принципе, кто-нибудь понимает, почему все работает, даже если не должно?
- Я садист, что жалуюсь, почему все работает? Может быть.
- Есть ли лучшая причина? Конечно: я хотел бы исправить появление других коробок Ubuntu в моем офисе, и я хотел бы понять, почему все работает или не работает.
Дополнительные эксперименты
Запуск этого скрипта (слегка измененного) в my xtermдает следующий результат: 256 цветов, но только 16 отображаются правильно.

Затем, меняя профиль терминала, меняются и эти 16 цветов.

Следующие тесты
Слева направо, сверху вниз, у нас есть цветовая тема Solarized , dircolor ansi-darkа 256darkзатем цветовая схема по умолчанию ( Tango ) dircolor ansi-darkи 256dark.

Замечание : в теории цветовая гамма dircolor ansi-darkна соляризации должна соответствовать dircolor 256dark. Это явно не происходит для конкретных перечисленных файлов. Вместо этого это происходит, когда в рабочем каталоге есть папки , текстовые файлы и символические ссылки . Вывод : не так много внимания уделено кодированию 256darkцветов.
Предварительные выводы
xtermподдерживает 256 цветов, несмотря на то, что tput colorsговорит. Программы могут ссылаться на ansiпалитру (настраиваемую пользователем) или определять свои цвета, выбирая в общей сложности 256 цветов.
tput colorsэто ненадежный тест. Не могли бы вы проверить мои предварительные выводы ?
tput colorsможет возвращаться только одно значение, а в терминалах, которые поддерживают любой из 2,8,16,88 или 256 цветов, возвращается только первое значение (8 в вашем случае). Чтобы получить истинное значение, используйте скрипт из моего последнего комментария. Что это возвращает?
пожалуйста, щелкните правой кнопкой мыши / просмотрите изображение для проверки в полном разрешении
соляризации «деградирует» dircolors ссылка на карту