10/01/24 03:25:52
昔こんなの作った。人にサボってるとばれにくいように、+とか*から始まるバッファは除外してます。
誰かがもっとスマートなの誰かが作ってたけど、どこに行ったか忘れた。
;; 前に見てたバッファ、その前のバッファ...とさかのぼる
;; (このコマンドでバッファを切り替えても
;; 最近選んだバッファのリストは変更されない)
(defun my-switch-to-next-buffer ()
(interactive)
(let ((blist (buffer-list))
(buffer))
(while blist
(setq buffer (car blist))
(setq blist (cdr blist))
(if (eq (current-buffer) buffer)
(progn (while (and blist (or (string= (substring (buffer-name (car blist)) 0 1) " ")
(string= (substring (buffer-name (car blist)) 0 1) "*")
(string= (substring (buffer-name (car blist)) 0 1) "+")))
(setq blist (cdr blist)))
(switch-to-buffer (car blist) t)
(setq blist nil))))))
(global-set-key [C-tab] 'my-switch-to-next-buffer)