Das zugrunde liegende Problem besteht darin, dass die Zuordnung screenzwischen dem tatsächlichen Terminal (identifiziert durch die TERMUmgebungsvariable außerhalb screen) und der Emulation innerhalb screenunvollständig ist.
Wenn Sie es zufällig testen (mit vttest oder Tack ), stellen Sie möglicherweise Mängel für fest
Der Versuch , diese Probleme zu beheben , indem Sie termin .screenrchat den Nachteil , dass es nur für eine bestimmte Ist-Terminal, und ist nicht tragbar zu anderen Terminal - Implementierungen funktioniert. Die Dokumentation Notizen
Von der Verwendung des Begriffs Befehl wird für nicht standardmäßige Zwecke abgeraten.
Es gibt eine andere Lösung (mit einem anderen Nachteil), die diese Funktion aus der screen Dokumentation verwendet :
Wenn screen versucht, einen Terminalnamen für sich selbst herauszufinden, sucht es zuerst nach einem Eintrag mit dem Namen screen. Begriff , wobei Begriff der Inhalt Ihrer $TERMVariablen ist. Wenn kein solcher Eintrag vorhanden ist, versucht der Bildschirm screen(oder screen-wwenn das Terminal breit ist (132 Spalten oder mehr)). Wenn auch dieser Eintrag nicht gefunden werden kann, vt100wird er als Ersatz verwendet.
ncurses bietet für diesen Fall mehrere nützliche alternative Terminalbeschreibungen, z. B. screen.xterm-new , um Probleme bei der Bildschirmzuordnung zu beheben. In der Praxis verwende ich TERM=xterm-newund bekomme beim Ausführen des Bildschirms eine verwendbare Zuordnung von Funktionstasten.
Wenn Sie auf die Bildschirmeinstellungen zurückgreifen term, werden Sie beim Testen möglicherweise feststellen, dass es immer noch Probleme mit der Zuordnung gibt, die in diesen Alternativen behandelt werden. Wenn es möglich wäre, eine genaue Terminalbeschreibung mit zu erhalten term, wären diese Alternativen einfache Aliase screen. Sie sind nicht.
ncurses ist nicht bieten screen.xterm(sic ! ) , weil:
TERM=xtermwird häufig für Terminalemulatoren missbraucht, die sich von xterm unterscheiden; Das Hinzufügen dieser Zuordnung würde diese Situation nur verschlimmern (siehe zum Beispiel Warum nicht einfach TERM verwenden, das auf "xterm" gesetzt ist? In den häufig gestellten Fragen zu ncurses).
- Es
screen.xtermist weniger wahrscheinlich, dass der alternative Name auf Remote-Systemen installiert wird (siehe Änderungskommentar vom Juni 2015 in der Terminaldatenbank).
Im Großen und Ganzen ist die Verwendung der alternativen Namen jedoch eine Verbesserung gegenüber der Verwendung termin Ihrem .screenrc: Sie löst mehr Probleme als sie verursacht. Das Gegenteil gilt für die termEinstellung.
term xtermzu meiner~/.screenrcDatei hat es für mich behoben. Danke noch einmal!