Dies scheint eine Frage mit dem XY-Problem zu sein - es ist nicht das Richtige, um die gewünschte Lösung zu finden:
Angenommen, die Ausgabe ist farbig und der leere Teil des Bildschirms hat eine andere Farbe oder ist mit einem Zeichen gefüllt.
Überlegen Sie, wie die Ausgabe für diese Fälle aussehen soll:
Eine leere Zeile? Zeilen, die nur mit Leerzeichen gefüllt sind? Zeilen mit nur einem Leerzeichen ? Mit einem Tab? Mit einem Leerzeichen und einer Registerkarte? Mit einer Registerkarte und einem Leerzeichen? Ja, sie sehen alle unterschiedlich aus !
Oder möchten Sie, dass eine leere Zeile aussieht - nur eine leere Zeile ?
Wenn dies der Fall ist, möchten Sie die Ausgabestreams nicht wirklich färben, und diese Antwort gilt .
Ich werde einen ähnlichen Ansatz für die Lösung von @ StéphaneChazelas geben, aber "invers":
Sie können , technisch gesehen , Farbe STDOUT und STDERR, Zeile für Zeile , mit dem Hinzufügen der richtigen Codes Farbe Flucht zu Beginn und Ende der Leitung auf beiden Strömen.
Sie müssten darauf achten, die Farbe mindestens jeder Zeile zurückzusetzen, da sonst jedes Programm, das Farbe verwendet, Ihr Terminal durcheinander bringenls
würde .
Sie haben einfach nicht viel Kontrolle über die Ausgabefarbe - daher ist es schwierig, bestenfalls das Richtige zu finden.
Aber: Sie haben die Kontrolle über alle anderen verwendeten Farben, oder?
Und Sie brauchen in diesem Fall nur eine Farbe? Großartig!
Stellen Sie die Standardfarbe der Terminals auf die Farbe STDOUT / STDERR ein und färben Sie den Rest wie gewünscht.
Sie können Ihre Shell-Eingabeaufforderung einfärben - und den Eingabeaufforderungscode verwenden, um auch andere Teile einzufärben.
Zugegeben, es ist etwas schwierig, die Befehlszeile zu färben , in der Sie Ihren Befehl bearbeiten, aber es ist sicherlich möglich. Aber versuchen Sie das nicht mit, bash
wenn Sie es verwenden können zsh
, da der Code für die Eingabeaufforderung dort viel flexibler ist - das ist es, was Sie brauchen.
Stellen Sie nun die Standardvordergrundfarbe Ihres Terminals auf Grau und möglicherweise auf Hintergrund ein - versuchen Sie jedoch, diese als transparent / undefiniert zu belassen.
Um die Hintergrundfarbe der Befehlszeile festzulegen, sehen Sie sich dieses Beispiel unter
Ändern der Hintergrundfarbe der Befehlszeile in zsh an, wenn ich das Eingabeaufforderungsthema ändere :
PROMPT="%{$bg[cyan]%}%{$fg[red]%}%n%{$reset_color%}%{$bg[cyan]%}@%{$fg[red]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%{$bg[cyan]%}%% "
(Der schwierige Teil besteht darin, die nicht verwendeten Endabschnitte der Lins in verschiedenen Situationen richtig zu machen.)