我发现了 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.
。
解决方案是使用反斜杠转义这些特殊字符,但我认为在 mutt 中没有办法做到这一点。我想做的基本上是构建我自己的函数替代品mark-message
。我想我需要将给定的消息通过管道传输到脚本,grep
并cut
提取消息 ID 标头,然后sed
使用反斜杠转义任何特殊字符。
问题是尝试将此字符串传回 mutt:我知道您可以在 中使用环境变量muttrc
,但我相信这些变量是在赋值时而不是在执行时评估的。有没有办法将字符串从 bash 脚本返回到 mutt 的配置中?