背景: org-mode では、変数 org-archive-location はデフォルトで "%s_archive::" に設定されているため、ファイル "toto.org" はファイル "toto.org_archive" にアーカイブされます。代わりに「toto.ref」にアーカイブしてほしい。org-mode バージョン 7.4 (git サーバーから) を使用しています。
私はそれが次のように単純だと思ったでしょう
(setq org-archive-location
`(replace-regexp-in-string ".org" ".ref" %s)
)
しかし、これは LISP では不適切であると指摘されました (さらに、機能しませんでした)。私の最終的な解決策は次のとおりです。org-archive-location の最も巧妙な構成に適応できるはずです。
(setq org-archive-location "%s::* ARCHIVES")
(defadvice org-extract-archive-file (after org-to-ref activate)
(setq ad-return-value
(replace-regexp-in-string "\\.org" ".ref" ad-return-value)
)
)
ご了承ください:
1) 「test.org.gpg」が「test.ref.gpg」に適切に変更されるように、「.org」の末尾に $ を自発的に追加しませんでした。
2)正規表現「\ .org」(「.org」ではなく)を使用する必要があるようです(以下の回答でより長い説明があります)。