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)