2012-04-02 7 views
13

Zawsze pracuję na wielu bazach kodu w tym samym czasie. Zwykle jest to biblioteka wewnętrzna, aplikacja internetowa i niektóre usługi.Grupy buforów Emacs/tabulatory

Czy istnieje sposób na to, aby Emacs miał wiele buforów otwartych dla każdej podstawy kodu, ale czy te bufory zostały zgrupowane? Podobnie jak zakładka dla każdej podstawy kodu lub grupy, mogę łatwo przełączać się pomiędzy.

Wymeldowałem się tabbar-mode co nie jest tym, czego szukam. Szukam łatwego sposobu na szybkie przejście od pracy na jednej bazie kodu do drugiej. Jak zapisywanie zestawu okien dla każdego projektu i szybkie przełączanie się między nimi.

Wszelkie pomysły?

+1

[to sprawdzić] (http: //scottfrazersblog.blogspot.com/2009/12/emacs-named-desktop-sessions.html) – Tom

+1

Musisz wyjaśnić, czego dokładnie szukasz. Czy jest to widżet graficzny, na przykład kliknięta karta? Co dzieje się po kliknięciu? –

+0

Oto link do tego, co stało się tym, co uważam za autorytatywny wątek w grupowaniu buforów w stylu tabbar: https://emacs.stackexchange.com/questions/10081/browser-style-tabs-for-emacs – lawlist

Odpowiedz

7

Kilka sugestii:

  1. ibuffer jest zaawansowanym zamiennikiem dla list-buffers które można wiązać C-xC-b na swoim miejscu. Umożliwia to filtrowanie listy buforów według różnych kryteriów, łączenie filtrów w grupy i grupowanie dowolnych grup; możesz również zapisać filtry i grupy, aby przywrócić później. Użyj bufora ibuffer, aby zobaczyć wszystkie opcje. Zobacz także: Emacs: help me understand file/buffer management

  2. Wypróbuj jedną z różnych bibliotek ekranowych dla Emacs, takich jak Elscreen lub Escreen. Nigdy nie próbowałem ich wypróbować, ale uważam, że możesz mieć oddzielne listy buforów na ekranie, co wydaje się pasować do twoich celów.

  3. Jeśli chcesz jeszcze większej separacji, tak, że gdy jeden projekt jest "aktywny", bufor z innych są niedostępne, to nie wiem, jak to zrobić w jednym wystąpieniu Emacs , ale w takiej sytuacji po prostu uruchomiłbym wiele instancji Emacsa; po jednym dla każdego projektu. Emacs jest wystarczająco lekki na nowoczesnym sprzęcie, że jest to całkowicie rozsądne podejście.

6

Spójrz na projectile - prosta i dyskretna biblioteka zarządzania projektami dla Emacs. Jedną z jego funkcji jest właśnie przejście na bufory z konkretnego projektu (C-c p b).

+1

+1 dla pocisk. Bardzo przydatne! – Tvaroh

5

Do tego celu używam ibuffer, wraz z moim ibuffer-vc extension (dostępne przez Marmalade); to rozszerzenie grupuje bufory zgodnie z projektem kontroli wersji, do którego należą, co jest IMO idealnym, programistycznym sposobem grupowania buforów.

0

@Phils odpowiedź jest właściwa: ibuffer jest średnia droga, zabawny BTW że the official doc doesn't even mention it.

Osobiście przemapować starą (list-buffers) do niego:

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

chodzi o "grupowania" części pytania, można użyć to:

(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\*")))))) 
Powiązane problemy