Почему set-default-font влияет на find-file-other-window?
Я недавно добавил строку
(set-default-font "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1")
в мой файл.emacs. После этого find-file-other-window
всегда открывает новое окно вместо использования существующих окон. Почему это случилось? Как я могу это исправить?
Я не понимаю, как работает вся эта магия font-config, поэтому, если это действительно очевидно, извините.
Изменить: У меня довольно большое разрешение, и мой размер шрифта значительно уменьшился. Есть ли find-file-other-window
учитывать доступное пространство символов? Возможно, он решает, что у него так много места, что он может позволить себе просто открыть окна.
1 ответ
find-file-other-window
в конечном итоге звонки display-buffer
, который запускает сложный алгоритм, чтобы решить, следует ли повторно использовать существующее окно или сделать его и как. В частности, если display-buffer
решает, что ему нужно создать или перезапустить окно, он пытается вызвать split-window-preferred-function
разбить самое большое окно. По умолчанию, split-window-preferred-function
является split-window-sensibly
, который готов разделить окна по вертикали, если они больше split-height-threshold
линий, или провалив их горизонтально, если они больше split-width-threshold
колонны широкие.
Похоже, вы хотите
(setq split-width-threshold nil)
(setq split-height-threshold nil)
NB Этот ответ относится к GNU Emacs 23. Более ранние версии не имели горизонтального разделения. Более поздние версии могут действовать по-другому.
Несколько способов выяснить это (ни одного простого):
- Если вы предполагаете, что то, что происходит, называется разделением окна:
M-x apropos RET split RET
показывает количество переменных и функций, и вы можете выяснить, какие из них актуальны. Или, если вы предполагаете, что есть вариант (часто есть),C-h v split- TAB
показывает многообещающие ведет. - Документация для
find-file-other-window
ссылки, отображающие буферы. (Вы должны обратиться к руководству по Elisp для такого уровня детализации; в Emacs,C-h i m elisp RET
вызывает руководство Elisp иi find-file-other-window RET
приводит вас к документации для этой функции.) Менее ясно, чтоpop-to-buffer
отрывок для чтения там; он ссылается на окно выбора, которое содержит искомую информацию. C-h f find-file-other-window RET
показывает встроенную документацию для функции. Это ссылки наdisplay-buffer
, Описаниеdisplay-buffer
не описывает его работу подробно, поэтому оттуда вы должны либо обратиться к руководству Elisp, как описано выше, либо изучить источникdisplay-buffer
нажав наwindow.el
,