如何在 tmux 中查找并切换到 pty 或 pid?

如何在 tmux 中查找并切换到 pty 或 pid?

我有这个 shell 脚本来从 pid 或 tty 中找出哪个 tmux 窗口:

#!/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 中实现?

相关内容