如果使用 Tabbar 而又不喜欢它默认的文档分组功能 ( group ),想自己控制哪些文档应该分成一组、哪些文档应该放到另外一组,可以参考下面的代码,重新定制 Tabbar 的分组规则:

(defun tabbar-buffer-groups (buffer)
  "Define tabbar groups depending on major mode and buffer name"
  (with-current-buffer (get-buffer buffer)
    (cond
     ((or (get-buffer-process (current-buffer))
          (memq major-mode
                '(comint-mode compilation-mode)))
      '("Misc")
      )
     ((eq major-mode 'org-mode)
      '("org")
      )
     ((eq major-mode 'muse-mode)
      '("muse")
      )
     ((memq major-mode
            '(fundamental-mode help-mode apropos-mode Info-mode Man-mode))
      '("Misc")
      )
     ((memq major-mode
            '(c-mode c++-mode))
      '("Cpp")
      )
     ((eq major-mode 'emacs-lisp-mode)
      '("Emacs-lisp")
      )
     ((memq major-mode
            '(php-mode nxml-mode nxhtml-mode))
      '("WebDev")
      )
     ((memq major-mode
            '(tex-mode latex-mode text-mode snippet-mode))
      '("Text")
      )
     ((memq major-mode
            '(rmail-mode
              rmail-edit-mode vm-summary-mode vm-mode mail-mode
              mh-letter-mode mh-show-mode mh-folder-mode
              gnus-summary-mode message-mode gnus-group-mode
              gnus-article-mode score-mode gnus-browse-killed-mode))
      '("Mail")
      )
     ((string-equal "*" (substring (buffer-name) 0 1))
      '("Emacs Buffer")
      )
     (t
      '("Main")
      )
     )))

代码的基本原则就是,根据 mode 来进行分组,比如说把基于 org-mode 的所有文件放到一个组里,把和 Web 开发有关的 mode (如 php-mode,nxml-mode 及 nxhtml-mode)放到一个组里。我觉得这样分组,更加有利于编辑效率的提高。

原创文章,如转载请注明:转载自细节之锤 [ http://blog.WaterLin.org/ ]

Copyright © WaterLin.org. All rights reserved.