Wie erhalte ich eine Warnung vor einem temporären Puffer in Emacs zu töten?

StackOverflow https://stackoverflow.com/questions/86963

  •  01-07-2019
  •  | 
  •  

Frage

Mehr als einmal habe ich Arbeit versehentlich tötet einen temporären Puffer in Emacs verloren haben. Kann ich Emacs einrichten mir eine Warnung geben, wenn ich einen Puffer nicht im Zusammenhang mit einer Datei töten?

War es hilfreich?

Lösung

Erstellen Sie eine Funktion, die Sie fragt, ob Sie sicher sind, wenn der Puffer bearbeitet wurde und nicht mit einer Datei verknüpft. Dann fügen Sie diese Funktion in der Liste kill-buffer-query-functions.

in der Dokumentation der Suche nach Pufferdatei nennen verstehen:

  • ein Puffer nicht eine Datei, wenn und nur wenn der Variable buffer-file-name ist gleich Null
  • Besuch

Verwenden Sie diese Einsicht die Funktion zu 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 an den Haken in etwa so:

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

Andere Tipps

(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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top