タブの移動をキーボードで
マウスを使わずにタブを並べ替える方法。
xyzzy
そんな機能見当たらなかったので http://xyzzy.s53.xrea.com/wiki/index.php?cmd=read&page=tips%2F%A5%D0%A5%C3%A5%D5%A5%A1%A5%D0%A1%BC%A4%CE%CA%C2%A4%D3%BD%E7%A4%F2%CA%D1%A4%A8%A4%EB を参考に書いてみた。
(defun buffer-bar-swap-fore () (interactive) (let* ((sbf (selected-buffer)) (bfl (butlast (buffer-list :buffer-bar-order t))) (pos (position sbf bfl))) (when (< 0 pos) (set-buffer (car bfl)) (let ((*buffer-bar-selected-buffer-to-first* t)) (dolist (b (cons sbf (reverse (subseq bfl 0 (1- pos))))) (set-buffer b) #0=(refresh-screen 0))) (set-buffer sbf) #0#))) (global-set-key '(#\M-C-Left) 'buffer-bar-swap-fore) (defun buffer-bar-swap-aft () (interactive) (let* ((sbf (selected-buffer)) (bfl (butlast (buffer-list :buffer-bar-order t))) (pos (position sbf bfl)) (len (length bfl))) (when (< pos (1- len)) (set-buffer (car (last bfl))) (let ((*buffer-bar-selected-buffer-to-first* t)) (dolist (b `(,sbf ,(nth (1+ pos) bfl) ,@(reverse (subseq bfl 0 pos)))) (set-buffer b) #0=(refresh-screen 0))) (set-buffer sbf) #0#))) (global-set-key '(#\M-C-Right) 'buffer-bar-swap-aft)
いちいち再描画するせいでたくさん開いてるとちらつきが酷い。
もっといいやり方求む。