Linux怎么使用Tmux分屏并同步输入
Tmux分屏需先按Ctrl+b,再按%垂直分屏或"水平分屏,注意英文输入法。同步输入使用setwsynchronize-paneson命令,仅当前window生效。关闭需输入off,可通过配置文件永久启用mouse和同步功能。注意Ctrl+c会同时发送所有pane,避免误操作。
先说说tmux的分屏操作和同步输入功能。这两个功能在日常使用中非常实用,但操作上确实有几个容易出错的点,尤其是对于新手来说。

tmux分屏操作:% 和 " 键别按错
垂直分屏(左右)用的是 %,水平分屏(上下)则是 "(英文双引号)。这里有个常见雷区:不是单引号、不是中文引号、也不是 Shift+' 打出来的符号。很多新手卡在这里,往往是输入法没切成英文模式,或者 Caps Lock 开着导致 " 没正确输出。操作流程是:按完 Ctrl+b 后松手,再单独按 ",千万别连着按。
分屏之后,焦点默认还留在原来的 pane 里。想跳到新 pane?用方向键(↑↓←→)就行,不需要鼠标——除非你提前开启了鼠标支持。
- 确认当前前缀键:默认是
Ctrl+b,但很多人已经改成Ctrl+a了。操作前记得确认自己用的是哪个。 - 关 pane 别手滑:先按
x,然后必须再按y确认才能关闭,否则只是弹出提示,不会真正执行。 - 临时把所有 pane 合并回单个:按
Ctrl+b再按!(英文感叹号)。
开启同步输入:setw synchronize-panes on
同步功能只对当前 window 生效,不会影响其他 window,也不能跨会话使用。在命令行里输入 setw synchronize-panes on 就生效了,所有 pane 的键盘输入会实时镜像过去。
关闭同步不能靠再次按某个快捷键,得手动输入 setw synchronize-panes off,或者提前在配置文件里绑定一个快捷键。
- 进入命令模式:按
Ctrl+b后松开,再按:(英文冒号)。 - 输入完整命令:
setw synchronize-panes on,然后回车;关闭的时候输入off。 - 同步期间,
Ctrl+c会同时发给所有 pane,用于批量 kill 进程很方便,但也容易误杀。 - 如果某个 pane 正在 vim 里编辑,同步之后光标位置不会自动对齐,容易出现混乱。
永久启用同步和鼠标:改 ~/.tmux.conf
每次进入会话都手动开同步确实太麻烦了,直接写进配置文件是最稳妥的方案。不过要注意:改完不重新加载(reload)是不会生效的,而且 reload 之前得确保 ~/.tmux.conf 文件存在且语法没问题。
推荐一个最小可用配置,就两行:
set -g mouse onset -g synchronize-panes on
然后重载:Ctrl+b → : → 输入 source-file ~/.tmux.conf,回车。
- 启用
mouse on后,可以用鼠标点选 pane、拖拽调整大小、滚动滚轮查看历史记录,比单纯用方向键快得多。 synchronize-panes默认是off,需要手动设成on才能全局生效,不是“默认开启”。- 如果 reload 时报错,大概率是引号不匹配或者漏了空格。可以在 shell 里直接用
tmux source-file ~/.tmux.conf来试试,更容易定位问题。
同步功能的边界和坑
同步并不是万能的:它只负责转发按键事件,并不保证输出完全一致。举个例子,一个 pane 里跑着 ssh,另一个跑着 vim,同步输入之后,ssh 可能会断连,vim 也可能进错模式。
真正需要留神的是退出行为——Ctrl+d 或 exit 会在所有 pane 同时触发。要是某个 pane 正好是 ssh 连接,整个会话可能会意外退出。
- 同步只作用于当前 window,新开的 window 不会继承这个设置,得单独开启。
- 复制粘贴不受同步影响,每个 pane 的剪贴板仍然是独立的。
- 如果终端尺寸不一致(比如某个 pane 被拉得很窄),长命令可能会出现换行错位的情况,看起来就像“没同步”一样。
- 使用 tmux + zsh + fzf 这类带交互菜单的工具时,同步会导致菜单弹出位置混乱,建议临时关闭同步功能。


































