最近になって Emacs をフルスクリーンで使うようになってきた。
C-x 3 (split-window-right)
で左右に分割して、左側(下図の A)で本体の PHP コードを書いて、右側(下図の B)でそれに対応する PHPUnit のテストコードを書いている。
また、Emacs とは別にターミナルを立ち上げていて、そこで Grunt の watch タスクを起動しておき、本体の PHP コードか PHPUnit のコードが更新されると PHPUnit を自動実行するようにしている。これでちょっとはモダンな開発環境になったんじゃなかろうか。
ただ、この状態のときに別のコードを参照したくて、B の位置で、さらに C-x 2 (split-window-below)
を実行すると、次のように A、B、C の3つに分割される。
C のウインドウで別のコードを参照しながら、B でテストコードを書いているうちに、もう C での参照が不要になり、元の A、B の状態に戻したくなることも多い。
こういうときに、B の位置で、C-x o (other-window)
してから C-x 0 (delete-window)
を実行していたんだけど、ちょっとストローク数が多いなぁと思っていた。だったら、other-window
と delete-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
にキーバインドして常用してみよう。