One of the first things people starting out with Emacs disable is the splash screen. This is simple enough to do, all it requires is a
(setq inhibit-splash-screen t). Now, that’s not the only place Emacs uses to remind you of your freedoms. If you pay attention to the small things involved in startup, you’ll surely have noticed that it a more subtle notice in the echo area:
For information about GNU Emacs and the GNU system, type C-h C-a.
Disabling that one is trickier. The message itself originates from
startup-echo-area-message which is invoked by
display-startup-echo-area-message. A look at the sources reveals just how much more involved it is to rid Emacs of this advertisement:
(defun display-startup-echo-area-message () (let ((resize-mini-windows t)) (or noninteractive ;(input-pending-p) init-file-had-error ;; t if the init file says to inhibit the echo area startup message. (and inhibit-startup-echo-area-message user-init-file (or (and (get 'inhibit-startup-echo-area-message 'saved-value) (equal inhibit-startup-echo-area-message (if (equal init-file-user "") (user-login-name) init-file-user))) ;; Wasn't set with custom; see if .emacs has a setq. (condition-case nil (with-temp-buffer (insert-file-contents user-init-file) (re-search-forward (concat "([ \t\n]*setq[ \t\n]+" "inhibit-startup-echo-area-message[ \t\n]+" (regexp-quote (prin1-to-string (if (equal init-file-user "") (user-login-name) init-file-user))) "[ \t\n]*)") nil t)) (error nil)))) (message "%s" (startup-echo-area-message)))))
Looks like you’ll either need to write something appearing as if it were an invocation of the
(setq inhibit-startup-echo-area-message "<user>") form in your init file (and don’t you dare putting it into another file or a byte-compiled init file or a different user!) or just redefine
startup-echo-area-message to display something else. Guess what option I went with…
I concur with the variable’s comment:
;; FIXME? Why does this get such weirdly extreme treatment, when the ;; more important inhibit-startup-screen does not. (defcustom inhibit-startup-echo-area-message nil "Non-nil inhibits the initial startup echo area message. Setting this variable takes effect only if you do it with the customization buffer or if your init file contains a line of this form: (setq inhibit-startup-echo-area-message \"YOUR-USER-NAME\") If your init file is byte-compiled, use the following form instead: (eval \\='(setq inhibit-startup-echo-area-message \"YOUR-USER-NAME\")) Thus, someone else using a copy of your init file will see the startup message unless he personally acts to inhibit it." :type '(choice (const :tag "Don't inhibit") (string :tag "Enter your user name, to inhibit")) :group 'initialization)
原文出处: Vasilij Schneidermann
原文时间: 2015-12-15 06:40
整理时间: 2015-12-15 21:21
本文由 Hick 整理，转载请保留以上信息;
The articles on this site come from Internet, thanks to all the original authors.
If anything about COPYRIGHT, or LEFT, please contact Emacsist at gmail dot com .