如何更改默认的迷你缓冲区消息?


10

初始化文件完成加载后,我在迷你缓冲区中收到以下消息:

有关GNU Emacs和GNU系统的信息,请键入ChCa。

它是由什么触发的,我该如何更改?

Answers:


18

display-startup-echo-area-message触发此小广告,除非您使用定制并将其设置在其中或在您的广告中进行设置user-init-file(因为它实际上会继续运行并扫描该文件以查找类似内容,请参阅的定义以display-startup-echo-area-message获取详细信息)。

但是,有一种方法可以用完全不同的方式替换它,只需在Emacs配置中重新定义它即可:

(defun display-startup-echo-area消息()
  (消息“让黑客开始!”)

3

这是由触发的display-startup-echo-area-message,在启动时会调用。

故意删除该特定消息非常困难(我猜是因为GNU项目认为他们需要广告)。您仍然可以通过自定义禁用它inhibit-startup-echo-area-message

M-x customize-variable inhibit-startup-echo-area-message RET

抱歉,我是唯一没有看到任何更改的尝试此技巧的人吗?
Nsukami _ 2014年

仅供参考:对于由sysadmin在许多用户共享的计算机上安装Emacs的情况,故意使之变得困难,因此sysadmin不能仅仅将全局的disable-startup-echo-area消息设置为t。如今,这可能是一个相对罕见的用例。
Stefan 2014年

2

状态的帮助文本inhibit-startup-echo-area-message

Non-nil禁止初始启动回显区域消息。设置此变量仅在使用定制缓冲区或初始化文件包含以下格式的行时才生效:

(setq inhibit-startup-echo-area-message "YOUR-USER-NAME")

如果您的初始化文件是字节编译的,请改用以下形式:

(eval '(setq inhibit-startup-echo-area-message "YOUR-USER-NAME"))

1

如果您使用机器之间共享的Emacs配置(例如,通过版本控制),并且无法明确输入用户名,则可以使用:

(put 'inhibit-startup-echo-area-message 'saved-value t)
(setq inhibit-startup-echo-area-message (user-login-name))

...根据错误邮件列表中的建议。这会saved-value在将变量inhibit-startup-echo-area-message设置为您的登录名之前在该变量上设置属性,从而避免了预期的安全功能(在复制和粘贴初始代码时,不向用户提供获得帮助的说明)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.