IntelliJ Ideaでウィンドウのキー操作をEmacs風にする
Emacsでは以下のようなキー操作でwindowを縦に分割したり、横に分割したりできますね。
機能 | キー | ファンクション |
---|---|---|
縦に分割 | C-x 2 | split-window-vertically |
横に分割 | C-x 3 | split-window-horizontally |
分割をやめる | C-x 1 | delete-other-windows |
windowを閉じる | C-x 0 | delete-window |
次のwindowへ移動 | C-x o | other-window |
intellijでKeymapをEmacsにすると、同等の機能には以下のようなキーが割り当てられます。
機能 | キー | 機能名 | |
---|---|---|---|
縦に分割 | ⌃2 | Window -> Editor Tabs -> Split Vertically | |
横に分割 | ⌃3 | Window -> Editor Tabs -> Split Horizontally | |
分割をやめる | ⌃1 | Window -> Editor Tabs -> Unsplit All | |
windowを閉じる | ⌃0 | Window -> Editor Tabs -> Unsplit | |
次のwindowへ移動 | Window -> Editor Tabs -> Goto Next Splitter |
ただUnsplitはemacsのdelete-windowとはちょっと違って、単純にカーソルがあるwindowを削除するわけじゃないみたいです。
ちょっと挙動が掴みづらいですが、最後にわかれたwindowを削除しているように見えます。
問題
このキー割り当てには問題があって「⌃1」「⌃2」「⌃3」「⌃4」などは効きませんでした。
macosxにキーのイベントが食われているんじゃないかと思います。
「⌃1」については「システム環境設定 -> キーボード -> キーボードショットカット」でMission Controlの「デスクトップ1にへ切り替え」に割り当ててあるので、これを外せば使えるようになります。
その他のキーについては割り当てが見つかりませんでした。
どうせ効きませんので、Intelli JのPreferences -> KeyMapで割り当てをEmacs風に変更しました。
Second Strokeにチェックをつければ、キーの組み合わせを登録できます。
機能 | キー | 機能名 |
---|---|---|
縦に分割 | ⌃X,2 | Window -> Editor Tabs -> Split Vertically |
横に分割 | ⌃X,3 | Window -> Editor Tabs -> Split Horizontally |
分割をやめる | ⌃X,1 | Window -> Editor Tabs -> Unsplit All |
windowを閉じる | ⌃X,0 | Window -> Editor Tabs -> Unsplit |
次のwindowへ | ⌃X,O | Window -> Editor Tabs -> Goto Next Splitter |
これでだいたいemacsを使う時と同じ感覚になりました。