用 Vim 的词汇,管理你的窗口。
Vimdow 是一款由键盘驱动的 macOS 窗口管理器。按一个快捷键进入命令模式,然后用 h、j、k、l、计数和撤销来移动、缩放、贴边和切换窗口。鼠标留在原处。
演示内容
- Control–Option–A 进入命令模式。
- 每按一次 l,窗口向右移动一步。
- 12j 向下移动十二步。
- Option–l 固定左上角,向右加宽窗口。
- zz 让窗口在显示器上居中。
- Control–W 之后按 H,填满左半屏。
- u 撤销上一次更改。
- Escape 回到普通模式。
为什么做 Vimdow
写 Vimdow 的人从 1998 年起就一直用 Vim,能不碰鼠标就不碰。Mac 上的大多数操作都能靠键盘完成,唯独窗口管理不行:把窗口挪几个点,或者送到另一台显示器,总得把手从主键位上移开。
2013 年的第一版是一个小小的 Objective-C 应用,只为一个用户解决这一个问题。它没有发明一套新快捷键,而是把窗口操作映射到 Vim 已有的词汇上:hjkl 移动,数字重复,0 和 $ 到左右边缘,gg 和 G 到顶部和底部,zz 居中,u 撤销,/ 搜索。2026 年,它用 Swift 6 重写,并配上了经过测试的命令引擎。
Vimdow 和 Vim 一样是模式化的。它不是平铺式窗口管理器,也不会替你排列窗口,只是让你自己排列得更快。它出自一个人的偏好,也分享给所有手上有同样习惯的人。
使用方式
进入命令模式
按下 ⌃⌥A 然后松开。在退出之前,按键会发给 Vimdow,而不是最前面的应用。
移动与缩放
h j k l 按设定的步长移动当前窗口。先输入数字可以重复,按住不放会平滑连续移动,加上 Option 或 Shift 则变为缩放。
退出
按 esc 或 . 回到普通模式,按键重新发给应用。
它能做什么
带计数的移动与缩放
步长可配置,按住按键会重复,每次更改都平滑滑入到位。12j 移动十二步;Option 和 Shift 分别以相对的角为基准缩放。
贴边与平铺
0、$、gg、G 和 zz 在保持大小的前提下把窗口放到边缘或中央。Control–W 之后按 H、J、K、L 或 O,填满半屏或整个显示器。
按窗口独立的撤销与重做
u 和 Control–R 沿着每个窗口自己的历史前后移动,涵盖移动、缩放、贴边和跨显示器操作,即使你中途用手拖动过也一样有效。
会记忆的显示器
Control–Option–K 和 L 把窗口送到下一台显示器。回来时,会恢复它在那台显示器上原有的位置和大小。
不用找的切换
Q 最多显示九个带编号的窗口,按数字即可聚焦。/ 按应用名称搜索,n 和 N 在结果之间循环。
随你调整
分别设置移动和缩放的步长,选择缩放是否在显示器边缘停下,关闭动画,并重新绑定五个全局快捷键。
命令模式速查
默认用 Control–Option–A 进入。在命令前输入数字即可重复。并排显示的两个键依次按下。
| 按键 | 操作 |
|---|---|
| hjkl | 向左、下、上、右移动一步 |
| ⌥hjkl | 固定左上角缩放 |
| ⇧hjkl | 固定右下角缩放 |
| 12j | 重复:12j 向下移动十二步 |
| u/⌃r | 撤销 / 重做当前窗口的上一次更改 |
| 0/$ | 移到显示器的左 / 右边缘 |
| gg/G | 移到顶部 / 底部边缘 |
| zz | 在显示器上居中 |
| ⌃wHJKL | 填满左 / 下 / 上 / 右半屏 |
| ⌃wo | 填满整个显示器 |
| q1–9 | 聚焦带编号的窗口;再按 Q 显示下九个 |
| //n/N | 按应用名称搜索;下一个 / 上一个结果 |
| ⌃⌥k/⌃⌥l | 移到上一台 / 下一台显示器 |
| , | 打开设置 |
| esc/. | 退出命令模式 |
按键和 Vim 一样遵循 ANSI 物理键位,因此在 JIS 等其他布局上位置不变。
获取 Vimdow
需要 macOS 14 或更高版本,以及辅助功能权限。
目前还没有二进制下载。Vimdow 需要用 Xcode 27 和 XcodeGen 从源码构建。README 详细说明了配置、构建,以及如何签名以便重新构建后仍保留辅助功能权限。
关于辅助功能权限
macOS 要求所有会移动其他应用窗口的应用申请此权限。Vimdow 只用它做这一件事:不访问网络,没有分析统计,没有任何数据离开你的 Mac。