5

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

3 ответа3

7

Сначала я выполнил apropos-value ~/Mail/ . Это бросило мне много переменных, которые содержат эту строку в своих значениях. На моем Debian я установил пакет emacs24-el чтобы я мог отслеживать эти переменные в коде. Я запустил description 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")
2

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

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .