Last Modified:
epa-fileでパスフレーズを間違えた場合にリトライできるようにする #Emacs
epa-file-cache-passphrase-for-symmetric-encryption
を設定するとパスフレーズをキャッシュしてくれるようになりますが、
パスフレーズを間違ってしまった場合もキャッシュされてしまうので、リトライしても再度パスフレーズを聞いてくれずにファイルを開けなくなります。
解決方法
(use-package epa-file
:config
(defun advice:before/epa-file--find-file-not-found-function ()
"失敗したパスフレーズを削除する"
(when (equal "Decryption failed" (cadr epa-file-error))
(setq epa-file-passphrase-alist
(delq (assoc (file-truename buffer-file-name) epa-file-passphrase-alist) epa-file-passphrase-alist))))
(advice-add 'epa-file--find-file-not-found-function :before #'advice:before/epa-file--find-file-not-found-function)
(setq epa-file-cache-passphrase-for-symmetric-encryption t))
- 適当なフックが見当たらないので、エラーメッセージを見て判断するアドバイスを追加