Введение
Мой вопрос возникает из-за необходимости понять, почему у меня сейчас (после нескольких испытаний) 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 в вашем случае). Чтобы получить истинное значение, используйте скрипт из моего последнего комментария. Что это возвращает?