告别 Cmd+Tab 的局限:Switch,一个键盘驱动的 macOS 窗口切换器
一个被 macOS 用户忍了很久的问题
先做个测试。你在编辑器里同时开了两个项目窗口,想从 A 切到 B,按下 ⌘-Tab——发生了什么?
它把你切到了”编辑器”这个应用,而不是你想要的那个窗口。 再按一次 ⌘-Tab,可能跳去别的应用了。你只好松开键盘,去点 Dock 图标、或者用 `⌥-`` 一个个窗口翻——如果你的项目窗口有五个,这个动作就重复五次。
macOS 的窗口管理逻辑一直是争议点:
⌘-Tab切换的是”应用”,不是”窗口”——同一个 App 的多个窗口不在切换范围里- `⌥-`` 能在当前 App 内切窗口,但只能循环,看不到全貌,窗口多了靠盲翻
- Mission Control 可视化够好,但不行——有动画延迟、要鼠标指、窗口一多全缩成小方块认不出来
- 跨 Space 找窗口更痛苦:
⌃-方向键切 Space,慢,而且切过去之后还得再找
这套组合拳对付”两三个窗口”够用,一旦进入”十几个窗口 + 多个 Space”的工作状态,就开始消耗你的注意力和时间。
现有方案:不是没有,是不够顺
公平地说,这不是没解。市面上已经有一批工具:
- macOS 原生方案:
⌘-Tab+ `⌥-`` + Mission Control,免费但如上所述,窗口维度基本缺失; - AltTab:开源免费的窗口切换器,功能齐全,社区活跃;
- Witch / Hyperswitch:付费方案,走精细化路线。
它们都能解决问题。但我最近用到一个新的开源项目 Switch,在”键盘驱动”这个点上做得非常纯粹——用了几周,决定写篇文章推荐。
Switch 是什么
一句话:一个键盘驱动的 macOS 窗口切换器。
- 作者:Sanyam Garg(独立开发者)
- 语言:Swift
- 价格:免费
- 要求:macOS 14+,已通过 Apple 公证(Notarized)
- 开源:github.com/Sanyam-G/switch,588 Stars
- 许可证:FSL-1.1-MIT(源码可见,非竞争性使用免费,2028 年自动转为 MIT)
它做的事很简单:把”所有窗口”平铺到一个选择面板里,用键盘完成切换——从触发到落地,手不离键盘。
核心功能:为什么它比原生顺手
1. 切换的是「所有窗口」,不是「应用」
⌘-Tab 在 Switch 里被重新定义:列出的是每一个窗口。同一个 App 的三个窗口、三台显示器的窗口、所有 Space 的窗口,全在同一个面板里。你要哪个,选哪个。
想只在一个应用内切换?`⌥-`` 依然是”当前 App 内循环”的语义,两个快捷键各司其职、不打架。
2. 打字即过滤
这是我最喜欢的功能。面板展开后直接打字,实时过滤窗口——按标题、按应用名都行。
比如输入 docs,只剩标题里带 “docs” 的窗口;输入 chrome,只剩浏览器。相比”在缩略图里用眼睛找”,打字过滤是确定性操作:你不需要看,你只需要记得名字。
3. 数字键直选 + Vim 导航
- 面板里的窗口带编号,
1-9直接选(支持小键盘) - 可选 Vim 风格
H J K L方向键导航——不用离开主键盘区
手速快的人会喜欢这个设计:⌘-Tab → 打字 → 2 → 回车,全程不超过一秒。
4. 跨 Space:一键把窗口拉过来
这是 macOS 原生体验里完全没有的能力:
其他 Space 上的窗口会出现在面板里,标记 OTHER SPACE。选中它,窗口直接移动到当前 Space——没有 Mission Control 的动画,没有”先切过去”这一步。
如果你习惯用多个 Space 分隔”工作/沟通/娱乐”,这个功能会立刻改变你的习惯:不需要来回切 Space 了,需要哪个窗口,直接拉过来。
(不喜欢混合?Settings → Cross-Space 可以关掉,或改成按最近使用排序。)
5. 其他贴心细节
- MRU 排序:最近使用的窗口排最前——符合直觉,减少找的时间
- 后台预热:面板在后台预加载,
⌘-Tab按下去瞬间弹出,没有加载感 - 垂直列表模式:Settings → Behavior → Vertical list,单列布局,带应用图标 + 标题 + 缩略图,比平铺更适合窄屏/多窗口
- Sticky 模式:松开
⌘后面板不关闭——适合”挑一个窗口看看”的犹豫场景,Esc取消 - 窗口操作键:
⌘W直接关窗口、⌘Q退出应用、⌘H隐藏——在切换器里就把杂事办了 - 排除应用:把不想看见的窗口(比如某个常驻后台的 App)加进黑名单
- 内置更新:每天后台检查更新,Sparkle + EdDSA 签名校验
安装:一行命令
Homebrew 用户:
1 | brew install --cask Sanyam-G/switch/switch |
或者从官网下载 .dmg:https://switch-dev.sanyamgarg.com
装完首次运行需要授予「辅助功能」权限(macOS 窗口类工具都需要这个,属正常要求),然后就能用了。
卸载也同样干净:
1 | brew uninstall --cask Sanyam-G/switch/switch |
快捷键速查
| 快捷键 | 作用 |
|---|---|
⌘-Tab |
打开切换器,列出所有窗口 |
| `⌥-`` | 当前应用内切换窗口 |
| 直接打字 | 实时过滤窗口 |
1-9 / 小键盘 |
按编号直选 |
H J K L |
Vim 风格导航(可选开启) |
⌘W / ⌘Q / ⌘H |
关窗口 / 退出应用 / 隐藏应用 |
↵ / Esc |
确认切换 / 取消 |
适合谁用
- 窗口开得多的人:编辑器多项目、浏览器多窗口、终端多会话——数字键直选比翻 Tab 快一个量级;
- 重度多 Space 用户:跨 Space 直接拉窗口,这是原生没有的能力;
- 键盘党 / Vim 用户:打字过滤 + HJKL 导航,全程不碰鼠标;
- 从 Windows 过来的人:Windows 的 Alt+Tab 本来就切”所有窗口”,Switch 让 macOS 找回了这种熟悉感。
可能不需要的场景:如果你的日常就是”两三个窗口来回切”,原生 ⌘-Tab 够用了,装它反而多一层学习成本。
写在最后
macOS 的窗口切换体验,多年来的槽点其实很具体:⌘-Tab 缺了”窗口”这个维度。 Switch 没有花哨的概念,就是把这一块补齐了——所有窗口一屏列出、打字过滤、数字直选、跨 Space 拉取,每一步都在减少你的手部动作和注意力开销。
它免费、开源、已公证、Swift 原生实现,作者一个人维护,更新还挺勤(4 月发布,持续迭代到 9 月)。对效率工具感兴趣的话,值一个 brew install 的时间成本。
装完记得去 Settings 里把 Sticky 模式和跨 Space 都试一遍——这两个是最容易被忽略、但用过就回不去的功能。
项目地址:https://github.com/Sanyam-G/switch
官网:https://switch-dev.sanyamgarg.com


