Как изменить окна Emacs с вертикального разделения на горизонтальное?

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

Есть ли способ перейти на

Window A : Window B

Есть ли способ переключить вид, не закрывая окна?

Ник
источник
1
С большими экранами сегодняшнего дня, почему кто-то хотел бы запустить что-то кроме параллельных окон? Я использую шесть окон, разбросанных по двум мониторам - я использую github.com/Lindydancer/multicolumn для настройки окон при запуске Emacs и настройки большинства моих пакетов для повторного использования существующих окон.
Lindydancer

Ответы:

13

Вот простая функция, которая будет переключаться между горизонтальным и вертикальным разделением. Предполагается, что у вас есть только два окна, и изменение размера не выполняется:

(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))))))
Дэн
источник
14

В качестве альтернативы, в tranpose-frameEmacsWiki есть пакет , который позволит вам транспонировать весь кадр, а также выполнять другие преобразования (поворот на 180 градусов; поворот на 90 градусов по часовой стрелке или против часовой стрелки; поворот по горизонтали или вертикали).

Дмитрий
источник
9

transpose-frameПакет доступен на MELPA , а также.

Используйте M-x transpose-frameили привяжите это к чему-либо, чтобы достичь этого.

salotz
источник