lsof /path/to/.file.swp покажет идентификатор процесса нарушающего процесса vim. Если вы хотите написать скрипт, используйте pid=$(lsof -Fp "$swp_file"); pid=${pid#p} чтобы получить только идентификатор процесса.
Затем ps 12345 где 12345 - это идентификатор процесса, покажет некоторую информацию о процессе, в частности, о том, на каком tty он выполняется (ps -o tty= -p $pid в скрипте). Tty однозначно идентифицирует окно tmux (при условии, что процесс выполняется внутри tmux), но я не знаю, как перейти от имени tty к сеансу tmux.
Что бы дать вам сеанс tmux - это значение переменной окружения TMUX в процессе vim. Номер сеанса - это последний номер после последней запятой.
У большинства объединений есть способ узнать среду процесса, но этот способ отличается в разных вариантах Unix. В Linux вы можете использовать </proc/$pid/environ grep -z '^TMUX=' чтобы показать значение $TMUX в процессе $pid , поэтому вы можете извлечь номер сеанса как $(</proc/$pid/environ grep -z '^TMUX=' | sed 's/.*,//') .