¿Cómo cambiar las ventanas de Emacs de división vertical a división horizontal?

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

¿Hay alguna manera de cambiar a

Window A : Window B

¿Hay alguna manera de cambiar la vista sin cerrar ventanas?

Mella
fuente
1
Con las pantallas grandes de hoy, ¿por qué alguien querría ejecutar algo más que ventanas de lado a lado? Uso seis ventanas repartidas en dos monitores: uso github.com/Lindydancer/multicolumn para configurar las ventanas cuando inicio Emacs y he configurado la mayoría de mis paquetes para reutilizar las ventanas existentes.
Lindydancer

Respuestas:

13

Aquí hay una función simple que alternará entre una división horizontal y vertical. Se supone que solo tiene dos ventanas y no cambia el tamaño:

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

Alternativamente, hay un tranpose-framepaquete en EmacsWiki que le permitirá transponer todo el marco, así como hacer otras transformaciones (rotar 180 grados; rotar 90 grados en sentido horario o antihorario; voltear horizontal o verticalmente).

Dmitry
fuente
9

El transpose-framepaquete también está disponible en MELPA .

Úselo M-x transpose-frameo agárrelo a algo para lograr esto.

salotz
fuente