Ich habe eine Powershell-Konfigurationsdatei erstellt, die die Eingabeaufforderung zum Hinzufügen von Farbe ändert (abhängig von Dingen wie Git Branch usw.).
Das sieht gut aus, bis ich ein Konsolenprogramm wie git ausgeführt habe, das auch farbigen Text ausgibt. Danach scheint sich Powershell entschlossen zu haben, Escape-Codes wörtlich auszugeben.
Einfacher mit einem Screenshot zu verstehen:
- ist die Ausgabe bevor ich git starte, beachte die kolorierte Ausgabe des Textes "colorized>"
- ist die Ausgabe, nachdem ich git ausgeführt habe, beachten Sie, dass die Escape-Codes wörtlich ausgegeben werden
Hier ist meine Powershell-Konfigurationsdatei:
function prompt {
"" + [char]0x001b + "[35m colorized >" + [char]0x001b + "[0m"
}
Gibt es einen Trick, um die Funktionalität der ANSI-Codes wieder zu aktivieren? Beachten Sie, dass Git nur ein Beispiel ist. Ich habe mehrere Programme gefunden, die dies vermasseln, aber nicht alle.
MSBuild funktioniert beispielsweise einwandfrei.
powershell
Lasse Vågsæther Karlsen
quelle
quelle
prompt
Funktion verwenden, ohne dass Sie einen Escape-Code benötigen (Write-Host
stattdessen verwenden).Antworten:
Oh hallo! Ich bin selbst auf dieses Problem gestoßen, als ich aufgeregt ALLES mit ANSI kolorierte.
Zunächst habe ich dies genommen (ich kann mich nicht erinnern, wie ich anfangs darauf gestoßen bin, aber vielen Dank an den Original-Codierer) https://github.com/bozho/AnsiColorOut/blob/master/AnsiColorOut/Console.cs
Dann stelle ich in meinem Profil sicher, dass ich es hinzufüge
Und dann erstelle ich in meinem Profil einen schnellen benutzerdefinierten Wrapper für bekannte Problemprogramme, die ich häufig verwende, nämlich git
quelle