适用于 macOS 14 及更高版本
像用 Vim 一样,管理你的窗口。
Vimdow 是一款用键盘操作的 macOS 窗口管理器。按下快捷键进入命令模式,就能用 h、j、k、l、计数等早已熟悉的 Vim 操作来移动窗口、调整大小、贴边和切换,全程不用碰鼠标。 还能按名称打开应用,或只保留正在使用的窗口、调暗其余窗口。
通过 Homebrew 轻松安装
brew install rath/tap/vimdow演示内容
- 按 Control–Option–A 进入命令模式。
- 每按一次 l,窗口向右移动一步。
- 输入 12j,一次向下移动 12 步。
- 按 Option–l,左上角不动,窗口向右变宽。
- 按 zz,窗口移到屏幕正中。
- 按 u 撤销上一步。
- 按 Control–W 再按 H,窗口铺满左半屏。
- 按 Q 给窗口标上编号,再按 2 切换到第二个窗口,同时退出命令模式。
- 再次进入命令模式,按 Control–W 再按 L,让它铺满右半屏。
- 按 Escape 回到普通模式。
为什么做 Vimdow
Vimdow 的作者从 1998 年起就一直在用 Vim,能不碰鼠标就绝不碰。Mac 上的大部分操作都能靠键盘完成,唯独窗口管理例外:哪怕只是把窗口挪一点,或者移到另一台显示器上,也得把手从基准键位上拿开。
2013 年的第一版只是个小小的 Objective-C 应用,专门为作者自己解决这个问题。它没有另起一套快捷键,而是直接沿用 Vim 的按键习惯:hjkl 移动,数字表示重复次数,0 和 $ 贴左右边,gg 和 G 贴上下边,zz 居中,u 撤销,/ 搜索。2026 年,它用 Swift 6 彻底重写,命令处理部分也有了自动化测试。
Vimdow 和 Vim 一样分模式操作。它不是平铺式窗口管理器,不会自动帮你排布窗口,只是让你亲手排布得更快。它源于一个人的使用习惯,现在公开出来,留给同样离不开 Vim 按键的人。
使用方法
进入命令模式
按下 ⌃⌥A 后松开。退出之前,所有按键都交给 Vimdow 处理,不会传到当前应用。
移动与调整大小
h j k l 按设定的步长移动当前窗口。先输入数字就能重复多次,按住不放则连续平滑移动;同时按住 Option 或 Shift,就变成调整大小。
退出
按 esc 或 . 回到普通模式,按键重新交给当前应用。
功能一览
带计数的移动与调整大小
步长可以自己设定,按住按键会连续执行,每一步都有平滑的过渡动画。12j 一次移动 12 步;Option 和 Shift 分别固定相对的两个角来调整大小。
贴边与平铺
0、$、gg、G 和 zz 不改变窗口大小,直接把它贴到屏幕边缘或移到正中。按 Control–W 后再按 H、J、K、L,窗口铺满对应的半屏;按 O 则铺满整个屏幕。
每个窗口独立撤销、重做
u 和 Control–R 可以撤销或重做每个窗口各自的移动、调整大小、贴边和跨显示器操作。即使中途用鼠标拖动过窗口,也照样能恢复。
记住每台显示器上的位置
Control–Option–K 或 L 把窗口移到下一台显示器。移回原来的显示器时,窗口会恢复到之前的位置和大小。
只切换常用窗口
在命令模式下按 M 标记窗口,再用 Control–Option–[ 切换到上一个标记窗口,Control–Option–] 切换到下一个。按标记顺序移动,首尾循环。目标窗口闪烁两次,每次0.18秒。标记保留到应用退出;隐藏的窗口重新显示后会再次参与切换。 如需在切换后显示 tmux 窗格编号,可在设置中开启;默认关闭。
快速切换窗口
按 Q 会在各窗口中央显示半透明黑色背景和大号白色编号。重叠的编号会自动分散,3秒没有键盘输入就取消选择。按数字选择窗口,也可用 / 搜索应用名称,再用 n 和 N 切换结果。
不用 Spotlight 也能启动应用
输入应用名称或系统设置面板名称,按 Return 即可打开。它会扫描 /Applications、系统应用文件夹和系统设置面板,并识别 Google Chrome 的 gc 这类首字母缩写。它会记住你选过的项目,下次输入相同内容时优先显示。快捷键默认为空,请在设置中录制 Option–Command–Space 等快捷键。
调暗其他窗口
按下 Control–Option–D,就像 HazeOver 一样,只保留你正在使用的窗口,所有显示器上的其他窗口都会蒙上一层半透明的黑色。点击窗口或切换应用时,明亮的窗口也会跟着变化。暗的程度在设置的 General → Dimming 中调整。全屏空间不会被调暗。
按喜好调整
移动和调整大小的步长可以分别设置;还能选择调整大小时是否停在屏幕边缘、是否开启动画,并自定义9个全局快捷键。也可以设置登录时自动启动 Vimdow。按 Command–W 关闭设置窗口。
命令模式速查
默认按 Control–Option–A 进入。在命令前输入数字,命令就会重复相应次数。并排列出的两个键,请依次按下。
| 按键 | 操作 |
|---|---|
| hjkl | 向左、下、上、右移动一步 |
| ⌥hjkl | 固定左上角,调整大小 |
| ⇧hjkl | 固定右下角,调整大小 |
| 12j | 重复:12j 向下移动 12 步 |
| u/⌃r | 撤销 / 重做当前窗口的上一次更改 |
| 0/$ | 贴到屏幕左 / 右边缘 |
| gg/G | 贴到屏幕顶部 / 底部 |
| zz | 移到屏幕正中 |
| ⌃wHJKL | 铺满左 / 下 / 上 / 右半屏 |
| ⌃wo | 铺满整个屏幕 |
| q1–9 | 按编号选择;Q 翻页;3秒没有输入则取消 |
| m | 标记/取消标记当前窗口,并退出命令模式 |
| ⌃⌥[/⌃⌥] | 切换标记的窗口(普通模式也可使用) |
| ⌃⌥d | 调暗除聚焦窗口以外的所有窗口(普通模式也可使用) |
| //n/N | 按应用名称搜索;下一个 / 上一个结果 |
| ⌃⌥k/⌃⌥l | 移到下一台显示器 |
| , | 打开设置 |
| esc/. | 退出命令模式 |
按键以 ANSI 键盘的物理位置为准,所以换成 JIS 等其他键盘布局,按的位置也不变。
常见问题
Vimdow 和 Rectangle 或平铺式窗口管理器有什么不同?
Rectangle 这类应用给每种布局各配一个全局快捷键,yabai、AeroSpace 这样的平铺式窗口管理器则会自动排布窗口。Vimdow 两者都不是:按一个快捷键进入命令模式,再用几个 Vim 按键移动窗口、调整大小、贴边和撤销。只要你不操作,任何窗口都不会自己移动。
不会 Vim 也能用吗?
能。记住 h、j、k、l 四个键就够用了,它们分别把窗口向左、下、上、右移动。计数、gg、zz 等命令可以等需要时再学,所有按键都列在上面的速查表里。
开着中文输入法也能用吗?
能。命令模式的按键以键盘上的物理位置为准,而不是输入的字符,所以开着中文输入法时,h、j、k、l 照样有效。按应用名称搜索时,也可以直接输入中文。
可以修改快捷键吗?
可以。包括进入命令模式的 Control–Option–A 和切换上一个和下一个标记窗口的 Control–Option–[ 和 Control–Option–] 在内,9个全局快捷键都能在设置中修改或清除。命令模式里的按键是固定的。
所有应用都能用吗?
只要 macOS 允许其他应用移动它的窗口就能用,绝大多数应用都是如此。如果应用拒绝移动或调整大小,比如尺寸固定的窗口,Vimdow 不会强行改变,只会发出提示音。
能只保留正在使用的窗口,把其他窗口调暗吗?
可以。按下 Control–Option–D,就像 HazeOver 一样,所有显示器上的其他窗口都会蒙上一层半透明的黑色,点击窗口或切换应用时,明亮的窗口也会跟着变化。暗的程度在设置的 General → Dimming 中调整,再按一次快捷键即可关闭。
可以在登录时自动启动 Vimdow 吗?
可以。在设置的 General → Startup 中开启 Open Vimdow at login,默认关闭。这项设置由 macOS 的“系统设置 → 通用 → 登录项”管理,Restore Defaults 不会更改它。
怎么更新?
先退出 Vimdow,再下载最新的 Vimdow.zip,替换“应用程序”文件夹里的旧版本。通过 Homebrew 安装的用户可运行 brew update 和 brew upgrade --cask vimdow。设置会保留,窗口标记会在重启时清空。应用本身不会检查更新。
获取 Vimdow
Vimdow 1.3.1 支持 macOS 14 或更高版本,适用于 Apple 芯片和 Intel Mac。应用已用 Developer ID 签名,并通过 Apple 公证。
解压下载的 zip,把 Vimdow.app 拖到“应用程序”文件夹。
打开应用,然后在“系统设置 → 隐私与安全性 → 辅助功能”中为它开启权限。
按 ⌃⌥A 进入命令模式。
也可通过 Homebrew 安装。安装后打开应用并授予辅助功能权限:
brew install rath/tap/vimdow
关于辅助功能权限
凡是要移动其他应用窗口的应用,macOS 都要求先获得这项权限。Vimdow 只把它用在移动窗口上:不联网,不收集使用数据,任何信息都不会离开你的 Mac。