与默认的emacs分开设置Emacs minibuffer字体大小?

8

我一直在尝试将emacs minibuffer的字体/字形与emacs默认字体分开,但没有太多成功。

具体来说,我想使minibuffer字体大小更大,以便与emacs MULE一起使用,因为我的当前字体设置或者当我在“netbook”屏幕上使用emacs时,MULE中的字符选择选项有点小。

在emacs中可以轻松访问的选项是minibuffer-prompt和minibuffer-prompt-properties,但这些仅适用于命令提示符,而不是常规minibuffer文本。

在emacs中列出了许多minibuffer变量,用于创建minibuffer框架或从minibuffer窗口获取内容等等。但这些与更改minibuffer面貌无关。是否可能将minibuffer面貌与默认emacs分开更改?

一个有趣的选择是oneonone emacs项目http://www.emacswiki.org/emacs/OneOnOneEmacs。但是,专用的minibuffer框架可以更改吗?此外,在如此大幅度地更改我的当前emacs设置之前,我希望先能够仅更改字体或创建自己可更改的minibuffer框架等...

任何帮助和/或创意想法都将不胜感激。
2个回答

10

您可以通过minibuffer-setup-hook来添加对迷你缓冲区的自定义。在那里,您可以进行一些像这样的面部重映射

(add-hook 'minibuffer-setup-hook 'my-minibuffer-setup)
(defun my-minibuffer-setup ()
       (set (make-local-variable 'face-remapping-alist)
          '((default :height 2.0))))

根据需求更改my-minibuffer-setup的主体内容。上述代码将默认字体的高度加倍。


2
这是一个非常有用的帮助,但它只改变了一些方面。我犯了一个错误,认为MULE完成条目在minibuffer中,但这似乎不是真的。该代码影响到了当我输入某些内容时出现的minibuffer,比如使用C-x C-f查找文件。我使用相同的代码来修改emacs的echoarea,但这也不是MULE用于列出其完成的窗口。是否有一种方法可以找到MULE创建的窗口的名称?也许知道这个,上面的代码就可以被修改以影响这个项目。 - Steve
1
看起来MULE打开了一个名为Quail Completions的缓冲区。当切换到它时,该缓冲区为空,但当emacs显示字符完成时,它肯定会被创建。 - Steve

1

是的,您可以轻松自定义独立 minibuffer 框架的属性,包括其默认面和字体。

您可以自定义 OneOnOneEmacs 用户选项 1on1-minibuffer-frame-alist。(或者您可以自定义标准选项 minibuffer-frame-alist -- 它的框架参数值被 1on1-minibuffer-frame-alist 用作默认值。)

font 框架参数是控制字体的参数(显然)。因此,您可以自定义选项 1on1-minibuffer-frame-alist,更改其字体设置。

或者,您可以将 1on1-minibuffer-frame-font 设置为所需的字体 -- 当 minibuffer-frame-alist 中没有明确的 font 设置时,它将被用作字体设置的默认值。例如:

(setq 1on1-minibuffer-frame-font
      "-*-Lucida Console-normal-r-*-*-14-112-96-96-c-*-iso8859-1")

如果您不想使用独立的迷你缓冲区框架,请参阅Trey的回答。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接