Wbudowane do tego celu są rejestry.
Na przykład użyj, C-xrwaaby zapisać bieżącą konfigurację okna, aby zarejestrować.
Następnie możesz użyć wbudowanego wiązania C-x1do uruchomieniadelete-other-windows
po zakończeniu przeglądania pojedynczego pliku użyj przycisku, C-xrjaaby wrócić do konfiguracji zapisanego okna w rejestrze a.
W skrócie:
C-xrwa (zapisz config w rejestrze)
C-x1 (usuń inne okna)
C-xrja (ponownie zastosuj zapisaną konfigurację okna)
Uważam jednak, że rejestry są nieporęczne, do zarządzania moimi konfiguracjami używam niestandardowego stosu konfiguracji okien.
Mam dwa wiązania, które wypychają bieżącą konfigurację na stos, a następnie otwierają i stosują najwyższą konfigurację.
Więc w twoim sceneario wykonałbym moje wiązanie push, następnie Cx 1, a następnie wykonałem moje pop pop.
Oto kod:
(defvar winstack-stack '()
"A Stack holding window configurations.
Use `winstack-push' and
`winstack-pop' to modify it.")
(defun winstack-push()
"Push the current window configuration onto `winstack-stack'."
(interactive)
(if (and (window-configuration-p (first winstack-stack))
(compare-window-configurations (first winstack-stack) (current-window-configuration)))
(message "Current config already pushed")
(progn (push (current-window-configuration) winstack-stack)
(message (concat "pushed " (number-to-string
(length (window-list (selected-frame)))) " frame config")))))
(defun winstack-pop()
"Pop the last window configuration off `winstack-stack' and apply it."
(interactive)
(if (first winstack-stack)
(progn (set-window-configuration (pop winstack-stack))
(message "popped"))
(message "End of window stack")))
Następnie można powiązać winstack-push
do czegoś podobnego C-cC-u, i winstack-pop
aby C-cC-ołatwo skakać.
Używam
winner-mode
. Oto moja konfiguracja:Nie wiem, czy istnieje sposób dodania zakładki do układu, czy czegoś, ale ciągłe przełączanie się do poprzedniego układu wystarczy mi.
źródło
Emacs oferuje rejestry do zapisywania i stosowania danych, takich jak bieżąca konfiguracja okna, można to zrobić za pomocą
C-x r w
iC-x r j
. Jednak takie podejście staje się niewygodne, ponieważ musisz pamiętać rejestry okien.Istnieje kilka pakietów, które mogą to poprawić. iregister sprawia, że ta podstawowa funkcja jest bardziej sprawdzalna i interaktywna. Inne, o których wiem, że używają go bez wpływu na rejestry, takie jak elscreen i escreen, które używają paska nagłówka do wyświetlania kart. grupy robocze i grupy robocze2 to dwa nowsze i bardziej rozbudowane podejścia do tego problemu. Osobiście mi się nie podobało i dlatego napisałem własny, który jest gdzieś pośrodku i mam nadzieję, że mniej błędów i złożoności.
źródło
(window-configuration-to-register "1")
jako polecenie w moich .emacs, ale to nie zadziałałoMożesz zapisać bieżący układ okna w rejestrze, a następnie przywrócić go za pomocą
jump-to-register
. Poleceniewindow-configuration-to-register
jestC-x r w
domyślnie powiązane .Na przykład, jeśli masz uporządkowane okna w przydatny sposób, możesz zapisać je w celu rejestracji
i
za pomocą:C-x r w i
i przywrócić układ później za pomocąC-x r j i
.źródło
Zygospore zapewnia szybką naprawę sytuacji, w której masz otwartych wiele okien i chcesz tymczasowo zmaksymalizować jedno z nich. Zmienia zachowanie
C-x 1
. Po otwarciu wielu okien zachowuje się jak domyślnydelete-other-windows
i usuwa wszystkie okna oprócz tego, które przeglądasz. Po ponownym naciśnięciu przywraca inne okna.Tryb Zwycięzca zapewnia bardziej ogólne rozwiązanie, ale zygospore świetnie nadaje się do tymczasowego powiększania pojedynczego okna w ramce. Najlepsze jest to, że nie używa żadnych nowych skrótów klawiszowych - zmienia definicję
C-x 1
w bardzo intuicyjny sposób, więc nie ma żadnych nowych powiązań do nauki.źródło
To interesujące pytanie. Kilka lat temu zbadałem wszystkie rozwiązania. Tylko grupy robocze2.el są wystarczająco ciężkie, aby objąć wszystkie skrzynki narożne.
Ale interfejs roboczy grupy roboczej 2 jest katastrofą. Na przykład, jeśli włączysz tryb grupy roboczej (jak sugeruje README), poprzedni układ zostanie automatycznie załadowany podczas uruchamiania emacsa. To sprawia, że uruchamianie jest wyjątkowo wolne KAŻDY czas.
Moim rozwiązaniem jest traktowanie grup roboczych 2 jako zbioru API zamiast użytecznego narzędzia od razu po wyjęciu z pudełka. Dlatego zmieniam domyślną interakcję interfejsu użytkownika za pomocą trybu bluszczu ( https://github.com/abo-abo/swiper ) z @ abo-abo
Przełączanie pełnego okna jest łatwe, wystarczy użyć interfejsów API z trybu zwycięzcy.
Oto kompletny kod (I tylko używać
M-x toggle-full-window
,M-x wg-create-workgroup
iM-x my-wg-switch-workgroup
, trzeba także zainstalować Swiper, jak wspomniano powyżej),źródło