Windows Terminal不原生支持多窗格同步输入,但可通过sendInput快捷键实现单窗格命令发送,或借助Terminus、ClusterSSH、tmux synchronize-panes等第三方工具实现跨会话同步。
windows terminal 本身不原生支持多标签或多窗格的“同步输入”功能(即在多个终端会话中同时键入相同命令),它默认将每个标签页、每个窗格视为独立会话。但你可以通过以下两种实用方式实现类似效果:一种是借助第三方工具(推荐且稳定),另一种是利用 windows terminal 的 sendinput 命令配合自定义键绑定(需手动触发,非实时联动)。
使用 Windows Terminal 内置 sendInput 实现手动同步输入
这是最轻量、无需额外安装的方式,适用于临时批量操作(如向多个 SSH 会话或 WSL 实例发送相同指令)。核心原理是:向当前聚焦窗格发送键盘输入,并可扩展为向同标签页内所有窗格广播。
- 确保你已在同一标签页中创建了多个窗格(例如 Alt+Shift+= 拆分)
- 打开设置(Ctrl+,),进入 设置 → 键盘快捷方式
- 添加新快捷键绑定,例如:
{
"command": {
"action": "sendInput",
"input": "git pull\n"
},
"keys": "ctrl+alt+g"
}
该配置按下 Ctrl+Alt+G 后,会在当前聚焦窗格中输入 git pull 并回车。若想让它作用于所有窗格,需配合脚本或外部工具——Terminal 自身不提供“广播到全部窗格”的内置 action。
借助第三方工具实现真正的多会话同步输入
如果你需要持续、自动、跨标签页甚至跨窗口的同步输入(比如管理多台服务器或并行调试多个容器),推荐使用以下成熟方案:
- ConPTY API 工具:Terminus(开源)或 ClusterSSH(Linux/WSL 环境更常用)——它们能连接多个终端会话并镜像输入
-
PowerShell 多会话控制:用
New-PSSession建立远程会话,再用Invoke-Command批量执行命令,虽非“实时打字同步”,但语义等效且更可靠 -
WSL + tmux + copycat 插件:在 WSL 子系统中运行 tmux,启用
setw -g synchronize-panes on,即可让所有 pane 实时同步输入(需在 WSL 终端内启用,Windows Terminal 只作为显示层)
为什么不能直接在设置里开个“同步开关”?
这不是遗漏,而是设计使然:Windows Terminal 定位是终端模拟器 + UI 容器,不是会话协调器。它的窗格和标签本质是多个独立的 ConPTY 实例,彼此隔离以保障稳定性与安全性。强行同步输入可能引发命令冲突(如一个窗格在编辑文件,另一个执行 rm)、光标错乱或历史记录混乱。因此官方未提供全局同步开关,也未计划加入该功能。
替代建议:用任务自动化代替手动同步
多数真实场景下,“同步输入”真正需求其实是“同步执行”。与其逐字镜像键盘,不如:
- 把常用命令写成 PowerShell 脚本,一键调用
ForEach-Object分发到多个配置文件 - 在 Windows Terminal 设置中为不同环境(Dev/Prod/Local)预设带参数的启动命令,用快捷键快速拉起一组已配置好的窗格
- 结合
wt命令行工具,在批处理或快捷方式中启动含多个窗格的布局,并预加载对应命令(如wt -p "Ubuntu" ; splitPane -p "PowerShell" -H)

















