그룹의 분할 버퍼
tabbar로 가능합니다. 그룹의 그룹 버퍼에 규칙을 추가 할 수 있습니다. 기본 스 니펫은 다음과 같습니다.
(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"
))))
예제 규칙 :
- 버퍼 이름을 나열하십시오.
((member (buffer-name)
'("*scratch*" "*Messages*" "*Help*"))
"Common" ;; this is a group name
)
- 공통 버퍼와 관련하여 이름이 별표로 시작하는 각 버퍼를 "공통"으로 설정하는 것을 선호합니다. 다음은이 규칙에 대한 버퍼를 만드는 예입니다.
((string-equal "*" (substring (buffer-name) 0 1))
"Common"
)
- 다음은 주요 모드별로 버퍼를 그룹화하는 예입니다.
((memq major-mode
'(org-mode text-mode rst-mode))
"Text"
)
- 다음은 파생 모드를 기반으로 버퍼를 그룹화하는 예입니다.
((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"
)
- 다음은 regexp로 탭을 그룹화하는 예입니다.
((string-match "^__" (buffer-name))
"Templates"
)
- 주요 모드별로 그룹 버퍼 :
(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))
규칙을 구성한 후에는 탭 막대의 탭 줄에서 + 또는-를 눌러 그룹을 전환하고 ◀ 및 ▶를 눌러 버퍼간에 전환 할 수 있습니다. 또는 다음 defuns을 바인딩하십시오.
tabbar-forward
tabbar-backward
tabbar-forward-group
tabbar-backward-group
키보드로 탭과 탭 그룹 사이를 이동하십시오.
개인적으로 탭을 그룹화하여 열려있는 항목을 볼 수 있지만로 탐색합니다 ido-switch-buffer
.
규칙 세트 간 전환
또한 다른 버퍼 그룹화 규칙 세트를 정의하고 이들 사이를 순환 할 수 있습니다. 다음은 두 세트의 버퍼 그룹화 규칙 사이를 순환하는 예입니다.
;; 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)
이것은 그룹화 데펀 tabbar-buffer-groups-common
과 tabbar-buffer-groups
탭 그룹을 전환합니다.
이름별로 탭바 버퍼 정렬
탭 바 버퍼를 이름별로 정렬하는 것이 유리하다는 것을 알았습니다. 얻는 방법은 다음과 같습니다.
(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))))))))))