2012-04-02 300 views
13

我總是在同一時間處理多個代碼庫。通常是一個內部庫,一個Web應用程序和一些服務。Emacs緩衝區組/標籤

Emacs有沒有爲每個代碼庫打開多個緩衝區的方法,但將這些緩衝區分組?就像我可以輕鬆切換每個代碼庫或組的選項卡一樣。

我已經簽出tabbar-mode這不是我要找的。我正在尋找一種簡單的方法來快速從一個代碼庫切換到另一個代碼庫。就像爲每個項目保存一組窗口並在它們之間快速切換一樣。

任何想法?

+1

[檢查了這一點(HTTP: //scottfrazersblog.blogspot.com/2009/12/emacs-named-desktop-sessions.html) – Tom 2012-04-02 09:49:15

+1

你需要澄清你到底在找什麼。它是一個像點擊一個標籤的圖形小部件嗎?點擊後會發生什麼? – 2012-04-02 10:02:04

+0

這裏是一個鏈接,它已成爲我認爲是tabbar風格緩衝區分組上的權威線程的鏈接:https://emacs.stackexchange.com/questions/10081/browser-style-tabs-for-emacs – lawlist 2017-08-17 20:34:16

回答

7

幾點建議:

  1. ibufferlist-buffers一種先進的更換可以綁定到C-XC-B在它的位置。這可讓您按各種條件過濾緩衝區列表,將過濾器組合到組中,然後根據需要排列組;您還可以保存過濾器和組以稍後恢復。使用C-hm從ibuffer緩衝區中查看所有選項。另請參閱:Emacs: help me understand file/buffer management

  2. 嘗試Emacs的各種屏幕類庫之一,例如ElscreenEscreen。我從來沒有想過要自己嘗試一下,但我認爲你可以在每個屏幕上有單獨的緩衝列表,這似乎適合你的目的。

  3. 如果你想要更大的分離,例如當一個項目處於「活動」狀態時,其他緩衝區不可用,那麼我不知道在單個Emacs實例中這樣做的方式,但在這種情況下,我只會啓動多個Emacs實例;每個項目一個。 Emacs在現代硬件上足夠輕量,這是一個完全合理的方法。

6

看看projectile - 一個簡單而不顯眼的Emacs項目管理庫。其特點之一就是切換到特定項目的緩衝區(C-c p b)。

+1

+1彈丸。很有用! – Tvaroh 2013-06-10 17:23:05

5

我用ibuffer爲了這個目的,連同我的ibuffer-vc extension(可通過Marmalade);該擴展根據它們所屬的版本控制項目對緩衝區進行分組,這是IMO理想的面向程序員的緩衝區分組方式。

0

@Phils的答案是正確的:ibuffer是要走的標準方式,有趣的是BTW the official doc doesn't even mention it

我個人重新映射老(list-buffers)它:

(global-set-key (kbd "C-x C-b") 'ibuffer) 

至於你的問題的 「分組」 的一部分,您可以使用此:

(defvar ibuffer-saved-filter-groups 
    '(("home" 
    ("emacs-config" (or (filename . ".emacs.d") 
         (filename . ".emacs")))   
    ("Org" (or (mode . org-mode) 
       (filename . "OrgMode"))) 
    ("Faust" (or (mode . faust-mode) 
        (filename . "\\.dsp\\'"))) 
    ("Help" (or (name . "\*Help\*") 
       (name . "\*Apropos\*") 
       (name . "\*info\*"))))))