Comment changer les fenêtres Emacs de fractionnement vertical en fractionnement horizontal?

26
Window A
++++++++
Window B

Existe-t-il un moyen de passer à

Window A : Window B

Existe-t-il un moyen de changer de vue sans fermer les fenêtres?

Entaille
la source
1
Avec les grands écrans d'aujourd'hui, pourquoi voudrait-on jamais faire autre chose que des fenêtres côte à côte? J'utilise six fenêtres réparties sur deux monitorns - j'utilise github.com/Lindydancer/multicolumn pour configurer les fenêtres lorsque je démarre Emacs et j'ai configuré la plupart de mes packages pour réutiliser les fenêtres existantes.
Lindydancer

Réponses:

13

Voici une fonction simple qui bascule entre une division horizontale et verticale. Il suppose que vous n'avez que deux fenêtres et ne fait aucun redimensionnement:

(defun window-split-toggle ()
  "Toggle between horizontal and vertical split with two windows."
  (interactive)
  (if (> (length (window-list)) 2)
      (error "Can't toggle with more than 2 windows!")
    (let ((func (if (window-full-height-p)
                    #'split-window-vertically
                  #'split-window-horizontally)))
      (delete-other-windows)
      (funcall func)
      (save-selected-window
        (other-window 1)
        (switch-to-buffer (other-buffer))))))
Dan
la source
14

Alternativement, il y a un tranpose-framepackage sur EmacsWiki qui vous permettra de transposer l'ensemble du cadre, ainsi que d'autres transformations (rotation de 180 degrés; rotation de 90 degrés dans le sens horaire ou antihoraire; basculement horizontal ou vertical).

Dmitry
la source
9

Le transpose-framepackage est également disponible sur MELPA .

Utilisez M-x transpose-frame-le ou liez-le à quelque chose pour accomplir cela.

salotz
la source