2008-09-17 11 views

Respuesta

10

Realice una función que le preguntará si está seguro de cuándo se ha editado el búfer y si no está asociado a un archivo. A continuación, agregue esa función a la lista kill-buffer-query-functions.

En cuanto a la documentación para Buffer File Name que comprenden:

  • un buffer no está de visita en un archivo si y sólo si la variable buffer-file-name es nula

Use esa información para escribir la función:

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

Y luego agregue la función al gancho así:

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

Esto funciona, excepto que tengo que quitar el argumento de "buffer". –

+0

Además, ¿hay alguna forma de excluir otros almacenamientos intermedios, como * Abrir reciente *? –

+0

Puede poner lo siguiente dentro del 'y 'después de' buffer-modified-p': (no (igual (nombre del búfer) "* 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) 
Cuestiones relacionadas