我希望 tmux 始终在左侧显示会话窗口列表。
当我单击列表中的某个窗口时,它应该切换到右侧的该窗口(无预览 - 直接切换到它),并将焦点切换到该窗口,但仍然保持左侧的窗口列表打开切换到的窗口的行现在突出显示。结果看起来类似于mprocs 提供。
我以为choose-tree
命令可能会有所帮助,也许可以使用自定义模板。通常choose-tree
在用户选择窗口后消失,因此可能必须在用户选择后重新运行(可能在“while”循环中)。
我应该如何实现这个目标?
答案1
创建三个会话:
menu
windows
main
,包含一个窗口,水平拆分为两个窗格,分别运行附加到menu
和windows
会话的客户端。
在 中menu
,choose-tree
循环运行:
- 仅显示会话中窗口的过滤器
windows
,以及 - 一个调用的模板
select-window
:
while true; do
tmux choose-tree -f '#{==:windows,#{session_name}}' \
'select-window -t %%; select-pane -t main:0.1'
done
附加到主会话。
去做:
- 选择窗口后,所选窗口会
menu
跳回顶部。 - 窗口选择
menu
需要双击而不是单击。 menu
windows
在顶部显示会话(我们只需要一个窗口列表,而不是树)。确实如此,但有延迟。menu
在会话中创建新窗口时不会自动更新windows
。menu
不会自动调整大小为最长窗口名称的宽度。menu
没有“新窗口”右键菜单条目。