Emacs постоянно делает новые окна, и это в последнее время портит мне жизнь. Как я могу сказать emacs использовать следующую политику при создании окон?
- Предпочитаю вертикальные расколы
- Прекратите делать вертикальные разбиения, когда окна будут меньше, чем 80 столбцов.
- Прекратите делать горизонтальные разбиения, когда окно будет меньше, чем 60 строк.
- Когда я достигну этой сетки 6x6, на моем 27-дюймовом мониторе начнем многократно использовать окна!
Кроме того, я бы предпочел, чтобы мои окна всегда были сбалансированными, но при каждом разделении размеры вдов остаются несбалансированными. Я предпочел бы иметь 3 одинаковых по размеру окна, чем одно большое и два слишком маленьких! Есть ли для этого настройка или разумное место, чтобы поставить совет по балансам?
window-splitting
expez
источник
источник
display-buffer-alist
. Другие просто программно исправляют это по факту - например,delete-window
иswitch-to-buffer
, разделить по вертикали / по горизонтали и так далее. И есть несколько дополнительных библиотек, которые помогают управлять окнами и / или возвращаться к предыдущему макету. Я предпочитаю первый вариант - то есть изменить исходный код и сделать его абсолютно идеальным, но я в редком меньшинстве людей.split-height-threshold
иsplit-width-threshold
- gnu.org/software/emacs/manual/html_node/emacs/...display-buffer-alist
. См.display-buffer
Требования к такой функции ACTION (и список стандартных функций, код, который вы можете исследовать), но он будет отвечать за отображение буфера любым способом, который вы пожелаете (и, конечно, может впоследствии сбалансировать окна) ,Ответы:
Я давно пользуюсь следующим. Возможно, вам придется отредактировать его в соответствии с вашим собственным предпочтительным стилем.
источник
Немного поздно, но потому что я тоже искал и не смог найти готового решения:
Вы можете определить свою собственную
split-window-sensibly
функцию.Для этого поместите в свой файл следующее
init.el
:Примечание. Пороговые значения должны быть в два раза больше минимально допустимого, поскольку каждое новое окно использует половину прежнего размера окна.
Последняя строка указывает emacs использовать определенную функцию split.
источник
Это заставит вас предпочесть вертикальное разделение
источник
(setq split-height-threshold nil) (setq split-width-threshold 200)
split-height-threshold
в основном никогда не хочет разделить по горизонтали200
кажется достаточно большим числом, что даже на большом внешнем дисплее Emacs будет разделяться не более одного раза.источник