Jak działa paleta kolorów Tmux?


140

Próbuję ustawić coś na szary, ale nie mogę zrozumieć, jak to zrobić. Jedyne informacje na stronie kolorów o kolorach, które mogę znaleźć, to:

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.

Znalazłem też post na blogu, w którym powtarzane są kolory, ale nie mogę tego całkowicie pogmatwać i nie chcę siedzieć przy terminalu przez cały dzień zgadując numery kolorów, dopóki jeden nie zadziała.

Odpowiedzi:


223

Możesz uzyskać listę za pomocą tego bashfragmentu:

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

Następnie użyj colourxxxz tmux.


18
użyj $ reset, aby przywrócić natychmiastowy kolor:>
lkraav

może potrzebujesz trzycyfrowych kolorów? Ten skrypt generuje takie, color12ale tmux nie akceptuje go jako prawidłowego koloru.
artfulrobot

6
Mój tmux(1.6) akceptuje nawet takie kolory jak colour12(pamiętaj o „u”).
cyr

1
Ta odpowiedź jest nadal pomocna! Pomógł mi wybrać kolory, które chciałem.
asfallows

6
o mój Boże! Tęcza na moim terminalu. W samą porę, aby uczcić równość małżeństw w USA!
garbelini

75

Uważam, że ten obraz jest pouczający.

wprowadź opis zdjęcia tutaj


16
Możesz go utworzyć za pomocą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

W Subversion (co będzie tmux 1.5) możesz również używać #abcdef kolorów w stylu heksadecymalnym, które są odwzorowane na najbliższy wpis palety 256 kolorów. Potrzebujesz cudzysłowów, ponieważ są one traktowane jako ciąg znaków, podczas gdy zwykłe nazwy kolorów są traktowane jak nazwane stałe. Pamiętaj również, że trzyliterowy skrót (# f00) jest nieprawidłowy.

Przykład:

set pane-active-border-bg red # no quotes for name
set pane-active-border-bg "#ff0000" # quotes for rgb

1
Czy możesz? Nie wiem, jak ...
Eric,

5
set-option message-bg "#abcdef"; cytaty są konieczne.
chepner

#fff#ffffff
Wygląda na



6

Opierając się na odpowiedzi @ cYrus, napisałem skrypt dzielący wynik kolorów na N liczby kolumn, gdzie N jest pierwszym argumentem

# 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

Wypróbuj, zapisując go w pliku o nazwie colors.sh ./colors.sh 4

Nie zapomnij chmod +x colors.shnajpierw.


3
Skrypt show-256-colors.sh może być również przydatny do wyświetlania kolorów tła.
Maxim Suslov,

Powinieneś domyślnie powiedzieć co najmniej 4 kolumny, aby odróżnić go od skryptu źródłowego.
dbkeys
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.