Wie kann ich meine Eingabeaufforderung ändern, um Unicode-Zeichen mit Box-Zeichen aufzunehmen?

2821
Wuffers

Wie bekomme ich eine $PS1Box, die Zeichen enthält?

Ich laufe bash, wenn es einen Unterschied macht.

4
... Archer ist der Name der Maschine, nehme ich an? Arjan vor 13 Jahren 0
Könnte sein, aber ich interessiere mich nicht für diesen Teil. Ich interessiere mich hauptsächlich für die Charaktere nach links: die merkwürdigen Balken und der quadratische Charakter. Wuffers vor 13 Jahren 0
Der Screenshot ist weg. Der Titel des Beitrags sollte geändert werden und es sollten Zeichen oder geometrische Formen erwähnt werden. Trotzdem ist das Wort "Screenshot" in einem Titel eine schlechte Idee. Ludovic Kuty vor 9 Jahren 0

2 Antworten auf die Frage

9
Jander

Wenn Sie einen Editor mit UTF-8-Unterstützung haben, können Sie die Unicode-Boxzeichen und geometrischen Formen direkt eingeben . So etwas wie:

PS1='┌─[blah][blah] └─▪ ' 

Schreiben Sie dies mit Ihrem Editor in eine Datei, und geben Sie die Datei anschließend in Ihre Bash-Sitzung ein source ./myfile. Wenn Sie bereit sind, es aufzubewahren, fügen Sie es Ihrer .bashrc-Datei hinzu.

Die andere, ältere Methode besteht darin, VT100-Escape-Codes zu verwenden, um auf den Zeichnungszeichensatz des Terminals umzuschalten. In diesem Fall sieht Ihre PS1-Zeile folgendermaßen aus:

PS1='\[\e(0\]lq\[\e(B\][blah][blah] \[\e[0\]mq~\[\e(B\] ' 

Das \[und \]sagt bash, dass diese Teile der Eingabeaufforderung nicht gedruckt werden. Dies hilft dem Cursor zu zeigen, wo sich der Cursor befindet, wenn er die Befehlszeile bearbeitet. Der \e(0wechselt zum Zeichensatz für Strichzeichnungen und \e(Bwechselt zurück. Im Linienzeichnungsmodus:

  • l ist ┌
  • q ist ─
  • m ist └
  • ~ ist ▪

Sie können eine vollständige Liste erstellen, indem Sie Dinge wie printf '\e(0 qwertyuiop \e(B \n'an der Bash-Eingabeaufforderung ausführen.

Perfekt! Ich habe die Charaktere einfach kopiert und es wirkt wie ein Zauber! Vielen Dank! Wuffers vor 13 Jahren 0
Dies ist eine willkommene Information. Ich hatte vergessen, wie diese genannt wurden und seit Wochen jagen! werde es nicht wieder vergessen! Danke dir! WhiteRau vor 5 Jahren 0
0
icyrock.com

Hier ist eine sehr schöne Auswahl verschiedener PS1:

Die, die Sie wollen, ist diese:

Sie müssen es ein wenig ändern, aber die Elemente sind da. Ich schlage vor, dass Sie hier nach mehr Informationen schauen:

Aus irgendeinem Grund kann ich die clock3 PS1 nicht zum Laufen bringen. Ich habe versucht, den Code genau zu kopieren und einzufügen, und es funktionierte überhaupt nicht. Ich verwende Terminal.app unter Mac OS X mit einer UTF-8-Kodierung. Wuffers vor 13 Jahren 0
@Herr. Mann: Haben Sie die Datei als Quelle verwendet oder ausgeführt? Sie müssen es beschaffen. Dennis Williamson vor 13 Jahren 0
Ich habe die Datei ausfindig gemacht. Als ich es tat, gab es mir eine Menge Müll. Wuffers vor 13 Jahren 0
Der Grund, warum dies nicht funktioniert hat, liegt darin, dass der erweiterte BIOS-Zeichensatz von IBM aus den DOS-Tagen verwendet wird, der von der Textmodus-Konsole in Linux unterstützt wird, jedoch nicht von Xterm oder Terminal oder den meisten anderen Terminalemulatoren. Jander vor 13 Jahren 0
@Jander Danke für die Klarstellung und natürlich für die Antwort an Mr. Man! icyrock.com vor 13 Jahren 0