Ich gründe derzeit $TERM
an xterm-256color
:
if [[ -n "$EMACS" ]]; then
export TERM=xterm-256color
alias emacs="emacsclient --no-wait"
export EDITOR="emacsclient --no-wait"
export VISUAL="emacsclient"
fi
Früher hatte ich es eingestellt eterm-color
, aber das Problem ist, dass dieser Terminaltyp auf den meisten Computern, bei denen ich mich über SSH anmelde, nicht verfügbar ist.
Die Standardeinstellung .bashrc
in Ubuntu überprüft, ob die TERM
Variable mit beginnt xterm-
. In diesem Fall wird versucht, den Fenstertitel festzulegen:
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
Das Problem ist das \[\e]0;
Bit. Es sollte von xterm-kompatiblen Terminalemulatoren analysiert werden, aber emacs (ansi-term) macht das nicht. Das Ergebnis ist ein Terminal wie dieses:
0;user@host: ~user@host:~$
Einige Anwendungen werden auch unterbrochen readline
, wenn der eingegebene Text größer als die Breite des Terminals ist.
Da eterm-color
es auf einigen Remote-Hosts nicht verfügbar ist (und ich es auch nicht installieren kann), bringt das Setzen auf diesen Wert Dinge wie durcheinander less
.
Gibt es einen Trick, den ich verwenden kann, z. B. einen anderen Terminaltyp, der mit den meisten Distributionen geliefert wird, oder einen Hack, mit dem ansi-term die relevanten Escape-Codes erkennt und den Titel festlegt oder sie einfach verwirft?
Angesichts Ihres Problems würde ich empfehlen, die Einstellung
TERM
auf vt100 zu setzen. Es ist überall installiert, sogar in Debiansncurses-base
Paket. Die in der vorgeschlagenen Antwort erwähnten Alternativen (ansi, aterm, xterm-256color) weisen Unterschiede auf, die Merkmale ausüben, die in fehleneterm-color
.Außerdem ist die Titelzeichenfolgenfunktion nicht Teil der Terminalbeschreibung. Ihre Remote-Anwendungen verwenden es basierend auf der Einstellung von
TERM
z. B. "xterm".Technisch gesehen würden Sie Farbe verlieren (schließlich hat vt100 nie Farbe gemacht ). Einige Anwendungen tun dies trotzdem.
quelle