Ich möchte alle meine Fenster außer dem aktuellen schließen und den Rahmen maximieren, damit ich schnell alles im Puffer in diesem einen Fenster sehen und dann zu meinem vorherigen Fenster-Setup zurückkehren kann. Wie würde ich das machen?
Ich möchte alle meine Fenster außer dem aktuellen schließen und den Rahmen maximieren, damit ich schnell alles im Puffer in diesem einen Fenster sehen und dann zu meinem vorherigen Fenster-Setup zurückkehren kann. Wie würde ich das machen?
Antworten:
Die verschiedenen Textabschnitte, die Sie in Ihrem Emacs sehen, sind Fenster . Sie können beispielsweise ein neues Fenster mit erstellen C-x 2
. Ja, diese Terminologie ist verwirrend. Es ist älter als die meisten GUI-Systeme, daher ist es verständlich, wenn es immer noch verwirrend ist.
Sobald wir jedoch wissen, dass es sich um Fenster handelt, können wir die gewünschten Änderungen vornehmen. Um alle Fenster außer dem Fenster zu entfernen, in dem sich der Punkt befindet, führen Sie ihn aus C-x 1
und ordnen Sie ihn zu delete-other-windows
.
Um zu dem zurückzukehren, was Sie zuvor hatten, gibt es eine ziemlich nützliche Bibliothek namens Winner-Mode . Damit können Sie Änderungen an Ihrer Fensterkonfiguration rückgängig machen und wiederholen.
Aktivieren Sie also den Winner-Modus mit M-x winner-mode
und C-x 1
drücken Sie nach dem Anruf , C-c left
um die Änderung an der Fensterkonfiguration rückgängig zu machen und die Fenster wieder auf den ursprünglichen Wert zurückzusetzen.
Wenn Sie den Winner-Modus dauerhaft aktivieren möchten, fügen Sie (winner-mode)
Ihre Init-Datei ein.
Die Verwendung winner-mode
ist praktisch, aber wenn Sie wirklich nur zwischen einem Fenster und einer Konfiguration mit mehreren Fenstern hin und her wechseln möchten, habe ich Folgendes verwendet:
(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)))
Sie können dies an z. B. binden C-x 1
und denselben Schlüssel verwenden, um die Status umzuschalten.
Ich benutze das Folgende, kopiert aus dem Web. Auf diese Weise können Sie schnell Ihre aktuelle Fensterkonfiguration verlassen. Nachdem Sie fertig sind, verwenden Sie exit-recursive-edit
, um zurück zu kommen.
;; 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))))