Was bringen benutzerdefinierte ANSI-Farben in den Terminaleinstellungen?

In den Einstellungen der Terminal-App können Sie benutzerdefinierte ANSI-Farben für Blau, Grün, Gelb, Hellrot usw. festlegen, aber sie ändern eigentlich nichts in der Shell. Zum Beispiel ls -Gzeigt die Verwendung immer noch die Standard-ANSI-Farben an. Ich weiß, dass Sie die Text-, Cursor- und Hintergrundfarben anpassen können, aber welchen Effekt hat das Ändern der ANSI-Farben? Ich habe versucht, das LSCOLORSin zu ändern, bash_profileaber das hat nicht funktioniert.

Wie kann ich dafür sorgen, dass die ANSI-Farben in der Shell mit den festgelegten benutzerdefinierten Farben in den Terminal-Einstellungen übereinstimmen?

Standardfarben

benutzerdefinierte Farben

Fragen Sie, warum jemand Grün und Rot in andere Farben ändern möchte, da er diese Farben nicht sehen kann, sie aber vielleicht Orange und Blau zuordnen könnte? Nehmen wir im Grunde an, jemand erklärt eine Meinung oder einen Grund, warum er das Gefühl hat, dass dies existiert. Was werden Sie mit diesem Wissen anfangen (oder liegt hier eine praktische Frage vergraben, die wir direkt ansprechen können?)?
Ich weiß, wie man Standardfarben austauscht, aber wie kann ich benutzerdefinierte ANSI-Farben in der Shell anzeigen lassen. Was bringt es, benutzerdefinierte Farben im Einstellungsfenster festzulegen, wenn sie in der Shell nicht wirksam werden?
Aah - hier geht es also eher darum, warum nicht alle Programme oder alle Codes diese Farben übernehmen, anstatt widersprüchliche Standards und Escape-Sequenzen zu überlagern ...
Ich habe versucht, die LSCOLORS... zu ändern, aber das hat nicht funktioniert. Ich denke, das ist hier die eigentliche Frage. Aber um sie zu beantworten, müssen wir wissen, was Sie versucht haben und was Ihre Ergebnisse waren

Antworten (1)

Um zu verstehen, welchen Effekt das Ändern dieser Farben hat, müssen Sie verstehen, wie ANSI-Farben funktionieren.

In den frühen Tagen der ANSI-Escape-Codes zum Färben erlaubte die Spezifikation Programmierern (oder anderen Benutzern), Codes für die Auswahl zwischen 8 Farben (Schwarz, Rot, Grün, Gelb, Blau, Magenta, Cyan und Weiß) zu schreiben. Als eine Art De-facto-Standard für Terminals erlaubten die Hersteller auch die Auswahl brüderlicher Versionen in denselben Farben (z. B. helles Schwarz, helles Rot usw.).

Die tatsächliche Farbe von „Rot“ oder „Grün“ ist nicht standardisiert und variiert je nach Terminalsoftware. Dies sind die Farben, die Sie mit Apple neu definieren können. Das heißt, wenn Sie möchten, dass Ihr "Rot" mehr oder weniger rot ist (oder etwas ganz anderes), wird es Sie zulassen.

Später wurde daran gearbeitet, diese Escape-Codes zu erweitern, um einen breiteren Farbbereich zu ermöglichen. In der ISO-Standardversion dieser Escape-Codes kann der Programmierer jede 24-Bit-RGB-Farbe auswählen, indem er einen Escape-Code ausgibt, der die Menge an Rot, Grün und Blau angibt, die in die gewünschte Farbe eingeht.

Das bedeutet, dass Sie, wenn Sie ein Programm im Terminal ausführen, das die alten Escape-Codes verwendet, die auf Farbnamen verweisen (z. B. Rot, Grün, Cyan), die Bedeutung dieser Farbreferenzen in den Einstellungen ändern können.

Bei Programmen, die die neueren Escape-Codes verwenden, die auf bestimmte Farbcodes verweisen (z. B. rgb(123,74,101)), hat der Programmierer jedoch bereits explizit nach einer bestimmten Farbe gefragt - und Sie als Benutzer können diese nicht vom Terminal aus ändern Vorlieben.

Welche Terminalbefehle verwenden benutzerdefinierte Farbcodes?