我emacs版本:GNU Emacs 24.3.1(x86_64-redhat-linux-gnu,GTK+版本3.10.9),发布于2014年5月21日,网址:buildvm-07.phx2.fedoraproject.org
我希望Emacs的标题显示当前文件的绝对路径。我写了以下内容(来自互联网):
;;;Emacs title bar to reflect file name
(defun frame-title-string ()
"Return the file name of current buffer, using ~ if under home directory"
(let
((fname (or
(buffer-file-name (current-buffer))
(buffer-name))))
;;let body
(when (string-match (getenv "HOME") fname)
(setq fname (replace-match "~" t t fname)) )
fname))
;;; Title = 'system-name File: foo.bar'
(setq frame-title-format '("" system-name " File: "(:eval (frame-title-string))))
在重新安装FC20 + Emacs之前,上面的内容是可以正常工作的。现在它不工作了,除非我手动打开.emacs和eval frame-title-format,我不知道为什么我必须手动eval它?
4条答案
按热度按时间zzlelutf1#
我也遇到了同样的问题。在CentOS 7和Fedora 21系统上,我发现
/usr/share/emacs/site-lisp/default.el
覆盖了frame-title-format
(没有其他内容)。可能Fedora 20也有同样的问题。同一个文件包含了禁用此功能的说明(“在~/.emacs
中设置inhibit-default-init
非零“),这对我很有效。@abelard20008所指的答案也是如此。
i7uaboj42#
升级到
GNU Emacs 29.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.16.0) of 2021-12-07
后出现相同问题解决办法是也设置
icon-title-format
。贷方:https://stackoverflow.com/a/17532502/6000005
oewdyzsn3#
听起来您正在加载的其他代码正在设置框架名称。请注意来自doc字符串
frame-title-format
的注解:它只用于没有设置明确名称的帧(参见'modify-frame-parameters')。
要找到执行此操作的代码,请递归地将init文件一分为二。
zqry0prt4#
我通过将以下内容添加到我的.emacs中解决了这个问题: