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.
ace-jump-mode
samo w sobie świetne rozwiązanie do szybkiego przeskakiwania kursorem w buforze (jeśli jeszcze go nie masz).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-bufs
ztabbar
buforami i łączyć je / usuwać dynamicznie: emacs.stackexchange.com/a/10112/2287frame-bufs
powiązania buforów z konkretną ramką: github.com/alpaker/Frame-Bufs/blob/master/frame-bufs.elOdpowiedzi:
Możesz użyć perspektywy do zarządzania projektami. Z pliku README:
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 .
źródło
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 1
iC-c C-w 2
.źródło
Rozwiązanie „barebone” może być użyte
C-x r w
do zarejestrowania bieżącego stanu okna iC-x r j
powrotu do wcześniejszego.źródło
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 2
iC-x 5 0
stworzyć / 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.
źródło