Emacs 为什么我的框架标题格式不起作用?

Emacs 为什么我的框架标题格式不起作用?,emacs,centos,elisp,fedora,redhat,Emacs,Centos,Elisp,Fedora,Redhat,我的emacs版本:buildvm-07.phx2.fedoraproject.org上2014-05-21的GNU emacs 24.3.1(x86_64-redhat-linux-GNU,GTK+版本3.10.9) 我希望Emacs的标题显示当前文件的绝对路径。我写了以下内容(来自互联网): 在重新安装FC20+Emacs之前,上述内容能够正常工作。现在它不工作,除了我手动打开.emacs和评估框架标题格式,我不知道为什么我必须手动评估它 听起来您正在加载的其他一些代码正在设置帧名称。来自框

我的emacs版本:buildvm-07.phx2.fedoraproject.org上2014-05-21的GNU emacs 24.3.1(x86_64-redhat-linux-GNU,GTK+版本3.10.9)

我希望Emacs的标题显示当前文件的绝对路径。我写了以下内容(来自互联网):


在重新安装FC20+Emacs之前,上述内容能够正常工作。现在它不工作,除了我手动打开.emacs和评估框架标题格式,我不知道为什么我必须手动评估它

听起来您正在加载的其他一些代码正在设置帧名称。来自
框架标题格式的文档字符串的注释

它仅用于以下情况的框架: 尚未设置显式名称(请参见“修改帧参数”)


要找到执行此操作的代码,请递归对分init文件。

我也受到同样问题的影响。在CentOS 7和Fedora 21系统上,我发现
/usr/share/emacs/site lisp/default.el
覆盖了
框架标题格式
(除此之外没有其他内容)。大概Fedora 20也有同样的问题。同一个文件包含禁用此功能的说明(“在
~/.emacs
”中设置
禁止默认初始化
非nil”),这对我很有用


@abelard20008所指的答案也做了同样的事情。

我通过将此添加到我的.emacs中解决了这个问题:

(add-hook 'after-init-hook (lambda ()
                 (setq frame-title-format "%b")
))

如果在手动评估代码时代码仍然有效,那么问题很可能出现在其他地方。启动Emacs时是否出现错误?您的init文件中是否有其他代码可能导致这种情况?找到问题的一个好方法是将init文件缩减到最低限度。如果有效,则将其延长到问题再次出现,这样可以缩小问题范围。启动Emacs时没有任何错误。为了排除其他代码的影响,my.emacs现在只有上面的代码,但我得到了相同的结果。您确定init文件已读取吗?(您可以向其中添加
(消息“我在这里”)
,然后检查
*消息*
缓冲区。此外,系统上可能安装了一个系统初始化文件,该文件覆盖了您的设置?是的,我在(setq帧标题格式…)之后添加了(消息“过来这里”)它出现在
*Messages*
中。现在我想在.emacs中强制执行eval(setq帧标题格式…),我该怎么办?谢谢,我还没有找到它不起作用的原因,但这是有效的!
(add-hook 'after-init-hook (lambda ()
                 (setq frame-title-format "%b")
))