我设立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-macro
(C-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-group
(G 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