Как работает цветовая палитра tmux?

140

Я пытаюсь установить что-то серое, но не могу понять, как. Единственная информация на страницах справки о цветах, которую я могу найти:

message-bg colour
  Set status line message background colour, where colour is one of:
  black, red, green, yellow, blue, magenta, cyan, white, colour0 to
  colour255 from the 256-colour palette, or default.

Я также нашел сообщение в блоге, в котором повторяются цвета, но я не могу его ухватить, и не хочу весь день сидеть за терминалом, угадывая номера цветов, пока не сработает.

Лоренс
источник

Ответы:

223

Вы можете получить список с этим bashфрагментом:

for i in {0..255}; do
    printf "\x1b[38;5;${i}mcolour${i}\x1b[0m\n"
done

Тогда используйте colourxxxс tmux.

Кир
источник
18
используйте $ reset, чтобы вернуть ваш быстрый цвет:>
lkraav
возможно, вам нужны три цифры цвета? Этот скрипт выводит как, color12но это не принимается tmux в качестве допустимого цвета.
artfulrobot
6
My tmux(1.6) принимает даже такие цвета, как colour12(обратите внимание на "u").
cYrus
1
Этот ответ все еще полезен! Помог мне выбрать цвета, которые я хотел.
asfallows
6
О, мой бог! Радуга на моем терминале. Как раз вовремя, чтобы отпраздновать равенство брака в США!
Гарбелини
75

Я нашел это изображение просветляющим.

введите описание изображения здесь

Эдди Паркер
источник
16
Вы можете создать его сfor i in {0..255}; do printf "\x1b[38;5;${i}mcolor%-5i\x1b[0m" $i ; if ! (( ($i + 1 ) % 8 )); then echo ; fi ; done
12431234123412341234123
22

В Subversion (что будет tmux 1.5) вы также можете использовать цвета #abcdef в шестнадцатеричном стиле, которые сопоставлены с ближайшей записью из 256 цветовых палитр. Вам нужны кавычки, поскольку они обрабатываются как строки, тогда как обычные имена цветов рассматриваются как именованные константы. Также обратите внимание, что трехбуквенное сокращение (# f00) недопустимо.

Пример:

set pane-active-border-bg red # no quotes for name
set pane-active-border-bg "#ff0000" # quotes for rgb
боб
источник
1
Ты можешь? Я не могу понять, как ...
Эрик
5
set-option message-bg "#abcdef"; цитаты необходимы.
Chepner
Вы также, кажется, должны использовать полные 6 шестнадцатеричных символов, нет 3-х сочетаний клавиш, т.е. #fffне будет работать, вы должны использовать#ffffff
bschlueter
11

tmux до 1.9 поддерживает только международную орфографию для 256-цветовой палитры, например

"colour121"

в отличие от американского правописания, которое опускает u

"color121"

Похоже, это скоро изменится, http://sourceforge.net/mailarchive/message.php?msg_id=31049758

Джо Фортье
источник
6

Я использовал скрипт xterm-color-table.vim . Будет работать любая таблица цветов терминала с 256 цветами.

86me
источник
6

Основываясь на ответе @cYrus, я написал скрипт для разбивки вывода цветов на N столбцов, где N - первый аргумент

# colors.sh

#!/bin/bash
if [ -z $1 ]; then
    BREAK=1
else
    BREAK=$1
fi
for i in {0..255} ; do
    printf "\x1b[38;5;${i}mcolour${i} \t"
    if [ $(( i % $BREAK )) -eq $(($BREAK-1)) ] ; then
        printf "\n"
    fi
done

Попробуйте, сохранив его в файле с именем colors.sh, затем ./colors.sh 4

Не забудьте chmod +x colors.shсначала.

Энди Терра
источник
3
Скрипт show-256-colors.sh также может быть полезен для отображения цветов фона.
Максим Суслов
Вы должны по умолчанию сказать, по крайней мере, 4 столбца, чтобы отличить его от исходного сценария.
dbkeys