書いてみた.
tab-bar-modeはM-x tab-bar-mode
とするか ,もしくは設定ファイルに(tab-bar-mode +1)
と書いて有効化する.
それぞれのtab-bar には通し番号がついており,それらの間の移動をキーボードからワンストロークで行いたかったので,簡単な設定をつけた.
(desktop-save-mode 1) ;; tabの構成を含めて復元できる(実質的な永続化の実現) (with-eval-after-load 'tab-bar (setq tab-bar-tab-hints t) ;; タブに番号表示 (setq tab-bar-new-button-show nil) ;; 新規タブボタンは非表示 (setq tab-bar-close-button-show nil) ;; タブ削除ボタンは非表示 (setq tab-bar-format '(tab-bar-format-tabs tab-bar-separator)) ;; ヒストリのボタンは不要 (tab-bar-history-mode +1) ;; 各タブについて,ウィンドウ構成のヒストリを記憶する ;; タブ番号に基づいてワンストロークで移動する (defvar tab-bar-switch-prefix "C-M-%d") ;; C-M-1はタブ番号1への移動, C-M-2はタブ番号2への移動 (defvar tab-bar-top-tab "1") ;; タブ番号は1から開始 (defvar tab-bar-bottom-tab "9") ;; 9つもタブを開くこと機会はあまりないが,ひとまず番号は9まで (defun tab-bar-set-keybind () (mapc (lambda (i) (global-set-key (kbd (format tab-bar-switch-prefix i)) `(lambda () (interactive) (tab-bar-select-tab ,(int-to-string i))))) (number-sequence (string-to-number tab-bar-top-tab) (string-to-number tab-bar-bottom-tab)))) (tab-bar-set-keybind))
上記tab-bar-set-keybind
の実行により,C-M-1
からC-M-9
までがそれぞれタブ番号1からタブ番号9までのショートカットキーとして登録される.
このワンストローク移動の設定はperspective-modeの設定を参考にした.perspective-modeからtab-bar-modeへの移行の機会でちょうど良かった.