Wie erhalte ich eine Warnung vor einem temporären Puffer in Emacs zu töten?
-
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?
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