ウインドウ操作を、Vim の語彙で。

Vimdow はキーボードで操る macOS 用ウインドウマネージャです。ショートカット一つでコマンドモードに入り、h、j、k、l と回数指定、アンドゥでウインドウを移動、リサイズ、整列、切り替えします。マウスはそのままの場所に。

Vimdow を入手GitHub でソースを見る

デモの内容

  1. Control–Option–A でコマンドモードに入ります。
  2. l を押すごとにウインドウが一歩右へ動きます。
  3. 12j で下へ十二歩移動します。
  4. Option–l は左上の角を固定したまま横に広げます。
  5. zz でディスプレイの中央に置きます。
  6. Control–W のあと H で左半分を埋めます。
  7. u で直前の変更を取り消します。
  8. Escape でノーマルモードに戻ります。

Vimdow を作った理由

Vimdow を書いたのは、1998年から Vim を使い続け、できればマウスに手を伸ばしたくない人間です。Mac の大半はキーボードで操作できますが、ウインドウ管理だけはそうではありませんでした。ウインドウを数ポイントずらす、別のディスプレイへ送る。そのたびにホームポジションから手を離す必要がありました。

2013年の最初のバージョンは、まさにその問題を、たった一人のユーザーのために解決する小さな Objective-C アプリでした。新しいショートカットを覚えさせる代わりに、ウインドウ操作を Vim の語彙に載せました。hjkl で移動、回数で繰り返し、0 と $ で端へ、gg と G で上下へ、zz で中央へ、u で取り消し、/ で検索。2026年にはテストを備えたコマンドエンジンとともに Swift 6 で書き直しました。

Vimdow は Vim と同じくモードを持つツールです。タイル型ウインドウマネージャではなく、ウインドウを代わりに並べてくれるわけでもありません。自分で並べる作業を速くするだけです。一人の好みから生まれたものですが、同じ手癖を持つ人なら誰でも使えるように公開しています。

使い方

  1. コマンドモードに入る

    ⌃⌥A を押して離します。モードを抜けるまで、キー入力は最前面のアプリではなく Vimdow に届きます。

  2. 移動とリサイズ

    h j k l でフォーカス中のウインドウを設定した歩幅だけ動かします。先に数字を打てば繰り返し、押し続ければ滑らかに連続移動、Option か Shift を添えればリサイズになります。

  3. 抜ける

    esc か . でノーマルモードに戻り、キー入力はアプリに戻ります。

できること

コマンドモード早見表

既定の 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 の外へ出るものは何もありません。