macos 文图拉 13.4 (22F66)
2023 年 5 月 31 日的 GNU Emacs 28.2(内部版本 1、x86_64-apple-darwin22.4.0、NS appkit-2299.50 版本 13.3.1 (a)(内部版本 22E772610a))
组织模式 9.5.5
使用自制的 emacs-plus@28 公式安装
于 2023 年 5 月 31 日更新了 homebrew 上的 emacs。
每当我在条目更改后尝试加密组织条目并且必须重新加密时,组织加密条目函数就会挂在那里并且不加密。这是在自制程序上升级到最新的 emacs 后发生的。
org-decrypt-entry 工作得很好,我输入对称密码,它就会解密到缓冲区。
此外,如果文件没有更改,并且我使用 C-x C-s 保存文件,它会很好地保存到磁盘。
只有当文件更改并且需要重新计算加密并且我必须再次输入对称密码时,它才会挂在“保存文件/path/to/file/file.org”上
M-x org-decrypt-entry 的行为相同
尝试过:M-x org-encrypt-entry
预期的密码输入对话框并将加密文件保存到磁盘
根据此commit,已知 GnuPG v2.4.1 会发生这种情况。
您可以尝试降级GnuPG,或者
;; DO NOT USE THIS WITH SYMMETRICALLY ENCRYPTED FILES.
;; MAY CAUSE FILE CORRUPTION.
(fset 'epg-wait-for-status 'ignore)
这里同样的问题。正如Tianshu Wang提到的,问题出在mac上当前的GnuPG版本2.4.1。我已经通过降级我的 mac 上的 GnuPG 包解决了这个问题。
检查GnuPG版本:
$ brew info gpg
==> gnupg: stable 2.4.1 (bottled)
GNU Pretty Good Privacy (PGP) package
[..]
卸载此版本
$ brew uninstall --ignore-dependencies gpg
选项
--ignore-dependencies
对我来说是必要的,因为我使用需要GnuPG的pass
。
现在安装旧包
$ brew install [email protected]
我们来了
$ gpg --version
gpg (GnuPG) 2.2.41
[..]
要完成此操作,您必须告诉 emacs “新”gpg 二进制文件所在的位置。我使用 Doom,所以我用
custom-set-variables ...
到 ~/.config/doom/config.el
写一行。
(require 'org-crypt)
(require 'epa-file)
(custom-set-variables
'(epg-gpg-program "/opt/homebrew/opt/[email protected]/bin/gpg")
)
(epa-file-enable)
(org-crypt-use-before-save-magic)
(setq org-tags-exclude-from-inheritance (quote ("crypt")))
(setq org-crypt-key nil)
使用
~/.config/emacs/bin/doom sync
并重新启动 emacs 加密和解密一切工作正常。
问题在 gnupg 2.4.3 中仍然存在
brew info gpg
==> gnupg: stable 2.4.3 (bottled)