La manière intégrée de le faire est avec des registres.
Par exemple, utilisez C-xrwapour enregistrer la configuration actuelle de la fenêtre pour enregistrer un fichier.
Ensuite, vous pouvez utiliser la liaison intégrée C-x1pour exécuterdelete-other-windows
une fois que vous avez terminé de regarder le fichier unique, utilisez C-xrjapour revenir à la configuration de la fenêtre enregistrée dans le registre a.
En bref:
C-xrwa (enregistrer la configuration dans le registre)
C-x1 (supprimer d'autres fenêtres)
C-xrja (réappliquer la configuration de la fenêtre enregistrée)
Je trouve que les registres sont difficiles à utiliser, j'utilise une pile de configuration de fenêtre personnalisée pour gérer mes configurations.
J'ai deux liaisons qui poussent la configuration actuelle sur la pile, et pop et appliquent la configuration supérieure.
Donc, dans votre scénario, j'effectuerais ma liaison push, puis Cx 1, puis j'effectuerais ma liaison pop.
Voici le code:
(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")))
Vous pouvez ensuite vous lier winstack-push
à quelque chose comme C-cC-u, et winstack-pop
à C-cC-osauter facilement.