Wie ändere ich Emacs-Fenster von vertikaler zu horizontaler Aufteilung?

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

Gibt es einen Weg, um zu wechseln

Window A : Window B

Gibt es eine Möglichkeit, die Ansicht zu wechseln, ohne die Fenster zu schließen?

Nick
quelle
1
Warum sollte man bei den heutigen großen Bildschirmen jemals etwas anderes als Fenster nebeneinander betreiben wollen? Ich verwende sechs auf zwei Monitorns verteilte Fenster - ich verwende github.com/Lindydancer/multicolumn , um die Fenster einzurichten, wenn ich Emacs starte und die meisten meiner Pakete so konfiguriert habe, dass vorhandene Fenster wiederverwendet werden.
Lindydancer
3
Mögliches Duplikat der geteilten Ausrichtung
TooTone

Antworten:

13

Hier ist eine einfache Funktion, die zwischen einer horizontalen und einer vertikalen Teilung umschaltet. Es wird davon ausgegangen, dass Sie nur zwei Fenster haben und die Größe nicht ändern:

(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
quelle
14

Alternativ gibt es tranpose-frameauf EmacsWiki ein Paket , mit dem Sie den gesamten Frame transponieren und andere Transformationen durchführen können (um 180 Grad drehen; um 90 Grad im oder gegen den Uhrzeigersinn drehen; horizontal oder vertikal drehen).

Dmitry
quelle
9

Das transpose-framePaket ist auch bei MELPA erhältlich .

Verwenden M-x transpose-frameoder binden Sie es an etwas, um dies zu erreichen.

salotz
quelle