You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为tmux绑定按键,向会话所有窗格发送shell命令?

在tmux所有窗格批量执行source ~/.zshrc的快捷键方案

核心实现

直接在~/.tmux.conf中添加以下快捷键绑定,就能通过任意窗格触发命令,自动在当前会话的所有窗口、所有窗格中重载.zshrc:

bind-key C-S-r run-shell 'tmux list-panes -s -F "#{session_id}:#{window_id}:#{pane_id}" | while read pane; do tmux send-keys -t "$pane" "source $HOME/.zshrc" C-m; done'

命令解释

  • bind-key C-S-r:将功能绑定到Ctrl+Shift+R,你可以替换成自己习惯的组合(比如M-r代表Alt+R,C-r代表Ctrl+R,注意避免和已有快捷键冲突)
  • run-shell:让tmux执行后续的shell脚本逻辑
  • tmux list-panes -s -F "#{session_id}:#{window_id}:#{pane_id}":列出当前会话(-s限定当前会话)下的所有窗格,输出格式包含会话、窗口、窗格的唯一标识
  • while read pane; do ... done:遍历每一个找到的窗格
  • tmux send-keys -t "$pane" "source $HOME/.zshrc" C-m:向指定窗格发送source $HOME/.zshrc命令,再发送回车(C-m模拟回车键)执行

额外说明

  • 无需依赖synchronize-panes,执行后不会修改tmux原有配置,完全不用手动恢复
  • 如果需要对所有tmux会话的所有窗格执行命令,去掉list-panes后的-s参数即可
  • 若部分窗格处于非zsh环境(比如运行了编辑器、数据库cli等),发送的命令不会生效,这属于正常情况——source仅在shell环境下有意义

内容的提问来源于stack exchange,提问作者Life5ign

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 19:36:11