Ist es möglich, die gesamte Zeile der Eingabeaufforderung in hervorzuheben (eine Hintergrundfarbe festzulegen) zsh
? In meiner Emacs-Konfiguration habe ich die Zeile, in der der Cursor eine etwas andere Farbe als der Fensterhintergrund hat, was eine große visuelle Hilfe ist. Ich frage mich, ob es möglich ist, dasselbe in meiner Terminal / zsh-Eingabeaufforderung zu tun, damit es unter allem, was ausgeführt wird, effektiv "eine Linie zieht".
Ich habe versucht, PROMPT='%{$bg[grey]%}# '
meine Einstellungen vorzunehmen, .zshrc
aber die Hervorhebung erstreckt sich nur bis zur Eingabe, nicht bis zum Rand des Terminals.
Ist das, was ich erreichen will, möglich?
Mit der Eingabeaufforderungszeile * können Sie alles tun, was Sie wollen. Der problematische Aspekt besteht darin, sie anschließend rückgängig zu machen . Ich gehe davon aus, dass Sie nicht möchten, dass jede einzelne Zeile, auf der jemals eine Eingabeaufforderung angezeigt wurde, in Ihren hellen Farben angezeigt wird.
Es wäre fast einfacher, die Zeile danach zu löschen, aber dann haben Sie Ihren Befehl nicht. Löschen Sie möglicherweise die Eingabeaufforderung und wiederholen Sie den Befehl (mit einer Pseudo-Eingabeaufforderung wie
$
). Sie könnten die Eingabeaufforderung mit einer ANSI-Cursor-Speichersequenz beginnen lassenESC [s
, sie dannprecmd
wiederherstellenESC [u
und alles nach dem Cursor löschenESC [0J
und dann den Befehl wiederholen (ich kann mich nicht erinnern, wie der Befehl von innen abgerufen werden sollprecmd
).* Dies ist eine unvollständige Antwort. Ich weiß nicht, wie ich den Befehl in einer anderen Hintergrundfarbe unterstützen soll.
quelle
Wenn ich ändern
grey
zuwhite
, Ihr Beispiel tatsächlich funktioniert für mich.Welches Terminal verwenden Sie? Vielleicht behandelt es das Löschen von Hintergrundfarben anders?
Hier sind einige Alternativen zum Ausprobieren:
Geben Sie der gesamten Eingabeaufforderungszeile einen grauen Hintergrund:
(sollte mit Ihrem Beispiel identisch sein, aber eine andere Schreibweise.)
Drucken Sie eine Zeile vor der Eingabeaufforderung:
(Wenn Sie ändern
"\n"
zu"\r"
, es sollte die aktuelle Zeile, unterstreicht aber das scheint nicht zu arbeiten. Ich denke , zsh die aktuelle Zeile löscht , wenn die Eingabeaufforderung drucken, das ist , was mich zu der ersten Lösung führen.)Machen Sie Befehle (dh alles, was Sie eingeben) fett:
quelle