Jedno okno na projekt

9

Obecnie pracuję nad kilkoma projektami. Chcę, aby jedno wystąpienie Emacsa poradziło sobie z nimi wszystkimi. To, czego chcę, to zachowanie podobne do tmux, w którym każde „okno” (w sensie Emacsa) odpowiada projektom zawierającym bufory plików związanych z tym projektem. Istnieje kilka okien, z których każde odpowiada projektowi i powinienem móc przełączać się między nimi (coś podobnego do C-b w)

Czy ta funkcjonalność jest już obecna w jakiejś formie? Myślę, że fajnie będzie mieć, ponieważ inne opcje to:

  • Otwórz kilka instancji Emacsa.
  • Wszystkie pliki wszystkich projektów w jednej instancji, co sprawia, że ​​przełączanie buforów jest uciążliwe.
sudeepdino008
źródło
2
Czy do zarządzania projektami próbowałeś perspektywy ?
cutejumper
Wypróbuj ten post na blogu na Emacsie jako zaawansowany multiplekser terminali : uzyskasz zachowanie podobne do Tmux. Natknąłem się na to, uruchomiłem i robi to, co reklamuje. Co więcej, otrzymasz ace-jump-modesamo w sobie świetne rozwiązanie do szybkiego przeskakiwania kursorem w buforze (jeśli jeszcze go nie masz).
Jeśli chcesz zainwestować trochę czasu na wstępną konfigurację w celu zdefiniowania warunków dla projektów, możesz przydzielić je do jednej ramki i użyć frame-bufs. Zobacz także Jak przechwycić plik przed jego otwarciem i zdecydować, która ramka - stackoverflow.com/questions/18346785/... - ma wyświetlać bufor w ramce docelowej, i możesz użyć frame-buffs--add-bufferłącznie, aby powiązać ramkę. Możesz łączyć się frame-bufsz tabbarbuforami i łączyć je / usuwać dynamicznie: emacs.stackexchange.com/a/10112/2287
lawlist
Oto link do frame-bufspowiązania buforów z konkretną ramką: github.com/alpaker/Frame-Bufs/blob/master/frame-bufs.el
lista prawników
@cutejumper Perspektywa jest idealna. Możesz napisać to jako odpowiedź, abym mógł zaznaczyć to poprawnie.
sudeepdino008

Odpowiedzi:

7

Możesz użyć perspektywy do zarządzania projektami. Z pliku README:

perspektywa.el zapewnia wiele obszarów roboczych (lub „perspektyw”) dla każdej ramki Emacsa. Ułatwia to pracę nad wieloma oddzielnymi projektami bez zagubienia się we wszystkich buforach.

Każda perspektywa składa się z konfiguracji okna i zestawu buforów. Przełączenie na perspektywę aktywuje konfigurację okna, a gdy w perspektywie tylko jej bufory są domyślnie dostępne.

Istnieje również inny tryb perspektywy, który nieco różni się od oryginalnego. Perspektywy są wspólne dla ramek, a stany można zapisać na dysku.

Jeśli używasz pocisku , istnieje również integracja perspektywiczna .

cutejumper
źródło
5

Możesz wypróbować tryb brwi , który zarządza wieloma (być może skomplikowanymi) układami okien. Możesz przełączać się między konfiguracjami okien za pomocą klawiszy, takich jak C-c C-w 1i C-c C-w 2.

Eric Brown
źródło
1
Brwi dzieli bufor między obszarami roboczymi. To może być niepożądane
sudeepdino008
2

Rozwiązanie „barebone” może być użyte C-x r wdo zarejestrowania bieżącego stanu okna i C-x r jpowrotu do wcześniejszego.

Stefan
źródło
2

Używam kombinacji kilku różnych pakietów.

Co najważniejsze, używam Projectile do pracy nad „projektem” i plikami do wyszukiwania rozmytego. Używam wielu ramek, po jednej dla każdego projektu, nad którym aktualnie pracuję. Naprawdę potrzebujesz tylko wiedzieć C-x 5 2i C-x 5 0stworzyć / zabić ramkę. Aby zarządzać przełączaniem między projektami oraz do przechowywania stanu konfiguracji / podziału okien, używam Workgroups dla Windows (dla emacsa) .

Podoba mi się ta konfiguracja, ponieważ potencjalnie mogę wymienić jeden pakiet na inny.

Mike Nichols
źródło