Szybki sposób na zamknięcie wszystkich okien oprócz jednego, a następnie przywrócenie poprzedniej konfiguracji okna?


12

Chcę zamknąć wszystkie okna oprócz bieżącego i zmaksymalizować ramkę, aby szybko zobaczyć wszystko w buforze w tym jednym oknie, a następnie powrócić do poprzedniej konfiguracji okna. Jak miałbym to zrobić?


Ten link może pomóc.
Nsukami _

3
Nie jest do końca jasne, co rozumiesz przez „zamknij” lub „zobacz wszystko w tej jednej klatce”. Czy (podnoszenie i) maksymalizowanie klatki, którą jesteś zainteresowany, nie pozwoli ci zobaczyć wszystkiego w tej ramce? Pozostałe ramki nadal tam będą, ale będą ukryte za zmaksymalizowaną ramką. Jest to trywialne do osiągnięcia, jeśli pasuje do twoich potrzeb.
Drew

1
Żeby się upewnić, używasz definicji ramki słów Emacsa , prawda? Najważniejsza rzecz, którą zarządza menedżer okien?
zck

@zck Mam na myśli poszczególne widoczne bufory, na które mam podzielony ekran. Chcę zmaksymalizować jeden bufor, aby wypełnić cały ekran, a następnie cofnąć go, aby zobaczyć wszystkie bufory w ich oryginalnej konfiguracji. Przepraszam, jeśli źle zrozumiałem słownictwo, próbowałem je wyszukać i wybrać najlepsze słowo do użycia
Andrew

Odpowiedzi:


14

Różne sekcje tekstu widoczne w Emacsie to okna . Możesz na przykład utworzyć nowe okno za pomocą C-x 2. Tak, ta terminologia jest myląca. Wyprzedza większość systemów GUI, więc jest zrozumiałe, jeśli nadal jest mylące.

Ale gdy już wiemy, że mówimy o systemie Windows, możemy wprowadzić żądane zmiany. Aby pozbyć się wszystkich okien oprócz tego, w którym znajduje się ten punkt, uruchom C-x 1, zamapuj na delete-other-windows.

Następnie, aby powrócić do tego, co miałeś wcześniej, istnieje całkiem przydatna biblioteka o nazwie tryb zwycięzcy . Umożliwia cofanie i ponawianie zmian w konfiguracji okna.

Włącz tryb zwycięzcy za pomocą M-x winner-mode, a następnie po zadzwonieniu C-x 1możesz nacisnąć, C-c leftaby cofnąć zmianę konfiguracji okna i przywrócić okna do stanu, w jakim były.

Jeśli chcesz na stałe włączyć tryb zwycięzcy, umieść (winner-mode)plik inicjujący.


7

Korzystanie winner-modejest przydatne, ale jeśli naprawdę chcesz po prostu przewijać w przód iw tył między jednym oknem a konfiguracją wielu okien, oto coś, z czego korzystałem wcześniej:

(defvar window-split-saved-config nil)

(defun window-split-toggle-one-window ()
  "Make the current window fill the frame.
If there is only one window try reverting to the most recently saved
window configuration."
  (interactive)
  (if (and window-split-saved-config (not (window-parent)))
      (set-window-configuration window-split-saved-config)
    (setq window-split-saved-config (current-window-configuration))
    (delete-other-windows)))

Możesz to powiązać np. C-x 1I użyć tego samego klucza do przełączania stanów.


1

Korzystam z poniższych, skopiowanych z Internetu. Jest to szybki sposób na opuszczenie bieżącej konfiguracji okna. Po zakończeniu użyj, exit-recursive-editaby wrócić.

;; http://www.emacswiki.org/emacs/RecursiveEditPreservingWindowConfig    
;; inspired by Erik Naggum's `recursive-edit-with-single-window'

(defmacro recursive-edit-preserving-window-config (body)
  "*Return a command that enters a recursive edit after executing BODY.
 Upon exiting the recursive edit (with\\[exit-recursive-edit] (exit)
 or \\[abort-recursive-edit] (abort)), restore window configuration
 in current frame."
  `(lambda ()
     "See the documentation for `recursive-edit-preserving-window-config'."
     (interactive)
     (save-window-excursion
       ,body
       (recursive-edit))))

(global-set-key (kbd "C-c 0") (recursive-edit-preserving-window-config (delete-window)))
(global-set-key (kbd "C-c 1") (recursive-edit-preserving-window-config
                               (if (one-window-p 'ignore-minibuffer)
                                   (error "Current window is the only window in its frame")
                                 (delete-other-windows))))
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.