tabbar.elのタブの最大長を設定

ふと思いついた.

(defvar my-tabbar-buffer-tab-label-limit 8
  "Limit width of each labels displayed on the tab bar.")

(defun my-tabbar-buffer-tab-label (tab)
  "Like `tabbar-buffer-tab-label', but shrinked by
`my-tabbar-buffer-tab-label-limit'."
  (let ((label (tabbar-buffer-tab-label tab))
        (limit my-tabbar-buffer-tab-label-limit))
    (if (and (numberp limit)
             (< (+ limit 2) (length label)))
        (concat (substring label 0 (- limit 1))
                (if tabbar-buffer-group-mode "..]" ".. "))
      label)))

(setq tabbar-tab-label-function 'my-tabbar-buffer-tab-label)

こんな風になる(my-tabbar-buffer-tab-label-limit = 8の場合).

追記(2010/11/28)

書き忘れていたけどtabbar.elのヴァージョンは1.3です.Aquamacs付属のものだと何故か2.0だったりする.
(setq my-tabbar-buffer-tab-label-limit nil) としたとき最大値なしになるよう修正.