我有各种围绕 tmux 和历史记录的工具,所以我可以追溯在哪里发生了什么(特别是在哪个窗格中)。
在我的 zsh preexec 中,我可以注销(对于我的自定义 shell 命令历史记录格式)与我运行的命令相关的各种信息:
$TTY
会告诉我例如/dev/pts/34
$(tmux display -p "#{window_id} #D")
为我提供例如@4 %28
即使我只有$TTY
,我也可以使用
tmux list-panes -a -F '#{pane_tty} #{window_id} #D'
来绘制地图。
现在我只想要这个工作流程:我正在查看我的自定义历史记录日志,并且能够获取,@4 %28
但似乎我必须发出两次tmux
调用才能真正聚焦相关窗格。我必须运行
tmux select-window -t @4 && tmux select-pane -t %28
只是想知道是否有更直接的方法。tmux select-pane -t @4 %28
或者,真的,select-pane
大概只需为我聚焦窗口即可?
答案1
我总体上对 cli 界面的简单性感到满意tmux
...select-pane
只需选择该窗格,然后保持窗口和会话状态不变。
在我的问题中,我没有考虑到如果我碰巧连接到不同的窗格,尝试“导航”到特定窗格会产生什么影响会议。CLI 允许我随意改变任何会话的当前窗口和当前窗格,以及切换到任何会话。我们只是没有一个友好的界面来轻松地完成所有这些操作。(一个不轻松的例子是会话 ID 的样子,所以$2
你必须在单引号中指定它们)