Dies ist eine Art Folgemaßnahme zu dieser Frage . Ich arbeite in tcsh im GNU- Bildschirm in einem xterm .
Ich habe folgendes in meiner .cshrc:
alias res_t 'xtset -t %h:%d "(%u:%g)" %e' # reset titlebar
res_t # reset title right now
alias precmd res_t
Und das funktioniert gut!
Wenn ich den Bildschirm ausführe, wird der Titel jedoch nicht mit dem aktuellen Verzeichnis aktualisiert. Wie kann ich den xterm-Titel auf dem Bildschirm aktualisieren lassen?
gnu-screen
xterm
tcsh
Nathan Fellman
quelle
quelle
Antworten:
Sie können den Titel des xterm-Fensters festlegen, indem Sie dies zu Ihrem
.tcshrc
oder hinzufügen.cshrc
(ersetzen Sie Ihren aktuellenprecmd
Alias):Stellen Sie sicher, dass dies der einzige Precmd-Alias in Ihren
.cshrc
und.tcshrc
-Dateien ist, wenn Sie dies verwenden. Diese Methode zeigt das aktuelle Verzeichnis als Fenstertitel für mich in beiden xterm einem Gnome-Terminal an, unabhängig davon, ob eine GNU-Bildschirmsitzung geöffnet ist.Meine Antwort basierte darauf .
quelle
Ich verstehe, dass Sie tcsh verwenden, so dass dies wahrscheinlich nicht funktioniert ... Nur für den Fall, dass jemand nach dem bash-Weg sucht, um dies zu tun.
Wenn auf Ihren Systemen (lokal / remote) bash ausgeführt wird, können Sie den Fenstertitel mit der Umgebungsvariablen "PROMPT_COMMAND" festlegen. PROMPT_COMMAND wird evaluiert, bevor eine Eingabeaufforderung angezeigt wird.
(in Ihrem .bashrc):
Erläuterung:
Dadurch wird die Shell so eingestellt, dass sie bei jedem Abschluss eines Befehls an die Verlaufsdatei angehängt wird, anstatt wenn die gesamte Shell abgeschlossen ist. (Dies bezieht sich nicht auf dieses Beispiel).
Dies gibt den Escape-Code "\ 033] 0;" Hiermit wird der Fenstertitel mit den Variablen "user" @ "host" (Entfernen der längsten Übereinstimmung von rechts nach zuerst ".") und dann mit dem Arbeitsverzeichnis (Ersetzen von "$ HOME" durch "~") festgelegt.
Der obige Trick funktioniert mit jeder Terminal-Anwendung, die das dynamische Ändern des Fenstertitels unterstützt (was iTerm, Terminal.app, urxvt, aterm, eTerm. Xterm usw. alle tun). Sie können auch in die Shell-Variable "TITLEBAR" in der Bash-Dokumentation schauen, es ist ähnlich.
quelle
Dies sollte in jeder Shell funktionieren, aber es ist ein schmutziger .screenrc-Hack. Es übernimmt die Leitung Ihres Hardstatus, um zu funktionieren, was für einige Benutzer nicht akzeptabel sein kann. Aber es funktioniert im Gnome-Terminal auf dem neuesten Ubuntu, auch ohne die Termcapinfo- Zeile unten. In einigen Situationen sind möglicherweise tiefere Optimierungen erforderlich (ich habe beispielsweise PuTTY nicht getestet).
Gefunden unter diesem Link .
quelle
quelle
screen
hardstatus
entsprechend eingestellt haben und termcap / terminfo unterstützths|ts|fs|ds
.Diese Seite (die oben verlinkt wurde) ist die Lösung. Sie müssen jedoch sicherstellen, dass die Terminalzeichenfolge des Eintrags mit der ID-Zeichenfolge Ihres Terminals übereinstimmt (dh auf welche Variable TERM eingestellt ist), da sie sonst keine Auswirkung hat.
Hier eine Zusammenfassung dessen, was ich getan habe, was für mich nach Jahren, in denen ich nicht genug Zeit investiert hatte, um das herauszufinden, funktioniert hat:
Ermitteln Sie die ID-Zeichenfolge Ihres Terminals, indem Sie Folgendes ausführen:
Es wird wahrscheinlich so etwas wie "xterm" oder "linux" oder "rxvt" sagen.
Fügen Sie nun die folgende Zeile zu Ihrer .screenrc-Datei hinzu (oder fügen Sie eine hinzu, wenn sie nicht vorhanden ist), die sich in Ihrem Homedir (~ / .screenrc) befindet:
Der Schlüssel besteht darin, sicherzustellen, dass 'xterm' die oben angegebene ID-Zeichenfolge Ihres BEGRIFFS ist. Sie können für jeden verwendeten Begriffstyp mehrere Zeilen erstellen.
Zum Beispiel habe ich dies als meine .screenrc-Datei, weil ich sowohl xterms als auch den 'linux'-Begriffstyp verwende, wenn ich in eine Box sende:
Hoffentlich hilft das und ist völlig Shell-Agnostiker. Denken Sie daran, wenn Sie screen als root ausführen, müssen Sie ~ root / .screenrc zusätzlich zu Ihrer eigenen ~ / .screenrc-Datei wie dieser ändern.
quelle
Die Anweisungen hier erlaubten es mir, den Titel in rxvt von bash für mich zu aktualisieren - was zwar keine Hilfe ist, aber ich dachte, dass es sich lohnen könnte, dies zu untersuchen (Abschnitt Informative Statusleiste, wenn der Link nicht zum rechten Teil der Seite springt).
quelle