2010-04-18 11 views

Antwort

15

Nicht gerade die Antwort auf Ihre Frage, aber Sie könnten gerne wissen, dass Sie beim Start offen einen anderen Puffer haben, können wählen, oder den Inhalt des * scratch * buffer ändern. Zum Beispiel:

;; 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) 

Im ersten Beispiel ist der * scratch * -Puffer leer. Im zweiten Beispiel wird der * scratch * -Puffer weiterhin existieren, aber user-init-file wird fokussiert.

+2

Ich denke, die erste Variable heißt eigentlich 'initial-scratch-message' (nicht '-buffer'). –

+0

"message" bezieht sich auf die Nachricht, die im Scratch-Buffer angezeigt wird - zB "Hello World! Sie sind am ersten Ziel angekommen, das als" scratch buffer "bezeichnet wird. – lawlist

+0

Beim Kompilieren der Datei bekomme ich' Warning ' : Zuweisung an die freie Variable \ 'initial-scratch-buffer \' ... –

6

Ich vermute von Ihrer Frage, dass Sie wahrscheinlich Emacs ziemlich oft starten, vielleicht sogar einmal für jede Datei, die Sie bearbeiten möchten. (Wenn ich mich bei dieser Annahme geirrt habe, dann treffen die folgenden Kommentare nicht auf Sie zu.)

Emacs wurde entwickelt, um gestartet zu werden und dann wochen- oder monatelang ausgeführt zu werden, während Sie verschiedene Dateien besuchen, die Sie bearbeiten müssen Sie. Emacs behandelt mehrere Dateien sehr gut, so dass es fast gar nicht nötig ist, die zugehörigen Puffer zu löschen, bis 50 oder 100 von ihnen hängen bleiben. Ich starte Emacs, kurz nachdem mein Fenstersystem gestartet wurde, und es läuft, bis mein System herunterfährt oder abstürzt. Der erste Scratch-Buffer ist in diesem Modus kein Problem, weil ich ihn so selten sehe.

7

können Sie anpassen:

initial-buffer-choice 

Ich stelle es auf meine homedir: "~ /" in Dired Modus starten zu.

4

Ich benutze dies, um den Scratch-Buffer zu beenden und einen neuen Puffer im Textmodus namens Untitled zu öffnen. Gefunden in einer Newsgroup und leicht modifiziert.

(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) 
)

Untitled zu schließen, wenn Dateien von Dateimanager öffnen, wenn Emacs ist diese Einstellung sinnvoll nicht öffnen:

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

(add-hook 'find-file-hook 'my-close-untitled)
+1

Warum würden Sie nicht einfach den Scratch-Puffer als unbenannten Puffer verwenden? –

-1

Der richtige Weg inhibit-startup-screen zum custom-set-variables Abschnitt Ihrer .emacs-Datei hinzuzufügen ist.

(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) 
) 
Verwandte Themen