Verschieben Sie vorhandene Artikel in eine andere Gruppe in Gnus

666
Mirzhan Irkegulov

Ich habe so eingerichtet nnmail-split-methods, dass E-Mails, die von meiner Mailingliste kommen, von anderen Elementen getrennt werden:

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

Neue E-Mails werden jetzt in einer vladimir.leninGruppe angezeigt. Die bereits vorhandenen E-Mails bleiben jedoch erhalten mail.misc. Wie verschiebe ich schnell alle Artikel, die der Regex entsprechen, von einer Gruppe in eine andere?

1

1 Antwort auf die Frage

1
Mirzhan Irkegulov

Dies ist meine wahrscheinlich exzessive und suboptimale Lösung, da ich den idiomatischen Weg nicht finden konnte. Standardbefehle für jeden Befehl sind in Klammern angegeben.

Stellen Sie zunächst die Variable gnus-move-split-methodsähnlich Ihrer nnmail-split-methodsVariablen ein. Beachten Sie, dass die Syntax in der 1 st variabel ist ("^From:.*eliezer" "mail.hpmor"), während in der 2 nd Variable ist ("mail.hpmor" "^From:.*eliezer"). Zum Beispiel mein gnus-move-split-methodsist:

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

Öffnen Sie die Gruppe und lassen Sie alle Artikel anzeigen. Rufen Sie gnus-summary-limit-to-headers( / h) auf und geben Sie regex an (in meinem Beispiel "Sender:.*abbie"), um nur die Artikel anzuzeigen, die Sie verschieben möchten.

Verwenden Sie Tastaturmakros, um das Verschieben zu erleichtern. Starten Sie macro by kmacro-start-macro( C-x (), verschieben Sie dann Ihren ersten Artikel mit, wiederholen Sie das Makro by ( ) und geben Sie die Anzahl der Wiederholungen mit einem universellen Argument ( ) an.gnus-summary-move-article B mkmacro-end-and-call-macroC-x eC-u

Wenn Sie nicht wissen, wie oft Sie das Makro wiederholen sollen, können Sie die Anzahl der verbleibenden Artikel zählen, indem Sie all ( mark-whole-buffer) auswählen und mit zählen count-words-region. Verwenden Sie 0 nicht als Universalartikel, da er aus irgendeinem Grund nicht beendet wird. Denken Sie daran, dass E-Mails physisch von einem Ordner in einen anderen verschoben werden. Je nach Anzahl Ihrer E-Mails kann der Vorgang einige Zeit in Anspruch nehmen.

Wenn Sie nnmlals Mail-Backend verwenden, führen Sie run gnus-group-compact-group( G z) für Ihre Gruppe aus, sodass Gnus Ihnen die korrekte Anzahl der Artikel angibt. Dies kann je nach Anzahl der E-Mails auch einige Zeit dauern.

Anmerkungen:

  • Wie Sie sehen, gnus-move-split-methodsist die in der Eingabeaufforderung vorgeschlagene Standardgruppe korrekt, da Sie beim Verschieben des Artikels festlegen .
  • gnus-summary-toggle-header( t) ist hilfreich, um herauszufinden, mit welchem ​​Header Sie filtern müssen.
  • Manchmal gibt es keine Sender:Kopfzeile, also benutze ich auch Cc:.*abbieRegex. Möglicherweise sehen Sie, dass Header häufig inkonsistent sind. Seien Sie also vorsichtig.