将现有文章移至 Gnus 中的另一个组

将现有文章移至 Gnus 中的另一个组

我设立nnmail-split-methods将来自我的邮件列表的邮件与其他邮件分开:

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

新邮件现在将出现在vladimir.lenin组中,但已经存在的邮件仍将保留在mail.misc。如何快速将所有与正则表达式匹配的文章从一个组移动到另一个组?

答案1

这可能是我多余的和次优的解决方案,因为我找不到惯用的方法。每个命令的默认键绑定都在括号中给出。

首先,设置变量gnus-move-split-methods类似于你的nnmail-split-methods变量。请注意,第一个变量的语法是("^From:.*eliezer" "mail.hpmor"),而第二个变量的语法是("mail.hpmor" "^From:.*eliezer")。例如,mygnus-move-split-methods是:

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

打开群组并使其显示所有文章。调用gnus-summary-limit-to-headers/ h)并指定正则表达式(在我的示例中"Sender:.*abbie")以仅显示您想要移动的文章。

使用键盘宏为了方便移动,启动宏kmacro-start-macroC-x (),然后使用gnus-summary-move-article B mkmacro-end-and-call-macro,然后通过( )重复该宏C-x e,并用通用参数()指定重复次数C-u

如果你不知道应该重复该宏多少次,你可以通过选择全部 (mark-whole-buffer)并计算count-words-region。不要将 0 用作通用文章,因为出于某种原因它不会完成。请记住,当邮件从一个文件夹物理移动到另一个文件夹时,整个操作可能需要一些时间,具体取决于您有多少封邮件。

如果你使用nnml邮件后端,运行gnus-group-compact-groupG z)在您的群组中,以便 Gnus 为您提供正确的文章计数。这也可能需要一些时间,具体取决于邮件数量。

笔记:

  • 如你所见,因为你设置了gnus-move-split-methods,所以当你移动文章时,提示中提出的默认组是正确的。
  • gnus-summary-toggle-header( t) 有助于找到您需要过滤的标题。
  • 有时没有Sender:标题,所以我Cc:.*abbie也使用正则表达式。您可能会看到标题经常不一致,所以要小心。

答案2

从 的摘要缓冲区中mail.misc group,将视图限制为作者为“vladimir.lenin”的文章(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

相关内容