Как изменить размер окон Emacs с разделенным экраном?

12

Если у меня Emacs разделен по горизонтали и сверху, я редактирую код elisp, а внизу я в оболочке. По умолчанию Emacs делает два окна одинаковыми по размеру, но я бы хотел, чтобы буфер оболочки был меньше. Мне было интересно, как я мог это сделать.

Оригинальный вопрос, заданный Стивом для SO: Как изменить размер окон Emacs с разделенным экраном?

Люк Шимкус
источник
4
Мы намеренно дублируем вопросы из SO? stackoverflow.com/questions/4987760/…
phils
@phils, нет я не был. Но я сделаю ссылку на пост. Спасибо за понимание.
Люк Шимкус
кроме того, этот был немного слишком легок :)
Nsukami _
1
Ну и дела, отличное редактирование @King. Теперь этот вопрос стал действительно отличаться от того, который вы скопировали ...
rsenna
2
это заставляет меня думать, что связанные с emacs вопросы по SO должны быть перенесены. Он
избежит

Ответы:

18

C-x-( shrink-window-if-larger-than-buffer) чтобы уменьшить окно, чтобы соответствовать его содержимому.

C-x+( balance-windows) чтобы окна были одинаковой высоты и ширины.

C-x^( enlarge-window) увеличить высоту на 1 строку или префикс arg. Отрицательный аргумент сжимает окно. Пример:C-u - 3 C-x ^

C-x{( shrink-window-horizontally)

C-x}( enlarge-window-horizontally)

Нсуками _
источник
+1 за усадку. Я искал способ уменьшить одну линию. Что такое C-u?
Васс
3
@Vass C-uначать числовой аргумент для следующей команды. Если вы хотите увеличить в 5 раз, вместо того, чтобы печатать 5 раз, одной и той же командой, вы C-u 5 C-x ^
набираете
1
Также стоит отметить, что C-uзначение по умолчанию равно 4, что означает то C-u C-x ^же самое, что и C-u 4 C-x ^.
19
7

Я также рекомендовал бы проверить либо windresizeпакет от ELPA , либо windsizeпакет от MELPA .

С помощью windresizeвы можете сделать, M-x windresizeа затем с помощью клавиш со стрелками легко перемещать границы окна, нажимая клавишу ВВОД, когда вы закончите.

Ли Х
источник
3

Вы можете использовать C-x^( enlarge-window) в верхнем окне, чтобы увеличить его (и, следовательно, уменьшить нижнее окно).

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

Франсуа Февотт
источник
отличная идея сделать еще одно окно меньше, увеличив его над ним!
Васс
0

Также обратите внимание, что, как и в оконной системе, вы можете использовать мышь с режимом xterm-mouse-mode для перетаскивания оконного разделителя.

Обратите внимание, что иногда кажется, что это немного зависит от фактической xterm или xterm-подобной программы, и iirc в более старом Emacsen не был надежным после 100-го столбца, если только вы немного не поиграли с переменной окружения TERM, но в моем Emacs 24.2 .1 работает нормально с emacs -nw -q (т.е. полностью игнорирует мой .emacs и вручную включает режим xterm-mouse-mode с помощью M-x xterm-mouse-mode)

Обновление: к сведению для полноты, я укажу, что это также работает для вертикальных разделителей (т.е. когда вы разделены с C-x 3)

Марк Ауффлик
источник
0

Я когда-либо писал простой минорный режим (для личного использования) для интерактивного resize-frame. Я думаю, что это должно быть удобно.

https://gist.github.com/kuanyui/65a408d393871048771c

M-x resize-frameвключить resize-frameминорный режим:

  1. Нажмите, arrow keysчтобы настроить размер по горизонтали / вертикали.
  2. Нажмите любую другую клавишу, чтобы отключить.
kuanyui
источник