左右に表示したバッファを入れ替えるコードはGoogleさんに聞いたら見つけたのだけど、三つだと対応してなかったので自分でつくってみた。うん。動いているみたい。
by GNU Emacs 24.5.1
(require 'cl)
(defun y-switch()
"bufferの位置を回転させる"
(interactive)
(y-switch-windows-or-buffers 'y-roll))
(defun y-roll(list)
"listをロータリーする"
(append1 (cdr list)(car list)))
(defun y-switch-windows-or-buffers(func)
"funcの並び替えロジックでwindowとbufferの組み合わせを変更する"
(let* ((windows (window-list))
(bufs (loop for x in windows
collect
(window-buffer x))))
(loop for x in (funcall func windows)
for y in bufs
do
(set-window-buffer x y))))
(defun append1 (list obj)
"appendの拡張版"
(append list (list obj)))