Ich habe kürzlich Running Shells in Emacs gelesen und einige Zeit damit verbracht, meine aufwändige Zsh-Eingabeaufforderung anzupassen, um mit den eingeschränkten Funktionen von M-x shell
und zu arbeiten M-x ansi-term
.
Nach dieser Anstrengung kann ich Zsh nun endlich aus Emacs heraus verwenden, es gibt jedoch ein - wenn auch geringfügiges - Ärgernis mit M-x ansi-term
. Ich sehe immer den streunenden Text 4m
vor der Eingabeaufforderung.
Wie Sie sehen können, scheint dieses Phänomen unabhängig vom eigentlichen Eingabeaufforderungsthema zu sein. Es wird auch mit den integrierten Eingabeaufforderungen angezeigt, auch mit den einfachen, die keine ausgefallenen Steuerzeichen verwenden. Tatsächlich passiert es sogar mit der Standardaufforderung, dh wenn ich Zsh ohne meine starte .zshrc
.
Nun, es ist wirklich nur ein kleines Ärgernis, und es würde mir nichts ausmachen, wenn ich es nicht loswerden könnte - ich bevorzuge es M-x shell
sowieso meistens , wenn dieses Problem nicht auftritt.
Aber es ärgert mich wirklich, dass ich die Ursache für dieses Problem nicht finden konnte, obwohl ich wirklich versucht habe, es zu debuggen. Ich muss jedoch sagen, dass mein Verständnis von Terminals eher begrenzt ist, so dass ich möglicherweise das sehr Offensichtliche übersehen habe.
Ich bin auf OS X 10.10. Mein Emacs ist 25.0.50, direkt aus dem Kofferraum mit Homebrew gebaut und ohne spezielle Flaggen. Zsh ist 5.0.5, wie in Yosemite enthalten, aber das Problem tritt auch bei 5.0.7 auf, das über Homebrew installiert wird.
Kann jemand ein Licht auf dieses Thema werfen?
system-user-terminfo
hat nichts geändert. Das $TERM
Problem wurde durch Ändern behoben, aber das kann nicht die Lösung sein, oder? Immerhin ist es eine Lüge, im Wesentlichen: ansi-term
ist kein xterm und unterstützt definitiv keine 256 Farben.
\x1b[37;4m
gibt eine weiße Farbe mit 37 und unterstrichener Text mit 4 an. Ich kann Ihr Problem nicht reproduzieren. Mein zsh ist 5.0.7 und 'echo $ TERM' in ansi-term gibt mir eterm-color , mein emacs ist 24.4.1 . Ich habe auch die saubere Standardversion 'env HOME = ~ / tmp / emacstest emacs -Q' getestet und kann keine Probleme feststellen.
emacs -Q
und ohne Zsh-Konfiguration konsistent reproduzieren .