Wie funktioniert die tmux-Farbpalette?


140

Ich versuche, etwas auf Grau zu setzen, kann aber nicht herausfinden, wie. Die einzige Information in der Manpage über Farben, die ich finden kann, ist:

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.

Ich habe auch einen Blog-Post gefunden, der durch Farben iteriert, aber ich kann es nicht recht fassen und möchte nicht den ganzen Tag am Terminal sitzen und Farbnummern erraten, bis einer funktioniert.

Antworten:


223

Sie können eine Liste mit diesem bashSnippet erhalten:

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

Dann verwenden Sie colourxxxmit tmux.


18
Verwenden Sie $ reset, um die sofortige Farbwiederherstellung zu
— starten

vielleicht brauchst du dreistellige farben? Dieses Skript gibt wie color12folgt aus, aber dies wird von tmux nicht als gültige Farbe akzeptiert.
— Artfulrobot

6
Mein tmux(1.6) akzeptiert auch Farben wie colour12(beachte das "u").
— CYRUS

1
Diese Antwort ist immer noch hilfreich! Hat mir geholfen, die gewünschten Farben auszuwählen.
— Asfallows

6
Oh mein Gott! Ein Regenbogen auf meinem Terminal. Pünktlich zur Feier der Gleichstellung der Ehe in den USA!
— Garbelini

75

Ich fand dieses Bild aufschlussreich.

Bildbeschreibung hier eingeben


16
Sie können es mitfor 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

In Subversion (was tmux 1.5 sein wird) können Sie auch hexadezimale #abcdef-Farben verwenden, die dem nächsten 256-Farben-Paletten-Eintrag zugeordnet sind. Sie benötigen Anführungszeichen, da dies als Zeichenfolge behandelt wird, während reguläre Farbnamen als benannte Konstanten behandelt werden. Beachten Sie auch, dass die Kurzschreibweise mit 3 Buchstaben (# f00) ungültig ist.

Beispiel:

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

1
Können Sie? Ich kann nicht sehen, wie man ...
— Eric

5
set-option message-bg "#abcdef"; Die Anführungszeichen sind notwendig.
— chepner

Sie müssen anscheinend auch die vollen 6 hexadezimalen Zeichen verwenden, keine 3 char-Abkürzungen, dh es #fffwird nicht funktionieren, Sie müssen#ffffff
— bschlueter



6

Aufbauend auf der Antwort von @cYrus habe ich ein Skript geschrieben, um die Ausgabe der Farben in N Spalten zu unterteilen, wobei N das erste Argument ist

# 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

Versuchen Sie es, indem Sie es in einer Datei namens colors.sh speichern ./colors.sh 4

Vergiss das nicht chmod +x colors.sh.


3
Das Skript show-256-colors.sh kann nützlich sein, um auch Hintergrundfarben anzuzeigen .
— Maxim Suslov

Sie sollten standardmäßig mindestens 4 Spalten angeben, um es vom Ursprungsskript zu unterscheiden.
— Dbkeys
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.