Gnus: избавиться от папок ~/Mail и ~/News

Gnus (почтовый клиент Emacs) создает каталоги ~/Mail/ а также ~/News, Я не хочу загромождать свою домашнюю папку, как я могу изменить эти каталоги, скажем, ~/.emacs.d/mail/ а также ~/.emacs.d/news/?

3 ответа

Решение

Сначала я казнил 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-directory в файле инициализации.

Резюме: чтобы изменить каталоги почты и новостей, поместите это в файл инициализации:

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

Я проследил проблему синдикат заметил (что по какой-то причине каталог ~/Mail/archive/ все еще создан). Сначала я подумал, что в коде инициализации gnus действительно есть ошибка, о которой я сообщил здесь:

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

Но потом я понял, что message-directory настройка была переопределена предыдущим определением в моем файле newsrc. Таким образом, вам придется отредактировать ваш newsrc и удалить ошибочное определение, чтобы удалить все следы настроек по умолчанию.

Хотя решение работает для большинства из этих переменных, я не смог установить черновой каталог 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)
Другие вопросы по тегам