Mutt: сохранить сообщение в определенную папку

15

У меня есть несколько папок, определенных в Mutt:

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

Я могу сохранить (переместить) сообщение в архив, нажав sи затем, ?чтобы увидеть список папок, а затем я могу выбрать archiveиз списка.

Так как я всегда хочу сохранить только в, archiveя хотел бы иметь макрос, так что нажатие sавтоматически сохраняет выбранное сообщение archive, не спрашивая меня.

Может кто-нибудь помочь, пожалуйста?

РЕДАКТИРОВАТЬ: у меня теперь есть следующий макрос, чтобы сохранить сообщения в моей папке «архив»:

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

проблема в том, что сообщения остаются в индексе, помеченном как удаленные. Они не "синхронизируются" сразу. Во-вторых, <enter>в конце действует так <display-message>, что когда я нажимаю S, я попадаю в пейджер текущего сообщения.

Аналогичным образом я пытаюсь реализовать trashпапку в Mutt. Следующее взято из Mutt MacroSamples

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"'

но это тоже не работает. Insted Mutt спрашивает меня:

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):

что бы я ни нажимал, ничего не происходит (папки trash / {cur, new, tmp} существуют)

user1968963
источник
Это удивительно, что <sync-mailbox>, кажется , ничего не делает. Когда вы используете обычную команду удаления ( d) и сообщения остаются в индексе, помеченном как удаленный, что происходит при нажатии $(для которого используется привязка по умолчанию <sync-mailbox>)?
Ewhac
когда я $нажимаю Mutt спрашивает меня Purge 1 deleted message?. Я могу нажать, Yкоторый удалит сообщение.
user1968963
Возникает мысль: <sync-mailbox>команда ожидает пользовательского ввода ( y), но :вместо этого видит сразу следующее , поэтому очистка не происходит. Интересно, что может произойти, если вы поставите yпосле этого ...
Ewhac

Ответы:

17

помеченные письма:

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"

только ток:

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

редактировать

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

Моя ошибка, использование tag-prefixвместо tag-prefix-cond, будет применять макрос к теговым сообщениям, если они есть, в противном случае к текущему выбранному.

Alex
источник
когда я добавляю твой макрос и запускаю Mutt и Pres S, Mutt говорит:nothing to do
user1968963
У тебя tесть почта?
Алекс
отлично, это работает. Как я могу сделать так, чтобы оно работало с текущим сообщением (без предварительной маркировки)?
user1968963
1
@ user1968963 смотрите обновление.
Алекс
1
@ user1968963 может быть, с помощью tag-prefix-cond для установки другой команды / переменной (для моего понимания выполняется только при наличии помеченной почты), я попробую, но потребуется некоторое время, сообщу вам.
Алекс
3

В руководстве Mutt есть пример макроса для вашего варианта использования:

индекс макроса <tag-prefix-cond> <save-message> = foo <enter> «Сохранить отмеченные сообщения (если есть) в = foo»

Вы можете реализовать это в вашем случае так:

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

Если вы нажмете Shiftaна индекс или на пейджер, сообщение сохранится в вашем архиве maildir.

jasonwryan
источник
В этом решении есть две небольшие проблемы: 1) Я могу «сохранять» только одно сообщение за раз. Я не могу пометить несколько сообщений и сохранить их все в архив. 2) когда я «сохраняю» сообщение, оно все еще появляется в папке «Входящие», помеченной как удаленное. Можно ли применить изменения немедленно (чтобы они сразу были удалены из папки «Входящие»)?
user1968963