Tabbar1 é um programa Lisp que insere no ambiente Emacs uma "barra" semelhante aquelas dos navegadores web, na altura dos menus.

O ideal é instalar o Tabbar pelo instalador de pacotes do Emacs (explicado aqui), será um processo mais suave e terá a certeza de ter o código mais recente.

Eu pessoalmente prefiro as sugestões aqui reproduzidas do site Da Zhang, mas as idéias do EmacsWiki2 são igualmente interessantes e podem ser exploradas. De qualquer forma, o Tabbar é extremamente versátil e configurável.

tabbar mode -- ssh

    ::Sugestões de customização do site "Da Zhang's web notes"3

  1.   Customização do .emacs:
    1. (setq tabbar-background-color "#959A79") ;; the color of the tabbar background
    2. (custom-set-faces
    3. '(tabbar-default ((t (:inherit variable-pitch :background "#959A79" :foreground "black" :weight bold))))
    4. '(tabbar-button ((t (:inherit tabbar-default :foreground "dark red"))))
    5. '(tabbar-button-highlight ((t (:inherit tabbar-default))))
    6. '(tabbar-highlight ((t (:underline t))))
    7. '(tabbar-selected ((t (:inherit tabbar-default :background "#95CA59"))))
    8. '(tabbar-separator ((t (:inherit tabbar-default :background "#95CA59"))))
    9. '(tabbar-unselected ((t (:inherit tabbar-default)))))

     

  2.   Atalhos no teclado:
    1. (global-set-key (kbd "C-S-p") 'tabbar-backward-group)
    2. (global-set-key (kbd "C-S-n") 'tabbar-forward-group)
    3. (global-set-key (kbd "C-<") 'tabbar-backward)
    4. (global-set-key (kbd "C->") 'tabbar-forward) ;; tabbar.el, put all the buffers on the tabs.
  3.   Usando dois esquemas de "grupos" diferentes:
    1. (defun tabbar-buffer-groups-by-dir ()
    2. "Put all files in the same directory into the same tab bar"
    3. (with-current-buffer (current-buffer)
    4. (let ((dir (expand-file-name default-directory)))
    5. (cond ;; assign group name until one clause succeeds, so the order is important
    6. ((eq major-mode 'dired-mode)
    7. (list "Dired"))
    8. ((memq major-mode
    9. '(help-mode apropos-mode Info-mode Man-mode))
    10. (list "Help"))
    11. ((string-match-p "\*.*\*" (buffer-name))
    12. (list "Misc"))
    13. (t (list dir))))))
    14.  
    15. (defun tabbar-switch-grouping-method (&optional arg)
    16. "Changes grouping method of tabbar to grouping by dir.
    17. With a prefix arg, changes to grouping by major mode."
    18. (interactive "P")
    19. (ignore-errors
    20. (if arg
    21. (setq tabbar-buffer-groups-function 'tabbar-buffer-groups) ;; the default setting
    22. (setq tabbar-buffer-groups-function 'tabbar-buffer-groups-by-dir))))
  4.   Configuração final:
    1. (setq tabbar-cycle-scope (quote tabs))
    2. (setq table-time-before-update 0.1)
    3. (setq tabbar-use-images t)

Referências na web:

zhangda | Da's recipes on Emacs, IT, and more
Emacs Wiki
StackOverflow web site

 

  1. Originalmente escrito por David Ponce em 2003/2005, e mantido hoje por outros []
  2. Ver link nas referências... []
  3. Ver no final do post, "Referência". []