Как переставить разделенную панель в Emacs? - PullRequest
10 голосов
/ 01 октября 2010

В Vim я могу двигать сплит вокруг.Например, если мое окно было разделено на две части по горизонтали, с самым верхним разделением по вертикали (всего 3 разделения), я мог бы переместить разделение по верхнему правому углу вправо, чтобы стать вертикальным, занимая все вертикальное пространство.

Возможен ли такой вид перестановки?

Обновление: Я знаю, что изменение размера возможно, хотя я собираюсь двигаться.Я чувствую, что это не поддерживается Emacs.

Ответы [ 5 ]

4 голосов
/ 02 октября 2010

FWIW, если вы работаете в графическом интерфейсе, вы можете точно и быстро изменить размеры окна быстро и легко с помощью мыши. Это не совсем то, о чем вы просите, но в некоторых случаях может быть удобной альтернативой.

Вы можете щелкнуть любую неактивную область строки режима (например, имя буфера), а затем перетащить ее вверх или вниз.

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

Для вашего конкретного примера я не верю, что это поддерживается. AFAIK, вы можете только реорганизовать разделение окон в пределах их существующего «родительского» окна (верхний раздел в этом примере). Чтобы верхнее правое окно заполнило вертикальное пространство, вы должны либо удалить нижнее окно с помощью Cx 0 , либо использовать Cx 1 , чтобы удалить все остальные окна, а затем заново разделить их в желаемом порядке.

(Тангенциально, я часто думал, что было бы неплохо иметь собственную библиотеку для «поворота» оконных расщеплений.)

4 голосов
/ 01 октября 2010

Вас может заинтересовать Cx + , если у вас более 2 окон.Равномерно переставляет окна на раме.Это удобно, например, когда вы делаете два Cx 2 подряд и хотите, чтобы окна занимали одинаковое пространство в кадре.

3 голосов
/ 01 октября 2010

Нет, не по умолчанию.В основном вам нужно поиграть C-x 0, C-x 1 и т. Д. Найдите в Emacs Wiki расширения, которые могут выполнять, а могут и не выполнять то, что вы ищете.

1 голос
/ 01 октября 2010

Я считаю, что команды изменения размера окна встроены в window.el, из emacswiki функции, которые вы хотите задокументировать:

shrink-window-horizontally  ; C-x {
enlarge-window-horizontally ; C-x }
enlarge-window              ; C-x ^
shrink-window               ; not bound on my system

Комментарии - это то, с чем они связаныв моей системе, но я не знаю, сделал ли я это сам.

Все они принимают аргумент префикса, количество строк для увеличения / уменьшения.Последние два по умолчанию вертикали.

0 голосов
/ 26 сентября 2014

Насколько я знаю, вы не можете создать новое окно, которое запускает длину или ширину экрана из окна, уже разделенного в этом направлении. Буферы остаются открытыми, если вы закрываете окна, поэтому вы можете удалить их, а затем разделить их в нужной конфигурации. Затем измените, какой буфер отображается в окне, в котором вы находитесь, нажав C-x стрелку влево или вправо.

Я должен добавить, что этот ответ касается "ванильных" Emacs, возможно, есть способ сделать то, что ОП спрашивает, действительно ли вы этого хотите. В конце концов, это emacs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...