2011-10-23 60 views
5

我一直在尝试从emacs默认字体中单独更改emacs minibuffer的字体/ face,但没有多少运气。Emacs minibuffer的字体大小与默认的emacs分开吗?

具体而言,我有兴趣将minibuffer的字体大小设置为与emacs MULE一起使用,这与我当前的字体设置一样,或者如果我在“上网本”屏幕上使用emacs,有时还会使用字符选择选项MULE有点小。

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

在emacs中似乎有很多minibuffer变量用于创建minibuffer帧,或者从minibuffer窗口获取内容等,但这些不涉及更改minibuffer面。是否有可能从默认的emacs中单独更改小缓冲区?

一个有趣的选项是oneonone emacs http://www.emacswiki.org/emacs/OneOnOneEmacs项目。但专用小型缓冲器框架可以更改吗?在我改变目前的emacs设置之前,我希望能够首先改变字体或者创建我自己的可改变的微型缓冲器框架,等等......

任何帮助和/或创意的想法不胜感激。

回答

5

您可以通过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的身体:在那里,你可以做一些face remapping像这样。以上将默认面部的高度加倍。

+0

这是一个很好的帮助,但是,它只是改变了一些方面。我犯了假设MULE完成条目存在于小缓冲区中的错误,但这似乎不是真的。代码会影响我输入内容时发生的minibuffer,比如使用C-x C-f查找文件。我使用相同的代码来改变emacs的echoarea,但这也不是MULE用来列出其完成的窗口。有没有找到由MULE创建的窗口名称的方法?也许知道这一点,上面的代码可以改变来影响这个项目。 – Steve

+0

看来MULE会打开一个名为* Quail Completions *的缓冲区。这个缓冲区在交换时是空的,但是当emacs dislpays字符完成时它肯定是创建的。 – Steve

0

是的,您可以轻松地自定义独立小型缓冲区框架的属性,包括其默认面和字体。

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

font帧参数是控制字体(duh)的参数。所以你会自定义选项1on1-minibuffer-frame-alist,改变它的字体设置。

或者,您也可以只设置1on1-minibuffer-frame-font到你想要的字体 - 它是用来作为字体设置的默认值由1on1-minibuffer-frame-alist每当有minibuffer-frame-alist没有明确font设置。例如:

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

如果您不想使用独立的小型字节缓冲帧,请参阅Trey的答案。

相关问题