emacs 23和字体大小

时间:2009-10-04 16:45:35

标签: emacs

我在Ubuntu上网本版上使用emacs 23。每个应用程序都会自动进入全屏(我的emacs也是如此)。但是根据字体大小(:height),我得到一个较小的工作窗口。 如果我去:身高正常我得到了整个区域,但字体是巨大的!

任何想法?

3 个答案:

答案 0 :(得分:2)

你的窗口管理器坏了。更改字体大小时,emacs会自行调整大小(这在启动期间会发生)。您的窗口管理器应该告诉emacs窗口管理器调整了emacs的大小,此时一切都会正常工作。

无论如何,启动emacs为“emacs --daemon”并连接“emacsclient -c”,你不应该注意到这个问题。

答案 1 :(得分:1)

好的,所以实际上我把它添加到我的initfile中:

(add-hook 'after-make-frame-functions
      (lambda (frame)
        (progn
          (add-to-list 'default-frame-alist
               (cons 'height
                 (/ (x-display-pixel-height)
                    (frame-char-height)))
               (add-to-list 'default-frame-alist
                    (cons 'width
                          (/ (x-display-pixel-width)
                         (frame-char-width))))))))

现在窗口的大小与全屏相同。如果你在after-make-frame-functions钩子里面设置你的字体,那么首先在你的initfile中,这是很重要的(我认为因为钩子以相反的顺序运行)但是如果你只是设置字体那么这应该在任何地方工作。

当然为了最大限度地提高安全性,您可以将此设置和“设置字体”内容放入相同的设置中,并在设置字体后进行此操作。

编辑: 如果不起作用,这是一种稍微强有力的方法。

这给了我一些问题,实际上你可能想要从你设置的高度中减去顶部面板的高度。

(add-hook 'after-make-frame-functions
  (lambda (frame)
    (progn
      (set-frame-height frame
            (/ (x-display-pixel-height)
               (frame-char-height)))
      (set-frame-width frame
            (/ (x-display-pixel-width)
               (frame-char-width))))))

答案 2 :(得分:1)

只需选择不同大小的字体作为默认字体(选项 - >设置默认字体),然后保存选项(选项 - >保存选项),即可解决字体大小问题。 Emacs似乎存在字体点大小与系统大小匹配的问题(有关X标准DPI与GTK标准DPI的讨论),但是如果你选择一个有效的,它将保持不变。

为了让窗口正确显示最大化,我发现框架alist的问题是没有正确计算迷你缓冲区以及不能触发框架正确调整大小的不同字体大小。如果将initial-frame-alist设置为包括(全屏。全宽)和(迷你缓冲线.1),它会正确地计算迷你缓冲区大小并提供正确的宽度,强制效果就像您手动调整窗口大小一样到最大可见区域(与最大化不一样)。您可以通过选项 - >自定义Emacs->设置匹配正则表达式设置这些...然后键入initial-frame-alist。设置两个新参数和值,“迷你缓冲线”为“1”,“全屏”为“全宽”。

删除“minibuffer-lines”参数将为您提供一个错误高度的全屏宽度窗口,删除“全屏”参数意味着没有正确调整大小。尝试将“全屏”设置为“全屏”会产生与设置任何内容相同的问题,而“全屏”到“全高”只会在高度上产生空白,而不是使用较小字体时的宽度。