Я нашел ошибку в Mutt, но хотел бы найти обходной путь, пока ее не исправят.
~
(функция mark-message
) должна назначить ярлык (т. е. макрос), чтобы пометить сообщение, чтобы вы могли перейти к нему позже. Например, если вы пометите сообщение с помощью ярлыка d
, Mutt автоматически установит следующий макрос:
macro index "'d" "<search>~i '[Message-ID Header]'" "message hotkey"
чтобы вы могли нажать 'd
чтобы вернуться к сообщению, которое вы отметили.
Проблема в том, что заголовок Message-ID интерпретируется как регулярное выражение, и иногда заголовки сообщений, которые я получаю, содержат специальные символы регулярного выражения, такие как +
. (См. Пример ниже.)
<CAMMr2knNGWssaFdp-+e4u9pWfBQ4DCHNkH9FUrPoXqEXAN+sNg@mail.gmail.com>
Если это так, то Mutt не может найти сообщение, поэтому макрос не работает и просто выдает ошибку Not found.
,
Решением было бы убрать эти специальные символы с обратной косой черты, но я не верю, что есть способ сделать это изначально в дураках. Что я хотел бы сделать, так это создать собственную замену функции mark-message
. Я думаю, что мне нужно было бы передать данное сообщение в скрипт, grep
и cut
чтобы извлечь заголовок Message-ID, а затем sed
для экранирования любых специальных символов.
Проблема заключается в попытке передать эту строку в Mutt: я знаю, что вы можете использовать переменные окружения в muttrc
, но я считаю, что они оцениваются при присваивании, а не при выполнении. Есть ли способ вернуть строку из скрипта bash обратно в конфигурацию mutt?