Après avoir exécuté recover-this-file
et accepté la version avec sauvegarde automatique, vous disposez d'un tampon modifié contenant le contenu de la sauvegarde automatique. À ce stade, vous pouvez utiliser M-x diff-buffer-with-file
RETpour voir les différences entre le tampon modifié et le fichier enregistré.
La clé à laquelle je me suis adressé exécute en fait une fonction personnalisée afin de produire un diff unifié et d'ignorer l'invite du tampon (elle suppose le tampon actuel).
(defun my-diff-buffer-with-file ()
"Compare the current modified buffer with the saved version."
(interactive)
(let ((diff-switches "-u")) ;; unified diff
(diff-buffer-with-file (current-buffer))))
Il existe également un équivalent ediff (que je préfère généralement, bien que j’utilise les deux), qui est disponible à l’adresse suivante: M-x ediff-current-file
RET
Si vous souhaitez rejeter les modifications après avoir vérifié le diff, vous devriez pouvoir simplement undo
récupérer. (A défaut, vous pouvez toujours utiliser revert-buffer
ou find-alternate-file
.)
Comme les raccourcis clavier pour les commandes diff impliquent souvent =, je trouve la solution suivante pratique (nb, j'ai dissocié la C-z
liaison par défaut et je l'ai déplacée à la place C-z C-z
, qui s'ouvre C-z
comme préfixe pour les liaisons personnalisées):
(global-set-key (kbd "C-z =") 'my-diff-buffer-with-file)
(global-set-key (kbd "C-z C-=") 'ediff-current-file)