lsof /path/to/.file.swp
zeigt die Prozess-ID des betreffenden vim-Prozesses an. Wenn Sie ein Skript schreiben möchten, verwenden Sie pid=$(lsof -Fp "$swp_file"); pid=$
, um nur die Prozess-ID zu erhalten.
ps 12345
Wenn dann 12345 die Prozess-ID ist, werden einige Informationen zum Prozess angezeigt, insbesondere zur Angabe, auf welcher tty es ausgeführt wird ( ps -o tty= -p $pid
in einem Skript). Das tty identifiziert eindeutig ein tmux-Fenster (vorausgesetzt, der Prozess läuft innerhalb von tmux), aber ich weiß nicht, wie ich vom tty-Namen zur tmux-Sitzung wechseln soll.
Was Sie für die tmux-Sitzung erhalten würden, ist der Wert der TMUX
Umgebungsvariablen im vim-Prozess. Die Sitzungsnummer ist die letzte Nummer nach dem letzten Komma.
Die meisten Unices haben eine Möglichkeit, die Umgebung eines Prozesses herauszufinden, die Art und Weise unterscheidet sich jedoch zwischen den Unix-Varianten. Unter Linux können Sie </proc/$pid/environ grep -z '^TMUX='
den Wert von $TMUX
in process $pid
anzeigen, um die Sitzungsnummer als zu extrahieren $(</proc/$pid/environ grep -z '^TMUX=' | sed 's/.*,//')
.