2012-04-02 9 views
13

Ich arbeite immer an mehreren Codebasen gleichzeitig. Normalerweise eine interne Bibliothek, eine Web-App und ein Service.Emacs Puffergruppen/Registerkarten

Gibt es eine Möglichkeit mit Emacs mehrere Puffer für jede Codebasis geöffnet zu haben, aber diese Puffer gruppiert zu haben? Wie eine Registerkarte für jede Code-Basis oder Gruppen kann ich einfach zwischen wechseln.

Ich habe tabbar-mode ausgecheckt, was nicht das ist, wonach ich suche. Ich bin auf der Suche nach einer einfachen Möglichkeit, schnell von einer Code-Basis zur nächsten zu wechseln. So speichern Sie für jedes Projekt eine Reihe von Fenstern und wechseln schnell zwischen ihnen.

Irgendwelche Ideen?

+1

[check this out] (http: //scottfrazersblog.blogspot.com/2009/12/emacs-named-desktop-sessions.html) – Tom

+1

Sie müssen klären, was genau Sie suchen. Ist es ein grafisches Widget wie ein Tab, auf den Sie klicken? Was passiert, nachdem Sie darauf geklickt haben? –

+0

Hier ist ein Link zu dem, was geworden ist, was ich der maßgebliche Thread auf Tabbar Stil Puffer Gruppierung: https://emacs.stackexchange.com/questions/10081/browser-style-tabs-for-emacs – lawlist

Antwort

7

Einige Vorschläge:

  1. ibuffer ist eine erweiterte Ersatz für list-buffers, die Sie C-xC-b an seiner Stelle binden kann. Auf diese Weise können Sie die Pufferliste nach verschiedenen Kriterien filtern, Filter zu Gruppen zusammenfassen und die Gruppen nach Belieben anordnen. Sie können Ihre Filter und Gruppen auch speichern, um sie später wiederherzustellen. Verwenden Sie C-hm aus dem Puffer Puffer, um alle Optionen anzuzeigen. Siehe auch: Emacs: help me understand file/buffer management

  2. Versuchen Sie eine der verschiedenen siebartigen Bibliotheken für Emacs, wie Elscreen oder Escreen. Ich bin noch nie dazu gekommen, sie selbst auszuprobieren, aber ich nehme an, dass Sie separate Pufferlisten pro Bildschirm haben können, was Ihren Zwecken entspricht.

  3. Wenn Sie noch größere Trennung wünschen, so dass, wenn ein Projekt 'aktiv' ist, der Puffer von den anderen nicht verfügbar ist, dann weiß ich nicht, wie man das in einer einzigen Instanz von Emacs macht , aber in dieser Situation würde ich einfach mehrere Instanzen von Emacs starten; eins für jedes Projekt. Emacs ist auf moderner Hardware so leicht, dass dies ein völlig vernünftiger Ansatz ist.

6

Werfen Sie einen Blick auf projectile - ein einfaches und unauffälliges Projektmanagement lib für Emacs. Eine seiner Eigenschaften ist das genaue Umschalten zu Puffern aus einem bestimmten Projekt (C-c p b).

+1

+1 für Projektil. Sehr hilfreich! – Tvaroh

5

Ich benutze ibuffer für diesen Zweck, zusammen mit meinem ibuffer-vc extension (erhältlich über Marmalade); Diese Erweiterung gruppiert Puffer entsprechend dem Versionskontrollprojekt, zu dem sie gehören, was IMO eine ideale programmiererorientierte Art der Gruppierung von Puffern ist.

0

@Phils Antwort ist die richtige: Befehlspufferspeicher der normale Weg ist BTW zu gehen, komisch, dass the official doc doesn't even mention it.

ich persönlich die alte (list-buffers), um es neu zuordnen:

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

Wie für die "Gruppierung" Teil Ihrer Frage, können Sie diese verwenden:

(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\*"))))))