
ich benutzeBildschirmmit vielen (mehr als 10) lokalen Bash-Sitzungen darin. Ich schicke einige Prozesse (wie vi file
) in den Hintergrund und wechsle sehr oft zwischen Sitzungen und manchmal ist es sehr ärgerlich, herauszufinden, wo die Datei, die ich bearbeiten muss, bereits geöffnet ist.
Gibt es eine Möglichkeit, solche Hintergrundprozesse freizugeben, um von jeder Bash-Sitzung auf diesem Bildschirm darauf zugreifen zu können?
Antwort1
Nein, die Dokumentation fürBash-Jobsteuerungerwähnt keine Unterstützung für das Teilen oder Übernehmen von Jobs zwischen verschiedenen Bash-Sitzungen.
Jedoch,reptyrermöglicht Ihnen, die Kontrolle über einen Job zu übernehmen, der in einer anderen Sitzung im Hintergrund ausgeführt wurde und der Ihren Wünschen möglicherweise nahe genug kommt.
reptyr benötigt die PID des Jobs, den Sie übernehmen möchten, Sie müssen diese PID also zuerst finden. Ob das mehr Arbeit bedeutet, als einfach das ursprüngliche Bildschirmfenster zu finden, können Sie selbst entscheiden.
Es klingt, als ob Sie dies hauptsächlich mit vim tun möchten (ja, Sie sagten vi, aber ich nehme an, dass Sie im Hintergrund vim ausführen). vim -r
gibt Ihnen eine Liste aller offenen Vim-Sitzungen sowie der Dateien, die sie bearbeiten. Lesen Sie die Liste, suchen Sie die PID, die die gewünschte Datei verwendet, und führen Sie aus reptyr <pid>
.
Um genau zu sein: Vim hindert Sie nicht daran, eine Datei einfach zu bearbeiten, die bereits woanders geöffnet ist (mit). vim -r <filename>
Denken Sie jedoch daran, die Datei erneut mit zu laden, :e
wenn Sie zur ursprünglichen Sitzung zurückkehren, damit Ihre neuen Änderungen auf die neueste Version angewendet werden. Vim erinnert Sie bei bestimmten Ereignissen daran.
Antwort2
Ich vermute, die Lösung Ihres Problems liegt woanders: Sie sollten ein Skript schreiben, das alle Ihre Hintergrundprozesse und die jeweiligen screen
Fenster anzeigt.
Wenn dies eine Option für Sie ist, würde ich etwas Code vorschlagen.