どのtmuxウィンドウがpidまたはttyから来たかを調べるシェルスクリプトがあります。
#!/bin/sh
if [ -c "$1" ]; then
tty="$1"
else
tty=/dev/$(ps -q "$1" -otty=)
fi
target=$(tmux list-panes -aF '#{pane_tty} #S:#I' | sed -ne "s~$tty \(.*\)~\1~p")
echo "$target"
(わかりやすくするためにエラー処理を削除)
ここで楽しんで、次のようにコピーモードのキーバインディングを設定できます。
bind-key -T copy-mode-vi C-] switch-client -t'#(my_script.sh "#{copy_cursor_word}")'
したがって、ファイルを編集しようとしたときにvimに「このファイルはすでに開いています」というメッセージが表示されたら、カーソルをPIDに移動して^]を押して、開いているエディタに直接移動できます。
しかし、しなければならない外部スクリプトでこれを達成する必要がありますか、それともtmux内で完全に実行できますか?