Gnus:删除 ~/Mail 和 ~/News 文件夹

Gnus:删除 ~/Mail 和 ~/News 文件夹

牛羚(Emacs 的邮件客户端)创建目录~/Mail/~/News。我不想让我的主文件夹杂乱无章,我怎样才能将这些目录更改为~/.emacs.d/mail/~/.emacs.d/news/

答案1

首先我执行了apropos-value ~/Mail/。它向我抛出了许多变量,它们的值中包含此字符串。在我的 Debian 上,我安装了软件包,emacs24-el以便可以在代码中追踪这些变量。我运行describe-variable了变量nnfolder-directory,其值为~/Mail/。进入代码并发现它是这样初始化的:

(defvoo nnfolder-directory (expand-file-name message-directory))

nndraft-directory包含值的变量也是如此~/News/,该值实际上来自变量gnus-directory。由于某种原因,目录~/Mail/archive/仍然被创建,我认为nnfolder-directory是在我设置message-directoryinit 文件之前初始化的。

恢复:要更改您的邮件和新闻目录,请将其放入初始化文件

(setq message-directory "~/.emacs.d/mail/")
(setq gnus-directory "~/.emacs.d/news/")
(setq nnfolder-directory "~/.emacs.d/mail/archive")

答案2

我跟踪了 sindikat 发现的问题(由于某种原因,目录~/Mail/archive/仍然被创建)。起初我以为 gnus 初始化代码中确实有一个错误,我已在此处报告:

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18284

但后来我意识到该message-directory设置已被我的 newsrc 文件中的先前定义覆盖。因此,您必须编辑您的 newsrc 并删除有问题的定义,以便删除默认设置的所有痕迹。

答案3

虽然该解决方案适用于大多数变量,但我无法设置草稿目录,nndraft-directory因为它在调用时被覆盖gnus(这是唯一的例外)。这主要是因为nndraft它被视为后端,因此是从nnoo-state-alist列表中配置的。遗憾的是,nnoo-state-alist它在加载时配置并采用初始nndraft-directory值。

一个快速而肮脏的修复方法是更改​​列表值:

(setq nndraft-directory "~/.emacs.d/mail/drafts/")
(setcdr (assoc 'nndraft-directory
               (nnoo-variables 'nndraft))
        nndraft-directory)

相关内容