Як працює палітра кольорів 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
Мій tmux(1.6) приймає рівні кольори на зразок colour12(пам'ятайте "і").
cYrus

1
Ця відповідь все ще корисна! Допоміг мені вибрати кольори, які я хотів.
asfallows

6
О Боже мій! Веселка на моєму терміналі. Якраз вчасно відзначати рівність шлюбу в США!
garbelini

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. Вам потрібні лапки, оскільки це трактується як рядок, тоді як звичайні назви кольорів трактуються як іменовані константи. Також зауважте, що 3-літерна стенограма (# 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"; цитати необхідні.
чепнер

Вам також здається, що вам доведеться використовувати цілих 6 шестигранних символів, жодні 3 ярлики швидкого доступу, тобто #fffне працюватимуть, вам доведеться використовувати#ffffff
bschlueter


6

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


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

Спробуйте, збережи його у файл під назвою кольори.sh, а потім ./colors.sh 4

Не забудьте chmod +x colors.shспочатку.


3
Сценарій show-256-colors.sh може бути корисним і для показу кольорів фону.
Максим Суслов

Вам слід за замовчуванням сказати принаймні 4 стовпчики, щоб відрізнити його від початкового сценарію.
dbkeys
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.