Mein Verständnis ist, dass meine Terminalfenster mit Lion ihren Zustand wiederherstellen sollten. Allerdings passiert dies bei mir nicht. Ich frage mich, ob das daran liegt, dass ich tcsh anstelle von bash verwende?
Kann ich etwas tun, damit meine iterm2-Sitzungen dort fortgesetzt werden, wo sie aufgehört haben?
Mein aktueller Versuch, dies zu tun, war zu verwenden
alias precmd 'if ( $?TERM_PROGRAM && ${TERM_PROGRAM} == "iTerm.app" ) /opt/local/libexec/gnubin/echo -ne "\033];$cwd\007"'
set prompt = '%{\e]2;%~\a%}%S[%m:%c3] %n%#%s '
Dies setzt jedoch nur die Beschriftungen der Registerkarten. Die Bezeichnung des Fensters erhält die abgekürzten Dateinamen mit ~ anstelle des vollständigen Dateinamens. Ich weiß nicht, ob dies damit zusammenhängt, dass ich die Wiederaufnahme des Terminals nicht erhalten habe. Auf jeden Fall, wenn ich beende und neu starte, sind alle meine Terminalfenster und Registerkarten wieder in meinem Home-Verzeichnis.
Zusätzliche Bonuspunkte wären eine Lösung, die empfindlich auf die Verwendung von Slogin reagiert.
Ich kann auch mit dem eingebauten Apple-Terminal nicht das korrekte Wiederaufnahmeverhalten erhalten, wenn ich das obige auf ändere
if ( $?TERM_PROGRAM && ( ${TERM_PROGRAM} == "iTerm.app" || ${TERM_PROGRAM} == "Apple_Terminal") ) then
alias precmd ' /opt/local/libexec/gnubin/echo -ne "\033];$cwd\007"'
set prompt = '%{\e]2;%~\a%}%S[%m:%c3] %n%#%s '
endif
Ich kehre nicht in dasselbe Arbeitsverzeichnis zurück, und obwohl ich den Befehlsverlauf sehen kann, kann ich ihn nicht verwenden (ich kann zB nicht ^P verwenden, um nach oben zu gehen, und der Verlaufsbefehl gibt nichts zurück). Ich glaube also , dass das irgendwie nicht mit tcsh funktioniert, im Gegensatz zu bash. Meine Kollegen versichern mir, dass sie das Arbeitsverzeichnis beim Beenden der Anwendung nicht verlieren.
Sie könnten dem Startskript Ihrer Standard-Shell so etwas hinzufügen (meins ist zsh, die meisten Leute verwenden bash, denke ich, also müssen Sie möglicherweise etwas anpassen.)
Hier ist mein bisschen Screen-Jiggery-Pokery (in meiner .zshrc)
# Autoload screen if we aren't in it. (Thanks Fjord!)
if [[ $STY = '' ]] then screen -xRR; fi
Ich habe das irgendwo im Internet (ich weiß nicht mehr wo, und ich weiß nicht, wer Fjord ist, aber gut zu ihm.
Damit können Sie Ihr iTerm-Fenster schließen und es wird dort fortgesetzt, wo Sie aufgehört haben, wenn Sie es erneut öffnen. Ich empfehle dringend, auch die Bildschirm-Manpage zu lesen.
Fahrrad
Chris Page
/etc/bashrc
. Möglicherweise müssen Sie jemanden finden, der das für tcsh anpasst. An anderer Stelle auf Stack Exchange habe ich äquivalenten Code für zsh gepostet.Chris Page
$TERM_SESSION_ID
auf eine eindeutige ID; sein genauer Wert kann sich ändern, aber es ist derzeit eine UUID. Beim Wiederherstellen wird diese ID wiederhergestellt. Beispielsweise können Sie die ID verwenden, um einen Dateipfadnamen zu generieren und Daten darin zu speichern und sie dann beim Start der Shell wieder einzulesen. Wahrscheinlich möchten Sie alte Sitzungsdaten regelmäßig löschen, da Sie nicht wissen, ob eine Sitzung jemals wiederhergestellt wird.