Git Color UI-Unterstützung für 256 Farben?

8

Ich versuche, meine Git-Ausgabe mit meiner nativen XTerm 256-Farbpalette zu färben. Gibt es das überhaupt, um das zu tun? Ich kann es nicht zur Arbeit bringen.

zum Beispiel in .gitconfig .

%Vor%

usw..
Ich weiß, dass diese Formatierung funktioniert, wenn Sie die verschiedenen grundlegenden Farbbegriffe angeben; Cyan, Magenta, Gelb und Attribute; schwach, hell, ul, fett, usw.
Aber ich kann nichts in Bezug auf die Verwendung der vollen Farbpalette finden, die für ein 256-Farben-Terminal verfügbar ist, ohne tatsächlich die 8 Grundfarbbegriffe selbst in der tatsächlichen Palette zu ändern Es gibt auch nichts in der Dokumentation oder auf den Hilfeseiten, die ich finden kann.
Ich weiß, dass verschiedene Programme unterschiedliche Syntax zum Spezifizieren von Farbe zu verwenden scheinen, so dass ich vielleicht nur die falsche Syntax verwende oder ich der Einzige bin, der jemals so etwas tun wollte.

Ich gehe davon aus, dass git-config nur diese grundlegenden 8 Farben mit verschiedenen Attributen basierend auf der git-config man-Seite unterstützt. Wenn dies nicht möglich ist, gibt es eine Möglichkeit, diese Farben in den Terminals zu ändern Farbpalette ABER nur für ein Programm, wie in dieser Situation, Git? Vielleicht ein Perl-Skript, das diese Werte nur dann exportiert, wenn git-config auf sie verweist, sie aber bald wieder deaktiviert, sobald git-config fertig ist?

Und das ist nicht zu viel Mühe, als es wert ist. Ich liebe meine Eyecandy in einem Terminal, und ich tue es selbst, wenn ich eine Ressource finden könnte, die etwas Ähnliches erklärt.

    
CJD14 03.02.2014, 23:00
quelle

2 Antworten

7

Die Syntax für die Farbe lautet: [fg [bg]] [attr]...

Was die Farben betrifft, können Sie die benannten (normal, schwarz, rot, grün, gelb, blau, magenta, cyan und weiß) oder nur eine Zahl verwenden. stark> der Farbe in der 256-Palette ohne Präfix.

Die unterstützten Attribute sind: fett, dunkel, ul, blinken und umgekehrt.

So könnte Ihre Konfiguration so aussehen (getestet mit Git 1.8.5.3):

%Vor%

Ich habe einen Blick in den Quellcode von git geworfen, um die Antwort zu finden.

    
Jan Včelák 26.03.2014, 22:13
quelle
4

Beachten Sie Folgendes:

  • Die Unterstützung für Farben ist jetzt dokumentiert (Januar 2015, Git 2.2.2, commit 0edad17 ):
  

Dokumentation: Beschreiben Sie den ANSI-256-Farben-Modus

     

Unsere Farbspezifikationen haben die 256-Farben-ANSI-Erweiterung seit Jahren unterstützt, aber wir haben sie nie dokumentiert.

git config man-Seite enthält jetzt:

  

Farben (Vordergrund und Hintergrund) können auch als Zahlen zwischen 0 und 255 angegeben werden;
  diese verwenden den ANSI-256-Farben-Modus (beachten Sie jedoch, dass nicht alle Terminals dies unterstützen können)

config: behebt das Parsen von " git config --get-color some.key -1 "

  

Die meisten Befehlszeilenoptionen von git-config verwenden OPT_BIT , um eine Aktion auszuwählen, und analysieren dann die Nicht-Optionsargumente kontextabhängig. % Co_de% und --get-color unterscheiden sich jedoch von den übrigen Optionen dadurch, dass sie --get-colorbool sind und den Optionsnamen als Parameter verwenden.

     

Dies funktioniert im Allgemeinen, weil wir dann das Vorhandensein dieser Zeichenfolgen verwenden, um trotzdem ein Aktionsbit zu setzen. Aber es bedeutet, dass der Optionsparser auch nach dem Schlüssel nach Optionen sucht (weil es keine Nicht-Option ist; es ist ein Argument für eine Option). Und läuft:

%Vor%
  

(um " OPT_STRING " als Standard-Farbspezifikation zu verwenden) wird barf und behauptet, dass " -1 " keine Option ist.
  Stattdessen sollten wir -1 und --get-color als Aktions-Bits behandeln, genau wie --get-colorbool , --add und alle anderen Aktionen, und dann prüfen, ob die Nicht-Options-Argumente, die wir erhalten haben, gesund sind.
  Dies behebt die oben genannten Seltsamkeiten und macht diese beiden Optionen wie alle anderen.

     

Das "behebt" einen Test in --get , der überprüft, dass " t/t4026-color.sh "als eine Farbe sollte fehlschlagen (es scheitert, aber vor diesem Patch, weil -2 barfed, nicht weil wir jemals versucht haben, die Farbe zu analysieren).

     

Dies fängt auch andere Fehler auf wie:

%Vor%
  

die zuvor stillschweigend " parseopt " ignoriert hat (und jetzt beschweren wird, dass Sie zu viele Argumente angegeben haben).

     

Es gibt jedoch einige mögliche Regressionen.
  Wir verbieten jetzt diese, die derzeit tun, was Sie erwarten würden
:

%Vor%

Wenn 256 Farben nicht ausreichen, können Sie noch mehr Farben importieren.
Siehe commit 17a4be2 (Git 2.3.0, Q1 2015)

  

blue : unterstützt 24-Bit RGB-Werte

     

Einige Terminals (wie XTerm) ermöglichen vollständige 24-Bit-RGB-Farbspezifikationen mit einer Erweiterung des regulären ANSI-Farbschemas.
  Lassen Sie uns zulassen, dass Benutzer hexadezimale RGB-Farben angeben können, wobei die besonders wichtige Funktion der pinkfarbenen Ref-Dekorationen aktiviert :

%Vor%     
VonC 22.12.2014 20:07
quelle

Tags und Links