Emacsで2分割したバッファを入れ替える

Emacsで作業するときは大抵左右か上下に分割して使っている。
たまーにバッファを入れ替えたくなるときがある。
探したらすぐ見つかった。

;;汎用機の SPF (mule みたいなやつ) には
;;画面を 2 分割したときの 上下を入れ替える swap screen
;;というのが PF 何番かにわりあてられていました。
(defun swap-screen()
  "Swap two screen,leaving cursor at current window."
  (interactive)
  (let ((thiswin (selected-window))
        (nextbuf (window-buffer (next-window))))
    (set-window-buffer (next-window) (window-buffer))
    (set-window-buffer thiswin nextbuf)))
(defun swap-screen-with-cursor()
  "Swap two screen,with cursor in same buffer."
  (interactive)
  (let ((thiswin (selected-window))
        (thisbuf (window-buffer)))
    (other-window 1)
    (set-window-buffer thiswin (window-buffer))
    (set-window-buffer (selected-window) thisbuf)))
(global-set-key [f2] 'swap-screen)
(global-set-key [S-f2] 'swap-screen-with-cursor)
Meadow/Emacs memo: ウィンドウ/フレーム関連 ― 分割・サイズ変更

F2 でカーソルを残したまま入れ替える。
Shift-F2 でカーソルとバッファを一緒に入れ替える。
これは便利かも。