快速跳转到 tmux 会话

快速跳转到 tmux 会话

实际上有什么方法/插件能够快速跳转到会话吗?

目前我<leader>s打开会话列表页面,然后选择我想要的一个。

如果我有一个我想经常跳到的会议,我不知道该怎么做。

答案1

您可能正在寻找“switch-client”命令

switchc -t <session name|number>

例子

# create a named session
tmux new -s 'main_session'

# to switch to it you would use the command
switchc -t 'main_session'

对于经常跳转的会话,如果每次都命名相同则可以为其绑定一个密钥。在你的 ~/.tmux.conf 文件中添加

bind  J  switchc -t 'main_session'

其他不错的选择是:

# last session used, great for toggling between two sessions
# tmux binds this command to 'L' by default
switchc -l

# to rotate through all sessions
switchc -n

# to go to a named session
command-prompt -p 'switch to session : ' 'switchc -t %1'

您可以将这些绑定添加到 ~/.tmux.conf

# rotate through sessions
bind  R  switchc -n

# go to a session by name
bind  S  command-prompt -p 'Session name : ' 'switchc -t %1'  

答案2

我发现了这个很棒的 blob 帖子https://waylonwalker.com/tmux-fzf-session-jump/配置一个键(Ctrl-J在下面的示例中)来弹出一个窗口以选择要切换到的会话。它用弗兹夫以交互方式搜索所有可用会话:

bind C-j new-window -n "session-switcher" "\
    tmux list-sessions -F '#{?session_attached,,#{session_name}}' |\
    sed '/^$/d' |\
    fzf --reverse --header jump-to-session --preview 'tmux capture-pane -pt {}'  |\
    xargs tmux switch-client -t"

使用 tmux 3.2 及更高版本,还可以使用命令display-popup创建弹出窗口:

bind C-j display-popup -E "\
    tmux list-sessions -F '#{?session_attached,,#{session_name}}' |\
    sed '/^$/d' |\
    fzf --reverse --header jump-to-session --preview 'tmux capture-pane -pt {}'  |\
    xargs tmux switch-client -t"

相关内容