1

Я настроил nnmail-split-methods для отделения почты, приходящей из моего списка рассылки, от всего остального:

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

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

1 ответ1

1

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

Прежде всего, установите переменную gnus-move-split-methods 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).

Если вы не знаете, сколько раз вам следует повторять макрос, вы можете посчитать количество оставшихся статей, выбрав all (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 regexp. Вы можете заметить, что заголовки часто несовместимы, поэтому будьте осторожны.

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