Tamponları gruplara ayırma
Tabbar ile mümkündür. Grup arabelleklerine gruplar halinde kurallar ekleyebilirsiniz. İşte temel bir snippet:
(defun tabbar-buffer-groups ()
"Returns the list of group names the current buffer belongs to."
(list
(cond
;; ADD RULES TO SPLIT BUFFERS IN GROUPS HERE!
;; if buffer is not grouped by the rules you would add above
;; put it in the "General" group:
(t
"General"
))))
Örnek kurallar:
- Arabellek adlarını listele:
((member (buffer-name)
'("*scratch*" "*Messages*" "*Help*"))
"Common" ;; this is a group name
)
- Sık kullanılan tamponlarla ilgili olarak, “Yıldız” ile başlayan her tampon için “Ortak” yazmayı tercih ederim. Bu, bu kural için bir tampon oluşturmaya örnek verir:
((string-equal "*" (substring (buffer-name) 0 1))
"Common"
)
- Ana mod tarafından gruplama tamponlarına bir örnek:
((memq major-mode
'(org-mode text-mode rst-mode))
"Text"
)
- İşte türetilen moduna göre gruplandırma tamponlarının bir örneği:
((or (get-buffer-process (current-buffer))
;; Check if the major mode derives from `comint-mode' or
;; `compilation-mode'.
(tabbar-buffer-mode-derived-p
major-mode '(comint-mode compilation-mode)))
"Process"
)
- İşte regexp'e göre gruplama sekmelerine bir örnek:
((string-match "^__" (buffer-name))
"Templates"
)
- Ana moda göre grup tamponları:
(if (and (stringp mode-name)
;; Take care of preserving the match-data because this
;; function is called when updating the header line.
(save-match-data (string-match "[^ ]" mode-name)))
mode-name
(symbol-name major-mode))
Kuralları oluşturduktan sonra, grupları değiştirmek için + veya - tabbar'ın sekme satırında ve ayrıca arabellekler arasında geçiş yapmak için ◀ ve ▶ tuşlarına basabilirsiniz. Veya sadece aşağıdaki yenilikleri bağlayın:
tabbar-forward
tabbar-backward
tabbar-forward-group
tabbar-backward-group
ve klavyeyle sekmeler ve sekme grupları arasında hareket edin.
Şahsen ben sekmeleri gruplandırıyorum, böylece neyin açık olduğunu görebiliyorum, fakat aralarında gezin ido-switch-buffer
.
Kural kümesi arasında geçiş yap
Ayrıca, farklı tampon gruplandırma kuralları kümesi tanımlanabilir ve bunlar arasında döngü yapılabilir. İki tampon gruplandırma kuralı grubu arasında bir döngü örneği:
;; tab-groups!
(setq tbbr-md "common")
(defun toggle-tabbar-mode ()
"Toggles tabbar modes - all buffers vs. defined in the `tabbar-buffer-groups'."
(interactive)
(if (string= tbbr-md "groups")
(progn ;; then
(setq tabbar-buffer-groups-function 'tabbar-buffer-groups-common)
(setq tbbr-md "common"))
(progn ;; else
(setq tabbar-buffer-groups-function 'tabbar-buffer-groups)
(setq tbbr-md "groups"))))
;; by default - all tabs:
(setq tabbar-buffer-groups-function 'tabbar-buffer-groups-common)
Bu tabbar-buffer-groups-common
ve tabbar-buffer-groups
sekme gruplama defuns arasında geçiş yapar .
Sekme arabelleklerini ada göre sırala
Sekme arabelleklerini ada göre sıralamanın yararlı olduğunu düşünüyorum. İşte onu almak için nasıl:
(defun tabbar-add-tab (tabset object &optional append_ignored)
"Add to TABSET a tab with value OBJECT if there isn't one there yet.
If the tab is added, it is added at the beginning of the tab list,
unless the optional argument APPEND is non-nil, in which case it is
added at the end."
(let ((tabs (tabbar-tabs tabset)))
(if (tabbar-get-tab object tabset)
tabs
(let ((tab (tabbar-make-tab object tabset)))
(tabbar-set-template tabset nil)
(set tabset (sort (cons tab tabs)
(lambda (a b) (string< (buffer-name (car a)) (buffer-name (car b))))))))))