diff --git a/init.el b/init.el index 4ad1c7b..b050365 100644 --- a/init.el +++ b/init.el @@ -67,6 +67,7 @@ (load "toggle-window-split.el") (load "round-number-to-decimals.el") (load "clearcase.el") +(load "transpose-windows.el") (add-hook 'c-mode-hook 'helm-gtags-mode) (add-hook 'c-mode-hook 'which-func-mode) diff --git a/transpose-windows.el b/transpose-windows.el new file mode 100644 index 0000000..1fd6240 --- /dev/null +++ b/transpose-windows.el @@ -0,0 +1,11 @@ +(defun 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))))))