Je veux fermer toutes mes fenêtres sauf la fenêtre actuelle et maximiser le cadre afin que je puisse rapidement voir tout dans le tampon dans cette fenêtre, puis revenir à ma configuration de fenêtre précédente. Comment pourrais-je procéder?
Je veux fermer toutes mes fenêtres sauf la fenêtre actuelle et maximiser le cadre afin que je puisse rapidement voir tout dans le tampon dans cette fenêtre, puis revenir à ma configuration de fenêtre précédente. Comment pourrais-je procéder?
Réponses:
Les différentes sections de texte que vous voyez dans vos Emacs sont des fenêtres . Vous pouvez, par exemple, créer une nouvelle fenêtre avec C-x 2
. Oui, cette terminologie prête à confusion. Il est antérieur à la plupart des systèmes d'interface graphique, il est donc compréhensible s'il est toujours déroutant.
Mais une fois que nous savons que nous parlons de fenêtres, nous pouvons faire les changements que vous souhaitez. Pour se débarrasser de toutes les fenêtres sauf celle dans laquelle se trouve le point, exécutez-le C-x 1
, mappez-le delete-other-windows
.
Ensuite, pour revenir à ce que vous aviez auparavant, il existe une bibliothèque assez utile appelée mode gagnant . Il vous permet d'annuler et de rétablir les modifications apportées à la configuration de votre fenêtre.
Donc, activez le mode gagnant avec M-x winner-mode
, puis après avoir appelé C-x 1
, vous pouvez appuyer sur C-c left
pour annuler la modification de la configuration de la fenêtre, en remettant les fenêtres à ce qu'elles étaient.
Si vous souhaitez activer définitivement le mode gagnant, insérez (winner-mode)
votre fichier init.
L'utilisation winner-mode
est pratique, mais si vous voulez vraiment basculer entre une fenêtre et une configuration multi-fenêtres, voici quelque chose que j'ai utilisé auparavant:
(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)))
Vous pouvez par exemple lier cela C-x 1
et utiliser cette même clé pour basculer entre les états.
J'utilise ce qui suit, copié à partir du Web. C'est un moyen rapide de quitter la configuration actuelle de votre fenêtre. Une fois que vous avez terminé, utilisez exit-recursive-edit
pour revenir.
;; 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))))