Plus d'une fois, j'ai perdu mon travail en détruisant accidentellement un tampon temporaire dans Emacs. Puis-je configurer Emacs pour me donner un avertissement lorsque je tue un tampon non associé à un fichier?Comment puis-je recevoir un avertissement avant de supprimer un tampon temporaire dans Emacs?
8
A
Répondre
10
Créez une fonction qui vous demandera si vous êtes sûr que le tampon a été modifié et n'est pas associé à un fichier. Ajoutez ensuite cette fonction à la liste kill-buffer-query-functions
.
regardant la documentation Buffer File Name vous comprenez:
- un tampon ne visitant pas un fichier si et seulement si la variable
buffer-file-name
est nulle
Utilisez cette compréhension pour écrire la fonction:
(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))
Ensuite, ajoutez la fonction au crochet comme suit:
(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)
Questions connexes
- 1. Comment supprimer un avertissement MSBuild spécifique
- 2. Comment créer un tampon similaire à * compilation * dans Emacs?
- 3. Dans Emacs, comment passer à un autre tampon?
- 4. Comment exécuter un hook Emacs lorsqu'un tampon est modifié?
- 5. Comment supprimer toutes les lignes correspondantes dans un seul tampon?
- 6. Comment créer (et supprimer) automatiquement un répertoire temporaire dans un Makefile?
- 7. Ré-ouvrez le tampon * scratch * dans Emacs?
- 8. emacs: zone tampon non contiguë
- 9. Comment créer un fichier std :: ofstream dans un fichier temporaire?
- 10. Ouverture d'un tampon/bloc-notes temporaire dans Netbeans?
- 11. Comment définir un nom de tampon Emacs avec une variable locale de fichier?
- 12. Comment faire un double tampon dans Java2D?
- 13. Comment obtenir un statut rapide à partir du tampon de compilation Emacs?
- 14. Emacs Lisp: rend le tampon nouvellement créé visible avant que la fonction ne retourne?
- 15. comment supprimer une zone de texte dans emacs?
- 16. avertissement joomla un message
- 17. Comment créer un nom de fichier temporaire dans Erlang?
- 18. Existe-t-il un moyen de formater un tampon python complet dans emacs en appuyant sur une touche?
- 19. recevoir des données sur un socket python
- 20. Comment créer un fichier texte temporaire en C++?
- 21. Désactiver un avertissement particulier dans Flex Builder 3?
- 22. Emacs enregistrer automatiquement sur le tampon de commutation
- 23. Comment puis-je générer un fichier Zip temporaire, puis le supprimer automatiquement après le téléchargement?
- 24. Comment puis-je supprimer un fichier temporaire (image) affiché par CGI?
- 25. En utilisant Emacs, comment mettre en retrait/formater un segment de code dans un fichier TXT?
- 26. Copier des chaînes dans un tampon
- 27. emacs - montre l'aide et le tampon de message dans la fenêtre actuelle ou dans un cadre séparé?
- 28. Comment obtenir un interpréteur de schéma fonctionnant dans Emacs?
- 29. Implémenter l'istream pour un tampon de caractères?
- 30. recommande un bon tutoriel de table temporaire dans SQL Server
Cela fonctionne, sauf que je dois enlever l'argument "tampon". –
De même, existe-t-il un moyen de le faire exclure d'autres tampons, tels que * Open Recent *? –
Vous pourriez mettre ce qui suit à l'intérieur de 'et 'après' buffer-modified-p': (not (equal (nom-de-tampon) "* Open Recent *")) – EfForEffort