;;; -*- lexical-binding: t -*- ;; ;; ----------------------------------------------------------------------------- (require 'cl-lib) (cl-pushnew (expand-file-name ".") load-path :test #'string=) (cl-pushnew (file-name-concat ".." "progs") load-path :test #'string=) (require 'luki-lisp) ;; ----------------------------------------------------------------------------- (-> 'buc) (-> 'window) ;; ----------------------------------------------------------------------------- (defun switch-to-buffer-regexp (re) (when-let* ((buf (buffer-name (current-buffer))) (hits (cl-remove-if-not (L (b) (string-match re b)) (buffer-names))) (new-hits (cl-remove buf hits))) (when (string-match re buf) (bury-buffer buf)) (switch-to-buffer (1st new-hits)))) ;; ----------------------------------------------------------------------------- (defun switch-to-article-buffer () (i) (switch-to-buffer-regexp "\*Article\*")) (defun switch-to-compilation-buffer () (i) (switch-to-buffer-regexp "\*compilation\*")) (defun switch-to-help-buffer () (i) (switch-to-buffer-regexp "\*Help\*")) (defun switch-to-info-buffer () (i) (switch-to-buffer-regexp "\*info\*")) (defun switch-to-manpage-buffer () (i) (switch-to-buffer-regexp "\*Man .*\*")) (defun switch-to-summary-buffer () (i) (switch-to-buffer-regexp "\*Summary.*\*")) (defun switch-to-unsent-buffer () (i) (switch-to-buffer-regexp "\*unsent .*\*")) ;; ----------------------------------------------------------------------------- (<- 'll-switch-to-buffer-regexp) ;; -----------------------------------------------------------------------------