Автоматическое закрытие рабочего буфера - PullRequest
15 голосов
/ 18 апреля 2010

Что я должен написать в моем .emacs файле, чтобы буфер *scratch* был закрыт при открытии Emacs?

Ответы [ 6 ]

22 голосов
/ 18 апреля 2010
(kill-buffer "*scratch*")
16 голосов
/ 19 апреля 2010

Не совсем ответ на ваш вопрос, но вы можете знать, что вы можете выбрать при запуске другой буфер или изменить содержимое буфера * 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 * все еще будет существовать, но пользовательский файл инициализации будет сфокусирован.

7 голосов
/ 19 апреля 2010

Вы можете настроить:

initial-buffer-choice

Я установил его в свой homedir: "~ /" для запуска в режиме Dired .

6 голосов
/ 19 апреля 2010

Из вашего вопроса я подозреваю, что вы, вероятно, запускаете emacs довольно часто, возможно, даже один раз для каждого файла, который вы хотите редактировать.(Если я ошибаюсь в этом предположении, то следующие комментарии к вам не относятся.)

Emacs предназначен для запуска, а затем его работы в течение нескольких недель или месяцев, пока вы посещаете различные файлы по мере необходимости.редактировать их.Emacs очень хорошо обрабатывает несколько файлов, поэтому вряд ли даже необходимо уничтожать связанные буферы, пока вы не получите 50 или 100 из них.Я запускаю emacs сразу после запуска моей оконной системы, и он работает до тех пор, пока моя система не выключится или не выйдет из строя.В этом режиме первоначальный рабочий буфер не является проблемой, потому что я вижу его так редко.

4 голосов
/ 19 апреля 2010

Я использую это, чтобы уничтожить рабочий буфер и открыть новый буфер в текстовом режиме с именем Без названия. Нашел его в группе новостей и слегка изменил.

(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 не открыт, я использую это:

(defun my-close-untitled ()
  (if (get-buffer "Untitled")
      (kill-buffers-by-name "Untitled")))

(add-hook 'find-file-hook 'my-close-untitled)
0 голосов
/ 15 ноября 2013

Правильный способ - добавить inhibit-startup-screen в раздел custom-set-variables вашего файла .emacs.

(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)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...