Ist es richtig, die Variable $ TERM manuell festzulegen?

10

Ich setze die $TERMVariable und füge die Zeile XTerm*termName: xterm-256colorzu meiner .XresourcesDatei hinzu. Als ich es tat, wusste ich nicht genau, was das bedeutete (ich folgte einem Online-Leitfaden, um das Aussehen zu ändern xterm), aber jetzt habe ich etwas mehr gelesen und bin besorgt, ob das, was ich getan habe, falsch war. Insbesondere möchte ich wissen, dass das $TERMmanuelle Einstellen der Variablen etwas Schlechtes ist , und falls dies der Fall ist, wie kann ich meinen Fehler rückgängig machen.

Falls nötig, verwende ich Fedora 20 mit xterm.

Santaru72
quelle
Dies ist eine allgemeine Programmierfrage. Kommt darauf an, was du machen wirst. Wenn Sie eine Desktop-Umgebung für selbstverständlich halten und keine Remoteverbindungen vorhanden sind, ist dies möglicherweise in Ordnung. Wenn nicht, müssen alle möglichen Fälle mit Fehlerprüfung bearbeitet werden.
41754
@uprego Könnten Sie bitte näher auf das "Fehlen von Remoteverbindungen" eingehen?
Santaru72
Möglicherweise verwenden Sie eine permanente tmux- Sitzung mit der Option 256 Farben. Wenn Sie sie jedoch aus einer SSH- Sitzung anhängen, werden die möglichen Szenarien zu stark erweitert, um sie aufzulisten . Jede Anwendung würde abhängig von den Fähigkeiten jedes Programmierers wünschenswerte Auswirkungen haben oder nicht. Wie @goldilocks in seiner Antwort hervorhebt, sollte es nicht gefährlich sein, aber es gibt den Unterschied zwischen "sollte nicht sein" und "kann nicht sein".
41754
@uprego: Realistisch hätte ich sagen können "kann nicht", es sei denn, Sie zählen unleserliche Ausgabe als "gefährlich".
Goldlöckchen

Antworten:

7

Zum größten Teil sollten Sie nicht TERMmanuell einstellen . Die Variable wird immer automatisch festgelegt, und es gibt nur wenige Umstände, unter denen der Standardwert falsch ist.

Der Wert von TERMmuss in der terminfo- Datenbank des Systems angegeben werden (oder für einige altmodische Systeme in der termcap- Datenbank). Terminfo und Termcap ordnen Terminaltypen der Beschreibung der von Anwendungen verwendeten Terminalfunktionen zu. Der Wert von TERMist der Terminaltyp.

Der Hauptgrund, warum Sie manchmal Änderungen vornehmen müssen, TERMist, dass Sie sich remote anmelden, wenn der lokale Computer und der Remotecomputer unterschiedliche Terminaldatenbanken haben.

Ein weiterer Grund, der mit dem vorherigen verwandt ist, besteht darin, dass es manchmal mehrere ähnliche Einträge für ein Terminal mit leicht unterschiedlichen Funktionen gibt. Dies ist meistens der Fall, wenn ein neues Terminal verfügbar ist, das mit einem vorhandenen Terminal kompatibel ist, jedoch über mehr Funktionen verfügt. Sie haben dann die Wahl zwischen der Verwendung des traditionellen Namens, den alle Maschinen verstehen, der jedoch nur die traditionellen Funktionen ankündigt, oder des neueren Namens, der alle neuen Funktionen ankündigt, den einige Maschinen jedoch nicht verstehen.

Ein Beispiel hierfür ist xterm mit 16 Farben gegenüber xterm mit 256 Farben. Ein traditionelles xterm unterstützt nur 16 Farben, daher wird dies in der xtermTerminaldatenbank angegeben. Das Ändern des xtermEintrags würde Benutzer der neueren xterm-Versionen glücklich machen, aber die Konfiguration von Benutzern älterer xterm-Versionen, die sich remote anmelden, beeinträchtigen. Wechseln zu einem neuen Namen -  xterm-256color- bietet die neueren Funktionen, sofern verfügbar, wird jedoch nicht erkannt, wenn Sie sich remote bei Computern mit einer älteren Terminaldatenbank anmelden. Da es keine Lösung gibt, die alle zufriedenstellen kann, haben Sie die Wahl: Bleiben Sie entweder bei xtermden 256 Farben und erhalten Sie sie nicht oder verwenden Sie sie, xterm-256colordie nicht funktioniert, wenn Sie sich bei Remotecomputern anmelden, die sie nicht unterstützen.

Das Beibehalten des Standardwerts von xtermund das Setzen der termNameRessource auf xterm-256color(wodurch die Umgebungsvariable TERMauf denselben Wert gesetzt wird) sind daher beide sinnvolle Entscheidungen. Das Setzen TERMauf beliebige Werte würde nicht funktionieren, aber beides xtermund xterm-256colormacht Sinn.

Gilles 'SO - hör auf böse zu sein'
quelle
3

Ich habe die Variable $ TERM festgelegt und die Zeile XTerm * termName: xterm-256color zu meiner .Xresources-Datei hinzugefügt.

Das ist in Ordnung, solange Sie wissen, was Sie getan haben. Die meisten GUI-Terminals unterstützen dies.

Sie können es auch über die Befehlszeile oder in einem Skript festlegen

export TERM=xterm-256color

Dies gilt nur für dieses Terminal oder nachfolgende untergeordnete Elemente.

Eine tragbare Standardeinstellung wäre nur xterm, was 16-Farben-Unterstützung bedeutet. Wenn Sie ein 256-Farben-Set haben und Ihr Terminal dies nicht unterstützt, sieht das Ausführen von 256-Farben-TUI-Apps einfach komisch aus. Sie werden es wahrscheinlich sofort bemerken. Aber es sollte nicht gefährlich sein.

Goldlöckchen
quelle
Also Einstellung XTerm*termName: xtermstatt XTerm*termName: xterm-256colorich sollte in Ordnung sein, oder?
Santaru72
Wenn Sie dies wünschen, stellen Sie nichts ein. xtermist die Standardeinstellung für xterm;), bedeutet aber 16 Farben. Der Hauptzweck der Verwendung xterm-256colorbesteht darin , Anwendungen mitzuteilen, dass das Terminal 256 Farben unterstützt . Wenn Sie das nicht tun, nehmen sie 16 Farben an.
Goldlöckchen