Ответ 1
Вас может заинтересовать C-x +, если у вас более двух окон. Он равномерно выравнивает окна на раме. Это удобно, например, когда вы выполняете две C-x 2 в строке и хотите, чтобы окна занимали одно и то же пространство на фрейме.
В Vim я могу перемещать раскол. Например, если мое окно было разделено на два по горизонтали, а верхнее разделение было разделено вертикально (всего три разбиения), я мог бы переместить верхний правый раскол вправо, чтобы стать вертикальным разделом, занимающим все вертикальное пространство.
Возможна ли такая перегруппировка?
Обновление: Я знаю, что изменение размера возможно, но я хочу двигаться. Я чувствую, что это не поддерживается Emacs.
Вас может заинтересовать C-x +, если у вас более двух окон. Он равномерно выравнивает окна на раме. Это удобно, например, когда вы выполняете две C-x 2 в строке и хотите, чтобы окна занимали одно и то же пространство на фрейме.
Нет, не по умолчанию. То, что вы должны играть, в основном C-x 0
, C-x 1
и т.д. Посмотрите Emacs Wiki для расширений, которые могут или не могут делать что вы ищете.
FWIW, если вы работаете в графическом интерфейсе, то вы можете быстро и легко перенастроить размеры окон с помощью мыши. Это не совсем то же самое, что вы просите, но может быть удобной альтернативой в некоторых случаях.
Вы можете щелкнуть любую неактивную область линии режима (например, имя буфера), а затем перетащить ее вверх или вниз.
Перетаскивание из стороны в сторону более странно. Вы должны щелкнуть по точной границе между двумя линиями режима, а затем вы можете перетащить влево/вправо.
В вашем конкретном примере я не верю, что это поддерживается. AFAIK вы можете только реорганизовать разрывы окна в пределах своего существующего "родительского" окна (верхний раскол в этом примере). Чтобы верхнее правое окно заполнило вертикальное пространство, вы либо удалите нижнее окно с помощью C-x 0, либо используйте C-x 1, чтобы удалить все остальные окна, а затем повторно разбить их желаемым образом.
(Тангенциально, я часто думал, что пользовательская библиотека для "поворота" раскола окна была бы хорошей вещью.)
Я считаю, что команды изменения размера окна встроены в window.el
, from emacswiki функции, которые вы хотите задокументировать:
shrink-window-horizontally ; C-x {
enlarge-window-horizontally ; C-x }
enlarge-window ; C-x ^
shrink-window ; not bound on my system
Комментарии - это то, что они привязаны к моей системе, но я не знаю, сделал ли я это сам.
Все они принимают префиксный аргумент, количество строк для увеличения/сжатия. Последние два по умолчанию по вертикали.
Насколько я знаю, вы не можете создать новое окно, которое будет использовать длину или ширину экрана из уже разбитого окна в этом направлении. Буферы остаются открытыми, если вы закрываете окна, чтобы удалить окна, а затем разбить их в нужной конфигурации. Затем измените, какой буфер отображается в окне, в котором вы находитесь, нажав кнопку C-x влево или вправо.
Я должен добавить, что этот ответ относится к "vanilla" emacs, возможно, есть способ сделать то, что OP спрашивает, действительно ли вы этого хотите. Это emacs в конце концов.