Emacs:带有Emacs的GUI--守护进程未正确加载字体

Emacs:带有Emacs的GUI--守护进程未正确加载字体,emacs,fonts,daemon,Emacs,Fonts,Daemon,我设置了一个emacs--daemon,以便更快地启动emacs。我特别喜欢emacs的GUI版本,因此我使用EmacClient-c打开一个新的emacs框架 问题是我已经更改了字体,但是如果我启动emacsclient-c,这些字体将不会加载。但是,如果我只启动emacs(但这会导致整个.emacs被评估),则会应用它们 因此:如果我使用emacsclient-c启动emacs,是否也可以应用我的字体设置?如果您使用的是emacs 23.2,在GNOME中更改单间距字体也会更改emacs字体

我设置了一个
emacs--daemon
,以便更快地启动emacs。我特别喜欢emacs的GUI版本,因此我使用
EmacClient-c
打开一个新的emacs框架

问题是我已经更改了字体,但是如果我启动
emacsclient-c
,这些字体将不会加载。但是,如果我只启动
emacs
(但这会导致整个
.emacs
被评估),则会应用它们


因此:如果我使用
emacsclient-c
启动emacs,是否也可以应用我的字体设置?

如果您使用的是emacs 23.2,在GNOME中更改单间距字体也会更改emacs字体。在早期版本中,您必须执行以下操作:

echo "Emacs.font: Monospace-10" >> ~/.Xresources
xrdb

将Monospace-10替换为您想要使用的实际字体。

简而言之,您必须使用
默认帧列表。像这样:

(setq default-frame-alist '((font . "Inconsolata-dz-15")))

每次在Emacs中启动新的图形框架时,都会对此进行评估。这也是保存其他与帧相关的设置的地方,如
条纹的设置等。

以下内容可能会满足您的需要

(add-to-list 'default-frame-alist '(font . "Inconsolata-12"))

emacslient
有一个选项
-F
--frame parameters
),用于指定新创建的框架的字体

例如:

emacsclient -c -F '((font . "8x16"))'  some_file

非常感谢。这指向了正确的方向,让我来解决这个问题。这很好,但我有副作用,我的其他配置(包括工具栏模式-1)没有加载EmacClient-c,所以我解决了字体问题,但我加载了一个带有默认选项的框架,有什么想法吗?奇怪。尝试设置
(工具栏模式0)
,而不是-1。这就是我所做的,它适用于*NIX和OS X。但我已经在windows中包含了这一点(在
默认框架列表中),不确定它是否有效(我不太需要使用windows):
(工具栏行.0)
@jrbalderrama尝试使用
(添加到列表“默认框架列表…”,而不是“(setq默认框架列表…)
。这对我来说很好,不应该覆盖默认帧列表