mutt: enregistrer le message dans un dossier spécifique

15

J'ai plusieurs dossiers définis dans Mutt:

mailboxes           "~/Mail/inbox"
mailboxes           "~/Mail/sent"
mailboxes           "~/Mail/archive"

Je peux enregistrer (déplacer) un message à archiver, en appuyant sur spuis sur ?pour voir une liste de dossiers, puis je peux choisir archivedans la liste.

Étant donné que je veux toujours enregistrer uniquement, archivej'aimerais avoir une macro, de sorte que le fait d'appuyer sur senregistre automatiquement le message sélectionné dans archive, sans me le demander.

Quelqu'un peut-il m'aider?

EDIT: J'ai maintenant la macro suivante, pour enregistrer les messages dans mon dossier "archive":

macro index,pager S "<tag-prefix><save-message>=archive<enter>\
  :set delete=yes<enter><sync-mailbox>:set delete=no<enter>"

le problème est que les messages restent dans l'index marqué comme supprimés. Ils ne sont pas "synchronisés" immédiatement. Deuxièmement, le <enter>à la fin agit comme <display-message>, de sorte que lorsque j'appuie sur S, je me retrouve dans le téléavertisseur du message actuel.

De la même manière, j'essaie d'implémenter le trashdossier dans mutt. Ce qui suit est tiré des MacroSamples Mutt

set maildir_trash=yes
set wait_key=no
folder-hook . 'bind index q quit'
folder-hook inbox 'macro index q ":unset maildir_trash;push \"T~D\\n<tag-prefix-cond>m=trash\\n<end-cond><quit>\"\n"'

mais cela ne fonctionne pas non plus. Insted mutt me demande:

Append messages to etmaildir_trash;push"T~D\n<tag-prefix-cond>m=trash\n<end-cond><quit>"/maildir_trash;push"T~D\n<tag-prefix-cond>m=trash\n<end-co ([yes]/no):

quoi que j'appuie, rien ne se passe (les dossiers corbeille / {cur, new, tmp} existent)

user1968963
la source
C'est déroutant qui <sync-mailbox>ne semble rien faire. Lorsque vous utilisez la commande de suppression normale ( d) et que les messages sont laissés dans l'index marqué comme supprimés, que se passe-t-il lorsque vous appuyez sur $(qui est la liaison par défaut pour <sync-mailbox>)?
ewhac
quand j'appuie sur $mutt me demande Purge 1 deleted message?. Je peux appuyer sur Yce qui supprimera le message.
user1968963
Une pensée se produit: la <sync-mailbox>commande attend l'entrée utilisateur ( y), mais voit à la :place ce qui suit immédiatement , donc la purge ne se produit pas. Je me demande ce qui pourrait arriver si vous mettez un yaprès ça ...
ewhac

Réponses:

17

mails balisés:

macro index S ":set confirmappend=no delete=yes\n<tag-prefix-cond><save-message>=archive\n<sync-mailbox>:set confirmappend=yes delete=ask-yes\n"

courant seulement:

macro index A ":set confirmappend=no delete=yes\n<save-message>=archive\n<sync-mailbox>:set confirmappend=yes delete=ask-yes\n"

Éditer

macro index S ":set confirmappend=no delete=yes\n<tag-prefix><save-message>=archive\n<sync-mailbox>:set confirmappend=yes delete=ask-yes\n"

Ma faute, en utilisant tag-prefixau lieu de tag-prefix-cond, appliquera la macro aux messages balisés s'ils sont présents, sinon au courant sélectionné.

Alex
la source
quand j'ajoute votre macro et démarre mutt et pres S, mutt dit:nothing to do
user1968963
Avez-vous tun courrier?
Alex
super, ça marche. Comment pourrais-je le faire fonctionner aussi sur le message actuel (sans avoir à le marquer d'abord)?
user1968963
1
@ user1968963 voir la mise à jour.
Alex
1
@ user1968963 peut-être en utilisant tag-prefix-cond pour définir une commande / variable différente (pour ma compréhension n'est exécutée que s'il y a du courrier balisé), je vais essayer mais cela prendra du temps, je vous le ferai savoir.
Alex
3

Le guide mutt a un exemple de macro pour votre cas d'utilisation:

index de macro <tag-prefix-cond> <save-message> = foo <enter> "Enregistrer les messages balisés (le cas échéant) dans = foo"

Vous pouvez l'implémenter dans votre cas comme ceci:

macro index,pager A  "<save-message>=Mail/archive<enter>"  "mark message as Archived"

Frapper Shiftadans la vue d'index ou de pager sauverait le message dans votre archive maildir.

jasonwryan
la source
il y a deux petits problèmes avec cette solution: 1) Je ne peux "enregistrer" qu'un seul message à la fois. Je ne peux pas marquer plusieurs messages et les enregistrer tous pour les archiver. 2) lorsque je "sauvegarde" un message, il apparaît toujours dans la boîte de réception marquée comme supprimée. Est-il possible d'appliquer les modifications immédiatement (afin qu'elles soient supprimées immédiatement de la boîte de réception)?
user1968963