solovyov.net

Emacs tabbar

2 min read · software, emacs

Какое-то время назад я писал про то, как я переключаю буферы в Emacs’е. Но в конце-концов меня задолбало отсутствие табов и я решил поставить и разобраться в таббаре (я его раньше ставил, но он раздражал своим внешним видом и странным поведением :)).

Самая неочевидная штука заключается в том, что брать его надо однозначно из CVS, потому что файлик, который лежит в виде релиза на SF, просто-напросто на 3 года старше CVS’ового.

Ну а дальше всё оказалось просто - надо его кинуть в диру к остальным *.el, и немного поднастроить под себя. Немного - у нового поведение в разбрасывании табов по группам куда более адекватное, чем у старого - он их раскидывает по основному режиму, что при редактировании в основном Питоновских файлов удобно - не приходится лазить по остальным, ненужным, буферам.

Вот настройки:

;;;;;;;;;
;; Tabbar

(require 'tabbar)

(global-set-key [C-S-tab] 'tabbar-backward-tab)
(global-set-key [C-tab] 'tabbar-forward-tab)

(set-face-foreground 'tabbar-default "LightSteelBlue")
(set-face-background 'tabbar-default "DarkSlateGray")
(set-face-foreground 'tabbar-selected "pale green")
(set-face-bold-p 'tabbar-selected t)
(set-face-attribute 'tabbar-button nil :box '(:line-width 1 :color "gray72"))

(setq tabbar-buffer-groups-function
      (lambda () 
        (list
         (cond
          ((find (aref (buffer-name (current-buffer)) 0) " *") "*")
          (t "All Buffers"))
         )))

(tabbar-mode)
;; tabbar end
;;;;;;;;;;;;;

tabbar-buffer-groups-function - раскидывает все буферы по двум группам: все, начинающиеся с пробела или астериска - в *, остальные - в All buffers. За функцию спасибо Хейзу, потому что я сам не осилил написать. ;)

Ну а тут лежит весь мой .emacs.

UPD. Функция группировки, конечно, порядочно усовершенствовалась со времени написания этого поста…

If you like what you read — subscribe to my Twitter, I always post links to new posts there. Or, in case you're an old school person longing for an ancient technology, put a link to my RSS feed in your feed reader (it's actually Atom feed, but who cares).

Other recent posts

Server-Sent Events (SSE), but with POST
ngrok for the wicked, or expose your ports comfortably
PostgreSQL collation
History Snapshotting in TwinSpark
Code streaming: hundred ounces of nuances