macOS下Emacs org-encrypt-entry修改文件后执行挂起问题
Org条目加密保存挂起问题排查与解决
环境信息
- macOS Ventura 13.4 (22F66)
- GNU Emacs 28.2 (build 1, x86_64-apple-darwin22.4.0, NS appkit-2299.50 Version 13.3.1 (a) (Build 22E772610a)),2023年5月31日版本
- org-mode 9.5.5
- 通过homebrew的
emacs-plus@28公式安装,2023年5月31日更新Emacs
问题描述
修改Org条目后执行org-encrypt-entry重新加密时,函数挂起无法完成;org-decrypt-entry功能正常,输入对称密码可解密到缓冲区;文件未修改时用C-x C-s保存正常;仅当文件修改需重新加密并再次输入对称密码时,会卡在「Saving file /path/to/file/file.org」;M-x org-decrypt-entry也存在相同问题。
尝试操作:执行M-x org-encrypt-entry
预期结果:弹出密码输入对话框并将加密内容保存到磁盘
解决建议
- 关闭自动加密钩子:临时禁用
org-crypt-use-before-save-magic,避免自动加密与手动操作冲突,执行以下Elisp代码:
之后手动加密条目再执行(setq org-crypt-use-before-save-magic nil)C-x C-s保存,验证是否还会挂起。 - 调整GPG配置:org-crypt依赖GPG,若GPG交互模式导致GUI阻塞,可设置使用循环回退模式输入密码,执行:
同时检查GPG版本,执行(setenv "GPG_TTY" "") (setq epa-pinentry-mode 'loopback)gpg --version查看,若版本过旧建议通过homebrew更新。 - 排除钩子干扰:检查
before-save-hook中的其他函数,比如自动格式化、云同步类钩子,临时移除后测试:(remove-hook 'before-save-hook 'your-hook-function-name) - 测试新文件:创建空白Org文件,仅添加单个条目并加密修改,验证是否是原文件的格式或缓存问题。
- 调整组件版本:由于问题出在Emacs更新后,可尝试降级
emacs-plus@28到更新前版本,或升级org-mode到最新稳定版(如9.6系列)测试。
内容的提问来源于stack exchange,提问作者Carlo Tambuatco
相关产品推荐
相关产品推荐

