tmuxでptyまたはpidを見つけて切り替える方法は?

tmuxでptyまたはpidを見つけて切り替える方法は?

どの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内で完全に実行できますか?

関連情報