我必须在.emacs
文件中写一下,以便在打开Emacs时关闭*scratch*
缓冲区?
答案 0 :(得分:22)
(kill-buffer "*scratch*")
答案 1 :(得分:16)
不完全是您的问题的答案,但您可能想知道您可以选择在启动时打开不同的缓冲区,或更改* scratch *缓冲区的内容。例如:
;; Make *scratch* buffer blank.
(setq initial-scratch-message nil)
;; Make the buffer that opens on startup your init file ("~/.emacs" or
;; "~/.emacs.d/init.el").
(setq initial-buffer-choice user-init-file)
在第一个示例中,* scratch *缓冲区将为空。在第二个示例中,* scratch *缓冲区仍然存在,但user-init-file将被聚焦。
答案 2 :(得分:7)
您可以自定义:
initial-buffer-choice
我将它设置为我的homedir:“〜/”以 Dired 模式启动。
答案 3 :(得分:6)
我怀疑你的问题是你可能经常开始使用emacs,甚至可能每次为你想要编辑的文件启动一次。 (如果我在这个假设中错了,那么以下评论不适用于您。)
Emacs旨在启动,然后在您需要编辑它们时访问各种文件时保持运行数周或数月。 Emacs非常好地处理多个文件,所以甚至几乎不需要杀死相关的缓冲区,直到你得到50或100个挂起。我在窗口系统启动后启动emacs,直到我的系统关闭或崩溃为止。在这种模式下,初始暂存缓冲区是一个非问题,因为我很少看到它。
答案 4 :(得分:4)
我用它来杀死暂存缓冲区并在文本模式下打开一个名为Untitled的新缓冲区。 在新闻组中找到并略微修改。
(defun my-close-scratch () (kill-buffer "*scratch*") (if (not (delq nil (mapcar 'buffer-file-name (buffer-list)))) (new-untitled-buffer) )) (defun my-emacs-startup-hook () (my-close-scratch)) (add-hook 'emacs-startup-hook 'my-emacs-startup-hook) (defun new-untitled-buffer () "Opens a new empty buffer." (interactive) (let ((buf (generate-new-buffer "Untitled"))) (switch-to-buffer buf) (normal-mode) (setq buffer-offer-save t)) (add-hook 'kill-buffer-query-functions 'ask-to-save-modified nil t) )
要在emacs未打开时从filemanager打开文件时关闭Untitled我使用:
(defun my-close-untitled () (if (get-buffer "Untitled") (kill-buffers-by-name "Untitled"))) (add-hook 'find-file-hook 'my-close-untitled)
答案 5 :(得分:-2)
正确的方法是将inhibit-startup-screen
添加到.emacs文件的custom-set-variables
部分。
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(inhibit-startup-screen t)
)