Warum werden diese ausgefallenen Zeichen in meiner Eingabeaufforderung nicht angezeigt?

7

Ich benutze Ubuntu 14.04 und 16.04. Am 14.04 habe ich zusätzlich Terminology installiert.

Am 16.04 Terminal und Terminologie werden die Zeichen in der Bash nicht korrekt angezeigt:

Terminologie und 16.04

Schauen Sie mit Ubuntu 14.04 Terminal

Ubuntu 14.04 Terminal

Ich nahm zunächst an, dass es einige Umgebungsvariablen gibt, die sich unterscheiden. Ich habe nicht gefunden, welche Ursache dies ist. Nachdem ich Terminology am 14.04 installiert habe und die Zeichen am 14.04 falsch angezeigt werden, gehe ich davon aus, dass dies nichts mit der Umgebung zu tun hat.

Was muss ich konfigurieren, um das gleiche Ergebnis wie mit Terminal von Ubuntu 14.04 in den anderen Optionen zu erhalten?

Wert von PS1:

\[\e[37;1m\]\[\] \u \[\e[0m\]\[\]\[\e[0m\]\[\] \w \[\e[0m\]\[\]

Variablen in Ubuntu 14.04 Terminal:

LANG=en_US.UTF-8
LANGUAGE=en_US
LC_ADDRESS=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_MONETARY=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_NUMERIC=de_DE.UTF-8
LC_PAPER=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_TIME=de_DE.UTF-8

Und in der Terminologie am 14.04:

LANG=en_US.UTF-8
LANGUAGE=en_US
LC_ADDRESS=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_MONETARY=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_NUMERIC=de_DE.UTF-8
LC_PAPER=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
Sascha
quelle
Hast du es versucht sudo add-apt-repository ppa:enlightenment-git/ppa sudo apt-get update sudo apt-get install terminology?
JJoao
@JJoao Ich habe ihre ppa wie auf der Homepage der Erleuchtung beschrieben verwendet und liefsudo apt-get install terminology
Sascha
Es gibt mehr als eine Sache, die schief gehen kann: Schriftarten und Gebietsschema-Tabellen. Es wäre hilfreich, wenn Sie die Leute an die Zeichenfolge erinnern würden, die in verwendet wird PS1.
Thomas Dickey
1
Es ist "Powerline", M. Dickey, und es werden mehrere Zeichen für den privaten Bereich verwendet, beginnend mit U + E0B0. Dies ist ein hervorragendes Beispiel für die Fallstricke der Annahme, dass eine private Nutzung universell ist.
JdeBP
@ ThomasDickey Hinzugefügt PS1zum Beitrag
Sascha

Antworten:

7

Dieses Zeichen (U + E0B0) ist kein gültiges Unicode-Zeichen. Genauer gesagt befindet es sich im Bereich für den privaten Gebrauch in Unicode , sodass Sie es für Ihren eigenen Gebrauch verwenden können.

Im Abschnitt zur Verwendung von Beispielen wird in diesem Wikipedia-Artikel Folgendes erwähnt:

Powerline, ein Statuszeilen-Plugin für vim, verwendet U + E0A0 - U + E0A2 und U + E0B0 - U + E0B3 für zusätzliche Zeichen zum Zeichnen von Kästchen .

Was uns zu https://github.com/powerline/powerline führt

Hier finden Sie Anweisungen zum Installieren von Schriftarten für diese Unicode-Punktcodes.

Stéphane Chazelas
quelle
1
"" wird in jedem Terminal (und tatsächlich in jeder Anwendung, die ich ausprobiert habe) mit Ausnahme der Terminologie als nach rechts zeigender Pfeil angezeigt . Ich verstehe, dass es sich um einen Codepunkt für den privaten Gebrauch handelt, aber warum unterscheidet sich die Terminologie von allem anderen?
Thayne