Un moyen rapide de fermer toutes les fenêtres sauf une, puis de revenir à la configuration de fenêtre précédente?

12

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?

Andrew
la source
Ce lien peut vous aider.
Nsukami _
3
Il n'est pas vraiment clair ce que vous entendez par "fermer" ou "voir tout dans cette seule image". Est-ce que (augmenter et maximiser) le cadre qui vous intéresse ne vous laisserait pas tout voir dans ce cadre? Les autres cadres seraient toujours là, mais seraient cachés derrière le cadre maximisé. C'est trivial à accomplir, si cela correspond à vos besoins.
Drew
1
Juste pour être sûr, vous utilisez la définition Emacs du cadre de mots , non? La chose de haut niveau qui est gérée par votre gestionnaire de fenêtres?
zck
@zck Je veux dire les tampons visibles individuels dans lesquels mon écran est divisé. Je veux maximiser un tampon pour remplir tout l'écran, puis l'annuler pour que je puisse voir tous les tampons dans leur configuration d'origine. Je m'excuse si j'ai mal compris le vocabulaire, j'ai essayé de le chercher et de choisir le meilleur mot à utiliser
Andrew

Réponses:

14

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 leftpour 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.

zck
la source
7

L'utilisation winner-modeest 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 1et utiliser cette même clé pour basculer entre les états.

glucas
la source
1

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-editpour 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))))
clemera
la source