3

我最近添加了这条线

(set-default-font "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1")

到我的 .emacs 文件。之后find-file-other-window总是打开一个新窗口而不是利用现有窗口。为什么会这样!?我该如何解决?

我不明白所有这些字体配置魔法是如何工作的,所以如果它真的很明显,我很抱歉。

编辑:我有一个相当大的分辨率,我的字体大小已经大大减少了。是否find-file-other-window考虑到可用的字符空间?也许它决定有太多的空间可以随便打开窗户。

4

1 回答 1

5

find-file-other-window最终调用display-buffer,它运行一个复杂的算法来决定是重用现有窗口还是制作一个以及如何制作一个。特别是,如果display-buffer决定它需要创建或回收一个窗口,它会尝试调用split-window-preferred-function以拆分最大的窗口。默认情况下,split-window-preferred-functionis split-window-sensibly,如果窗口超过split-height-threshold行高,则愿意垂直拆分窗口,如果窗口超过split-width-threshold列宽,则愿意水平拆分。

看起来你想要

(setq split-width-threshold nil)
(setq split-height-threshold nil)

注意这个答案适用于 GNU Emacs 23。早期版本没有水平分割。以后的版本可能会做不同的事情。


找出这个的几种方法(不是简单的):

  • 如果您猜测发生的事情称为拆分窗口:M-x apropos RET split RET显示了许多变量和函数,您可能会弄清楚哪些是相关的。或者,如果您猜测有一个选项(通常有),则C-h v split- TAB显示有希望的潜在客户。
  • 参考文档find-file-other-windowDisplaying Buffers。(你必须去 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
于 2010-12-30T23:13:24.340 回答