Вступ
Моє запитання виникає з необхідності розуміння того, чому у мене зараз (після декількох випробувань) термінали та tmux підтримують 256 кольорів і tput colors
кажуть, що їх лише 8.
Фон
Почнемо з початку.
Я використовую коробку Ubuntu , 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
( джерело ).
Гуаке поводиться аналогічно Терміналу, і вони обидва відповідають xterm
на питання echo $TERM
.
Питання
По суті, хтось розуміє, чому все працює, навіть якщо не повинно?
- Чи я садист, що я скаржуюся, чому все працює? Може бути.
- Чи є краща причина? Впевнений: я хотів би виправити появу інших скриньок Ubuntu у своєму кабінеті, і я хотів би зрозуміти, чому все працює чи не працює.
Додаткові експерименти
Запуск цього сценарію (трохи змінений) на моєму xterm
дає наступний результат: 256 кольорів, але лише 16 відображаються правильно.
Потім, змінюючи профіль терміналу, також змінюються ці 16 кольорів.
Ще тести наступні.
Зліва направо, зверху вниз, ми маємо кольорову тему Соляризовану , dircolor
ansi-dark
а 256dark
потім кольорову гаму за замовчуванням ( Танго ) 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 у вашому випадку). Щоб отримати справжнє значення, використовуйте скрипт з мого останнього коментаря. Що це повертає?