我有一个小mutt
宏来使用我的文件管理器保存附件(ranger
碰巧)。它看起来像这样:
macro attach S "<pipe-message>muttsaveattach"<enter>
mutttsaveattach
以下脚本在哪里:
#!/bin/sh
urxvt -e ranger --choosefile=/tmp/muttattach
cat > $"`cat /tmp/muttattach`"
这很笨重,但有效。它的作用是将附件转储到/tmp/muttattach
中,然后将该文件的内容保存到您使用创建的文件中ranger
。
我唯一想念的是能够以某种方式恢复附件的原始名称并在我的脚本中使用它。是否有任何变量mutt
提供,用于宏,保持这个值?如果没有,有没有其他方法可以恢复和使用这个名字?
我认为现在用这种方法是不可能的。Mutt 和 Neomutt 没有任何变量可供用户使用,可以为您提供文件名。但我有一个想法如何使用 mailcap 来实现它。
假设您有一个执行以下操作的宏:
mailcap_path
到变量中,mailcap_path
(参见下面的 mailcap 文件示例),mailcap_path
到以前的路径。您需要为每种可能的 mailcap 类型创建一个 mailcap 条目(不包括子类型,您可以使用通配符。
示例 ~/.mailcap2
你需要稍微改变你的脚本。因为附件将不再通过管道传输到它。它将文件名作为参数。或者可能尝试直接更改 mailcap2 文件以包含
filetype/*; urxvt -e ranger --choosefile=%s
我也不是 100% 确定,但可能有必要撕掉宏的第一个命令
<enter-command>set my_mailcap_path=$mailcap_path<enter>\
并在之前分配变量。我想我以前遇到过这种情况。在单个宏中设置和取消设置变量效果不佳。免责声明:我没有测试它,但我很肯定这应该有效。