lsof /path/to/.file.swp
akan menunjukkan ID proses dari proses vim yang menyinggung. Jika Anda ingin menulis skrip, gunakan pid=$(lsof -Fp "$swp_file"); pid=${pid#p}
untuk mendapatkan hanya ID proses.
Kemudian ps 12345
di mana 12345 adalah ID proses akan menunjukkan beberapa informasi tentang proses, khususnya pada apa tty itu berjalan ( ps -o tty= -p $pid
dalam naskah). Tty secara unik mengidentifikasi jendela tmux (dengan asumsi proses berjalan di dalam tmux), tapi saya tidak tahu bagaimana cara beralih dari nama tty ke sesi tmux.
Apa yang akan memberi Anda sesi tmux adalah nilai TMUX
variabel lingkungan dalam proses vim. Nomor sesi adalah angka terakhir, setelah koma terakhir.
Sebagian besar unix memiliki cara untuk mengetahui lingkungan suatu proses, tetapi caranya berbeda antara varian unix. Di Linux, Anda bisa menggunakan </proc/$pid/environ grep -z '^TMUX='
untuk menunjukkan nilai $TMUX
dalam proses $pid
, sehingga Anda dapat mengekstrak nomor sesi sebagai $(</proc/$pid/environ grep -z '^TMUX=' | sed 's/.*,//')
.