Переместить существующие статьи в другую группу в Gnus

Я настроил nnmail-split-methods чтобы отделить почту из моего списка рассылки от всего остального:

(setq nnmail-split-methods '(("vladimir.lenin" "From:.*vladimir\.lenin")
                             ("mail.misc" "")))

Новая почта теперь появится в vladimir.lenin группа, но уже существующие останутся в mail.misc, Как быстро переместить все статьи, соответствующие регулярному выражению, из одной группы в другую?

2 ответа

Решение

Это мое, вероятно, избыточное и неоптимальное решение, так как я не мог найти идиоматический способ. Назначения клавиш по умолчанию для каждой команды приведены в скобках.

Прежде всего, установите переменную gnus-move-split-methods похож на ваш nnmail-split-methods переменная. Обратите внимание, что синтаксис в 1- й переменной ("^From:.*eliezer" "mail.hpmor") в то время как во 2- й переменной ("mail.hpmor" "^From:.*eliezer"), Например, мой gnus-move-split-methods является:

(setq gnus-move-split-methods
      '(("^Sender:.*abbie.*" "mail.abbie")
        ("" "mail.misc")))

Откройте группу и заставьте ее показывать все статьи. Вызов gnus-summary-limit-to-headers (/ h) и укажите регулярное выражение (в моем примере "Sender:.*abbie") показывать только те статьи, которые вы хотите переместить.

Используйте макросы клавиатуры для облегчения перемещения, запустите макрос kmacro-start-macro (Cx (), затем переместите первую статью с помощью gnus-summary-move-article B m, затем повторите макрос kmacro-end-and-call-macro (Cx e) и укажите количество повторений с универсальным аргументом (Cu).

Если вы не знаете, сколько раз вы должны повторить макрос, вы можете подсчитать количество оставшихся статей, выбрав все (mark-whole-buffer) и считая с count-words-region, Не используйте 0 как универсальную статью, так как по некоторым причинам она не закончится. Помните, что, поскольку почта физически перемещается из одной папки в другую, вся операция может занять время, в зависимости от того, сколько почты у вас есть.

Если вы используете nnml в качестве почтового сервера запускаем gnus-group-compact-group (G z) в вашей группе, так что Gnus даст вам правильное количество статей. Это также может занять время в зависимости от количества почты.

Заметки:

  • Как видите, потому что вы установили gnus-move-split-methods при перемещении статьи предложенная в приглашении группа по умолчанию является правильной.
  • gnus-summary-toggle-header (t) полезно, чтобы найти, какой заголовок вам нужно отфильтровать.
  • Иногда нет Sender: заголовок, поэтому я использую Cc:.*abbie регулярное выражение тоже. Вы можете заметить, что заголовки часто несовместимы, поэтому будьте осторожны.

Из сводного буфераmail.misc group, ограничьте просмотр статьями, автором которых является "владимир.ленин" (gnus-summary-limit-to-author), затем отметьте их все для обработки (gnus-uu-mark-all), а затем переместите все отмеченные статьи в папкуvladimir.leninгруппа (gnus-summary-move-article). Полная последовательность клавиш выглядит следующим образом:

      / a vladimir\.lenin RET M P a B m vladimir.lenin RET / w
Другие вопросы по тегам