ウインドウ操作を、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 の外へ出るものは何もありません。