我最近添加了这行
(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
是否考虑了可用的字符空间?也许是因为它确定有足够的空间,只能在不知不觉中打开窗户。
答案 0 :(得分:5)
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)
N.B。这个答案适用于GNU Emacs 23.早期版本没有水平分割。以后的版本可能会做不同的事情。
找到这个的一些方法(没有直截了当):
M-x apropos RET split RET
显示了许多变量和函数,您可能会发现哪些是相关的。或者,如果您猜测有一个选项(通常有),C-h v split- TAB
显示有前途的线索。find-file-other-window
引用Displaying Buffers。 (您必须转到Elisp手册以获得此详细程度;在Emacs中,C-h i m elisp RET
会显示Elisp手册,而i find-file-other-window RET
会引导您访问此功能的文档。)不太清楚{ {3}}是读那里的通道;它引用pop-to-buffer
,其中包含所寻求的信息。C-h f find-file-other-window RET
显示该功能的内置文档。它链接到display-buffer
。 display-buffer
的说明并未详细说明其操作,因此您需要查阅上述Elisp手册或通过点击display-buffer
来探索window.el
的来源。< / LI>