tmux 会话的交互式搜索

tmux 会话的交互式搜索

当使用交互式会话菜单 ( <prefix>-s) 在 tmux 会话之间切换时,你可以通过输入会话的数字或字母索引跳转到特定会话,例如

(0) + first_session: 1 windows (1) + second_session: 2 windows (2) + third_session: 1 windows (3) + secret_session: 1 windows

按下1即可打开second_session会话。

我经常打开 20 多个 tmux 会话,我想有一种无需查看整个列表即可进行搜索的方法。有没有办法改变行为以进行交互式搜索?也就是说,我想输入sec并将列表缩小到

(1) + second_session: 2 windows (3) + secret_session: 1 windows

我已经在 Google 上搜索了很多次,但什么也没找到;这种行为可能吗?

答案1

是的,但据我所知,你需要一个额外的工具来进行搜索。我正在使用陣陣用于(模糊)搜索。安装 fzf 后,您可以使用以下配置来设置搜索的会话切换:

bind C-j split-window -v "tmux list-sessions | sed -E 's/:.*$//' | grep -v \"^$(tmux display-message -p '#S')\$\" | fzf --reverse | xargs tmux switch-client -t"

我自己没有弄清楚这一点,但从 Chris Toomey 的公共 tmux 配置

答案2

@bartj3:谢谢。这太酷了!

这是一个稍微增强的版本(没有 sed 和 grep),用于切换会话和窗口:

bind j split-window -v "tmux list-sessions -F '#S' | fzf --reverse | xargs tmux switch-client -t"
bind k split-window -v "tmux list-window -F '#W' | fzf --reverse | xargs tmux select-window -t"

问题:

如果在同步窗格打开的情况下使用上述操作,您的搜索按键也将在其他窗格中输入。

问题:

有人知道如何限制搜索窗格的按键吗?

相关内容