雑文発散

«前の日記(2014-07-29) 最新 次の日記(2014-07-31)» 編集
過去の日記

2014-07-30 [長年日記]

[Emacs] Emacs で「あっちのウインドウ」を消すための delete-other-windows-vertically が便利

最近になって Emacs をフルスクリーンで使うようになってきた。

C-x 3 (split-window-right) で左右に分割して、左側(下図の A)で本体の PHP コードを書いて、右側(下図の B)でそれに対応する PHPUnit のテストコードを書いている。

また、Emacs とは別にターミナルを立ち上げていて、そこで Grunt の watch タスクを起動しておき、本体の PHP コードか PHPUnit のコードが更新されると PHPUnit を自動実行するようにしている。これでちょっとはモダンな開発環境になったんじゃなかろうか。

Emacs ウインドウ2分割

ただ、この状態のときに別のコードを参照したくて、B の位置で、さらに C-x 2 (split-window-below) を実行すると、次のように A、B、C の3つに分割される。

Emacs ウインドウ3分割

C のウインドウで別のコードを参照しながら、B でテストコードを書いているうちに、もう C での参照が不要になり、元の A、B の状態に戻したくなることも多い。

こういうときに、B の位置で、C-x o (other-window) してから C-x 0 (delete-window) を実行していたんだけど、ちょっとストローク数が多いなぁと思っていた。だったら、other-windowdelete-window を組み合わせた独自関数を作ってやればいいか、と思いながら、いや待て、こんなシチュエーションはオレ以外にも発生しているはずだし、何か解決策があるはず!と調べてみたら、delete-other-windows-vertically というコマンドを見つけた。

標準ではキーバインドが定義されていないので、B の位置で M-x delete-other-windows-vertically を実行すると、C のウインドウが消えて、期待通りの動作になった。

これは使えそうなので、 init.el あたりに

(global-set-key (kbd "C-x 9") 'delete-other-windows-vertically)

と記述して、C-x 9 にキーバインドして常用してみよう。