横2分割 縦2分割

xmonadを使いはじめると,1つのワークスペースをEmacs 1フレームで使うことが普通になる.
各種のモードで上下2分割ウィンドウを使うことが多いのだけれど,これを左右2分割に切り換えたい.

で見つけたページ:Meadow/Emacs memo: ウィンドウ/フレーム関連 ― 分割・サイズ変更
そこにあったコードそのまま.

(defun window-toggle-division ()
  "ウィンドウ 2 分割時に、縦分割<->横分割"
  (interactive)
  (unless (= (count-windows 1) 2)
    (error "ウィンドウが 2 分割されていません。"))
  (let (before-height (other-buf (window-buffer (next-window))))
    (setq before-height (window-height))
    (delete-other-windows)

    (if (= (window-height) before-height)
        (split-window-vertically)
      (split-window-horizontally)
      )

    (switch-to-buffer-other-window other-buf)
    (other-window -1)))