如何使用 Emacs 辨識並自動打開 ASCII 鎧裝格式的 GPG 加密文件?
gpg -ca passwords.txt
創建加密的 ASCII 文件passwords.txt.asc
。Emacs 將文件作為普通文本文件打開:-----BEGIN PGP MESSAGE----- Version: GnuPG v2.0.19 (GNU/Linux) jA0EAwMCkIp3+bQkLWJgyTQYLGVN8EUEG0BE42sEj/8PrnSzgviSiENxtK+/2n73 WXD7EtndVS/MX4lFJ96h8VozChUA =zSwh -----END PGP MESSAGE-----
如何讓 Emacs 在打開和保存文件時自動解密和加密文件?
一切都應該在預設配置下正常工作,但您可以檢查您的配置。
首先,您需要確保安裝了 EasyPG Assistant。
M-x``locate-library``RET``epa``RET
應該返回類似:庫是文件 /usr/local/share/emacs/24.2.50/lisp/epa.elc
如果沒有,那麼你必須安裝它。(或升級到 Emacs23 或 Emacs24)
然後,檢查變數的值
auto-mode-alist
並C-h``v``auto-mode-alist``RET
蒐索epa
。如果找不到,請將此程式碼段添加到您的
.emacs
.(add-to-list 'auto-mode-alist '("\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'" nil epa-file))
我和原始海報有同樣的問題。我希望 EasyPG 將帶有 .asc 副檔名的文件保存為 ASCII 鎧裝密文,而不是二進製文件。回復中有一些很好的資訊,但沒有一個完整足以解決 OP 的問題。我想我用以下配置解決了它。
(epa-file-enable) (setq epa-file-name-regexp "\\.\\(gpg\\|\\asc\\)\\(~\\|\\.~[0-9]+~\\)?\\'") (epa-file-name-regexp-update) ;; Minor mode for ASCII-armored gpg-encrypted files (define-minor-mode auto-encryption-armored-mode "Save files in encrypted, ASCII-armored format" ;; The initial value. nil ;; The indicator for the mode line. " Encrypted,Armored" ;; The minor mode bindings. nil (if (symbol-value auto-encryption-armored-mode) (set (make-local-variable 'epa-armor) t) (kill-local-variable 'epa-armor)) ) (add-to-list 'auto-mode-alist '("\\.asc$" . auto-encryption-armored-mode))
首先,這會將 .asc 和 Emacs 備份名稱添加到 EasyPG 將保存為加密數據(預設為二進制)的文件副檔名。
然後它定義了一個次要模式,將 epa-armor 設置為緩衝區局部變數。受敏感模式啟發: http: //anirudhsasikumar.net/blog/2005.01.21.html
最後,它將次要模式設置為在打開 .asc 文件時自動啟動。TODO:打開 Emacs 備份文件時也啟動。
請注意,如果您不希望 .gpg 和 .asc 文件的明文副本作為 Emacs 備份浮動,那麼“額外的” epa-file-name-regexp 正則表達式語法至關重要。
到目前為止似乎工作正常。
這個問題相當陳舊,但在 Debian 8.3 上也沒有隨 EasyPG 和 Emacs 24 一起提供的簡單解決方案。希望有幫助。