lsof /path/to/.file.swp
mostrará o ID do processo do processo vim ofensivo. Se você quiser escrever um script, use pid=$(lsof -Fp "$swp_file"); pid=${pid#p}
para obter apenas o ID do processo.
Em seguida, ps 12345
onde 12345 é o ID do processo mostrará algumas informações sobre o processo, em particular o que está sendo executado em ( ps -o tty= -p $pid
em um script). O tty identifica unicamente uma janela do tmux (assumindo que o processo está sendo executado dentro do tmux), mas eu não sei como ir do nome do tty para a sessão do tmux.
O que daria a você a sessão tmux é o valor da variável de ambiente TMUX
no processo vim. O número da sessão é o último número, após a última vírgula.
A maioria dos unices tem uma maneira de descobrir o ambiente de um processo, mas o caminho difere entre variantes unix. No Linux, você pode usar </proc/$pid/environ grep -z '^TMUX='
para mostrar o valor de $TMUX
no processo $pid
, para poder extrair o número da sessão como $(</proc/$pid/environ grep -z '^TMUX=' | sed 's/.*,//')
.