2008-09-17 4 views

Antwort

10

Erstellen Sie eine Funktion, die Sie fragt, ob Sie sicher sind, dass der Puffer bearbeitet wurde und nicht mit einer Datei verknüpft ist. Fügen Sie diese Funktion dann zur Liste kill-buffer-query-functions hinzu.

bei der Dokumentation der Suche nach Buffer File Name Sie verstehen:

  • ein Puffer nicht eine Datei zu besuchen, wenn und nur wenn die Variable buffer-file-name ist gleich Null

diese Einsicht Verwenden Sie die Funktion schreiben:

(defun maybe-kill-buffer() 
    (if (and (not buffer-file-name) 
      (buffer-modified-p)) 
     ;; buffer is not visiting a file 
     (y-or-n-p "This buffer is not visiting a file but has been edited. Kill it anyway? ") 
    t)) 

Und dann fügen Sie die Funktion zum Haken wie folgt:

(add-to-list 'kill-buffer-query-functions 'maybe-kill-buffer) 
+0

Dies funktioniert, außer ich den "Puffer" Argument zu entfernen haben. –

+0

Gibt es auch eine Möglichkeit, andere Puffer auszuschließen, z. B. * Letzte * öffnen? –

+0

Sie könnten folgendes in das 'und 'nach' buffer-modified-p' einfügen: (nicht (gleich (Buffer-Name) "* Open Recent *")) – EfForEffort

1
(defun maybe-kill-buffer() 
    (if (and (not buffer-file-name) 
      (buffer-modified-p)) 
     ;; buffer is not visiting a file 
     (y-or-n-p (format "Buffer %s has been edited. Kill it anyway? " 
         (buffer-name))) 
    t)) 

(add-to-list 'kill-buffer-query-functions 'maybe-kill-buffer) 
Verwandte Themen