Je ne suis pas sûr si l'utilisation de apply
est recommandée ici. Existe-t-il une meilleure solution/standard pour paramétrer dynamiquement le mode majeur? Je n'en ai pas trouvé d'autre.Utilisation correcte de apply dans Emacs Lisp?
Contexte:
Chaque fois que je reçois le message
X has auto save data; consider M-x recover-this-file
dans Emacs, je me demande quelle est la différence entre le fichier en cours et la version auto-save est. Comme la plupart du temps, je ne peux pas être pris la peine de le chercher, j'ai essayé d'automatiser la tâche:
(defun ediff-auto-save()
"Ediff current file and its auto-save pendant."
(interactive)
(let ((auto-file-name (make-auto-save-file-name))
(file-major-mode major-mode))
(ediff-files buffer-file-name auto-file-name)
(switch-to-buffer-other-window (file-name-nondirectory auto-file-name))
(apply file-major-mode '())
(other-window 1))) ;; back to ediff panel
Le code fait ce que je veux, il ouvre le fichier d'enregistrement automatique et commence ediff. Je définis également le mode majeur du fichier d'enregistrement automatique sur le mode principal du fichier d'origine pour un verrouillage cohérent des polices.
Ceci est un morceau d'elisp très pratique, que l'option 'apply' soit le bon choix. – Anne