こんな感じ.
;; 'tab タブ切り替えの単位をグループ内の「バッファ」に限定 ;; 'groups タブ切り替えの単位を「グループ」に限定 (setq centaur-tabs-cycle-scope 'tabs) ;; アイコン表示 (setq centaur-tabs-set-icons t) (setq centaur-tabs-icon-type 'all-the-icons) ;; バッファ名の代わりにグループ表示する場合 ;; (setq centaur-tabs--buffer-show-groups nil) ;; (centaur-tabs-toggle-groups) ;; t: 変更され未保存のバッファにマーカーを表示する (setq centaur-tabs-set-modified-marker t) (setq centaur-tabs-modified-marker "●") ;; 'over: 現在選択中のタブに上線を引く (setq centaur-tabs-set-bar 'over) ;; キーバインド (global-set-key (kbd "C-<tab>") 'centaur-tabs-forward) (global-set-key (kbd "C-S-<iso-lefttab>") 'centaur-tabs-backward) (global-set-key (kbd "C-z C-s") #'centaur-tabs-switch-group) ;; 特有の関数は centaur-tabs-mode を有効にしたあとで定義する (centaur-tabs-mode t) ;; タブを非表示にしたいバッファ (defun centaur-tabs-hide-tab (x) "Do no to show buffer X in tabs." (let ((name (format "%s" x))) (or ;; Current window is not dedicated window. (window-dedicated-p (selected-window)) ;; Buffer name not match below blacklist. (string-prefix-p "*epc" name) (string-prefix-p "*lsp" name) (string-prefix-p "*Flycheck" name) (string-prefix-p "*tramp" name) (string-prefix-p " *Mini" name) (string-prefix-p "*help" name) (string-prefix-p " *temp" name) (string-prefix-p "*Help" name) (string-prefix-p "*Compile-Log*" name) ;; (string-prefix-p "*scratch*" name) (string-prefix-p "*Messages*" name) (string-prefix-p "*Async-native-compile-log*" name) (string-prefix-p "*Native-compile-Log" name)))) (defun which-active-modes () "Return which minor modes are enabled in the current buffer." (interactive) (let ((active-modes)) (mapc (lambda (mode) (condition-case nil (if (and (symbolp mode) (symbol-value mode)) (add-to-list 'active-modes mode)) (error nil) )) minor-mode-list) active-modes)) ;; バッファのメジャーモードに沿ってグループ化 (defun centaur-tabs-buffer-groups () "`centaur-tabs-buffer-groups' control buffers' group rules." (list (cond ((derived-mode-p 'shell-mode) "Shell") ((derived-mode-p 'eshell-mode) "EShell") ((derived-mode-p 'emacs-lisp-mode) "Elisp") ((derived-mode-p 'dired-mode) "Dired") ((derived-mode-p 'python-ts-mode) "Python") ((derived-mode-p 'c-mode) "C-lang") ((derived-mode-p 'LaTeX-mode 'TeX-mode) "LaTeX") ((or (derived-mode-p 'howm-menu-mode) (memq 'howm-mode (which-active-modes))) "HOMW") ((derived-mode-p 'yaml-ts-mode 'conf-toml-mode) "Config") ((derived-mode-p 'org-mode 'org-agenda-mode 'diary-mode) "OrgMode") ((string-equal "*" (substring (buffer-name) 0 1)) "Emacs") (t (centaur-tabs-get-group-name (current-buffer)))))) ;; タブを閉じるためのユーティリティ (defun centaur-close-ace-jump (&optional arg) (interactive) (centaur-tabs-ace-action 'close-tab))