我该如何让Emacs启动时不那么拖沓?

26

每次我启动Emacs都会看到一些帮助文本和一堆提示信息建议我尝试教程。如何阻止这种情况发生?


2
或者(如果您认为显示的信息仍然有用,但想要快速摆脱它),请注意键入“q”将关闭该缓冲区。 - phils
Emacs 27.1 有更新吗?显然下面的回答都不起作用。 - Daniel Vartanov
6个回答

22

Emacs有几个变量可以阻止这些操作。如果您编辑emacs控制文件(.emacs)并插入以下内容:

;; inhibit-startup-echo-area-message MUST be set to a hardcoded 
;; string of your login name 
(setq inhibit-startup-echo-area-message "USERNAME")
(setq inhibit-startup-message t)

这应该可以解决你的问题。它们基本上将抑制参数设置为true,以防止你想要消除的行为。


2
执行 M-x describe-variable 并输入 user-login-name;将显示的内容作为参数传递给函数,作为常量字符串。如果它显示为 JoeCoder,则在 .emacs 中调用 (setq inhibit-startup-echo-area-message "JoeCoder"),另外再加上 (setq inhibit-startup-message t)。哦,还有,这只有在前面的 setq 是独立的情况下才有效,即此调用中不应设置其他符号;请参见此处了解原因。 - legends2k

10

请将以下内容放入.emacs文件中:

(setq inhibit-startup-message t)
(setq inhibit-startup-echo-area-message t)
这将禁用启动时的消息和回显区域消息。

3

您可以自定义迷你缓冲区中的消息,因此可以去除繁琐的提示音:

;; Hide advertisement from minibuffer
(defun display-startup-echo-area-message ()
  (message ""))

1
你的示例适用于希望放置不同消息的用户。如果用户只想完全禁止该消息,则可以使用以下内容:(defun display-startup-echo-area-message ()) - lawlist

2

将以下内容放入您的个人初始化文件中(通常为~/.emacs.el):

(setq inhibit-startup-message t)

(或在旧版Emacs中使用(setq inhibit-startup-screen t)。)
您还可以通过变量inhibit-startup-echo-area-message关闭回显中的消息“有关GNU Emacs和GNU系统的信息,请键入C-h C-a。”,但仅将其设置为t是不够的;您必须将其设置为您的用户名。请参阅inhibit-startup-echo-area-message的文档。

2
是的,甚至(setq inhibit-startup-echo-area-message (user-login-name))也不起作用。 - trojanfoe
当我在那里放置我的名字时,它没有出现GNU标准信息,而是出现了一个三行的信息:"#[nil "\300C\207" [t] 2]"。 - Emanuel Berg
@EmanuelBerg:在.emacs.el中执行(delete-minibuffer-contents)可能无法解决问题,因为你看到的消息可能是在稍后运行的钩子中产生的。请参阅http://www.gnu.org/software/emacs/manual/html_node/elisp/Startup-Summary.html。 - Vebjorn Ljosa
明白了,(setq inhibit-startup-echo-area-message (lambda () (user-login-name)))(add-hook 'emacs-startup-hook (lambda () (message "自定义消息"))) - Carlo Espino
@trojanfoe,请看我在paxdiablo答案下的评论。 - legends2k
显示剩余2条评论

1

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

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

0

将以下内容添加到您的 init 文件中

(setq inhibit-startup-message t
inhibit-startup-echo-area-message t) 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接