我在 Windows XP 中使用 Gnu emacs,默认窗口标题为“emacs@ACH1797VM2”而不是缓冲区标题,据我所知,这是我想要的,也是正确的默认行为。
阅读完https://stackoverflow.com/a/2338352/1001165后,我将以下行放在 ~/.emacs 文件的末尾,但行为没有变化。
(setq frame-title-format "%b - emacs")
我可以使用
更改窗口标题M-x set-frame-name NewName RET
但我希望它自动更改以匹配缓冲区名称。
你可以尝试这个,添加到你的.emacs:
(setq frame-title-format
'((:eval (if (buffer-file-name)
(abbreviate-file-name (buffer-file-name))
"%b"))
(:eval (if (buffer-modified-p)
" •"))
" Emacs")
)
%b – 打印缓冲区名称。您可以在此处查看更多选项。 此外,如果您正在修改任何缓冲区,则会显示“•”,表明您正在修改并且有未保存的更改。
希望有帮助。
我想说这条线是正确的。您可以将表达式复制并粘贴到
*scratch*
缓冲区中,然后点击 C-J。如果窗口标题发生变化,那么当您在 .init.el
中添加该行时,它也应该发生变化。还有一种可能是你的初始化文件位置不正确或者命名不正确...如果我没记错的话,在 Windows 中它不是以点开头,而是以下划线开头。
我更认为这意味着窗口顶部的标题,而不是 Emacs 内灰色栏中的部分。更改此设置很有用,以便您在使用 Alt+TAB 或在任务栏中时可以区分不同的窗口。
我发现了这个,它可以帮助我显示光标聚焦的缓冲区的名称:
(setq frame-title-format "%b - Emacs")
链接.
这就是我的 .emacs 中的内容。不确定有没有效果。
(setq-default frame-title-format '(buffer-file-name "%f" "%b")) ; I already know this is Emacs