Friday, May 05, 2006

Emacs: transpose two windows

Sometimes we want to switch the position of two windows: C-c o

[coolcode];; transpose(interchange) two windows

(defun his-transpose-windows (arg)

"Transpose the buffers shown in two windows."

(interactive "p")

(let ((selector (if (>= arg 0) 'next-window 'previous-window)))

(while (/= arg 0)

(let ((this-win (window-buffer))

(next-win (window-buffer (funcall selector))))

(set-window-buffer (selected-window) next-win)

(set-window-buffer (funcall selector) this-win)

(select-window (funcall selector)))

(setq arg (if (plusp arg) (1- arg) (1+ arg))))))

(global-set-key (kbd "C-c o") 'his-transpose-windows)[/coolcode]

No comments:

Post a Comment