为什么set-default-font会影响find-file-other-window?

时间:2010-12-30 19:43:29

标签: emacs fontconfig

我最近添加了这行

(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 个答案:

答案 0 :(得分:5)

find-file-other-window最终调用display-buffer,它运行一个复杂的算法来决定是重用现有窗口还是重新创建一个窗口。特别是,如果display-buffer决定需要创建或回收一个窗口,它会尝试调用split-window-preferred-function来分割最大的窗口。默认情况下,split-window-preferred-functionsplit-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显示有前途的线索。
  • documentation for 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-bufferdisplay-buffer的说明并未详细说明其操作,因此您需要查阅上述Elisp手册或通过点击display-buffer来探索window.el的来源。< / LI>