Más de una vez perdí mi trabajo al matar accidentalmente un buffer temporal en Emacs. ¿Puedo configurar Emacs para darme una advertencia cuando elimino un buffer no asociado con un archivo?¿Cómo obtengo una advertencia antes de matar un buffer temporal en Emacs?
8
A
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)
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
- 1. Guardar gmon.out antes de matar un proceso
- 2. Emacs buffer-local font
- 3. emacs compile buffer auto close?
- 4. "Diff, save or kill" al matar búferes en Emacs
- 5. Deshabilitar Emacs * Mensajes * buffer
- 6. ¿Cómo puedo verificar si existe un buffer actual en Emacs?
- 7. ¿Cómo obtengo mi buffer R en emacs para ocupar más espacio horizontal?
- 8. Cómo crear una función temporal en Emacs Lisp
- 9. ¿Cómo contesto y automáticamente? (Kill-matching-buffers pregunta si debo matar un buffer modificado)?
- 10. ¿Cómo obtengo "paréntesis de arcoíris" en emacs?
- 11. ¿Cómo matar una cadena entre comillas en el punto en emacs?
- 12. En Emacs, Cómo exportar enlaces a un enlace cliqueable, cuando htmlize emacs buffer?
- 13. Comando Emacs mini-buffer con el parámetro
- 14. emacs tuberías de concha de salida a un nuevo buffer
- 15. ¿cómo obtengo el tamaño del archivo temporal en Android?
- 16. ¿Cómo configuro un nombre de buffer de Emacs con una variable local de archivo?
- 17. ¿Cómo obtengo un intérprete de esquema trabajando dentro de Emacs?
- 18. ¿Cómo matar un proceso abierto en node.js?
- 19. Columna de la posición del buffer en Emacs Lisp?
- 20. ¿Cómo matar un proceso en cygwin?
- 21. ¿Cómo obtengo las cotizaciones de estilo de TextMate en Emacs?
- 22. ¿Cómo se usa C-x k para matar un búfer de Emacs abierto en modo servidor?
- 23. ¿Se puede crear el archivo temporal de flymake en el directorio temporal del sistema?
- 24. Emacs guardado automático en el buffer del interruptor
- 25. ¿Cómo obtengo la lista de archivos recientes en GNU Emacs?
- 26. ¿Cómo puedo filtrar la salida de compilación solo para un modo específico o buffer en Emacs?
- 27. Ajuste de línea dentro de la compilación * de emacs * buffer
- 28. ¿Cómo obtengo mi Emacs a * siempre * uso 6x13 en X11
- 29. Emacs buffer-menu: ¿cómo mostrar solo el archivo + dired buffers?
- 30. ¿Cómo puedo ejecutar vim para ejecutar perltidy en un buffer?
Esto funciona, excepto que tengo que quitar el argumento de "buffer". –
Además, ¿hay alguna forma de excluir otros almacenamientos intermedios, como * Abrir reciente *? –
Puede poner lo siguiente dentro del 'y 'después de' buffer-modified-p': (no (igual (nombre del búfer) "* Open Recent *")) – EfForEffort