mutt添付ファイル名の復元

mutt添付ファイル名の復元

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マクロに使用するためにこの値を保持するために提供できる変数はありますか?そうでない場合は、名前を回復して使用する他の方法はありますか?

ベストアンサー1

現時点では、このアプローチは可能ではないと思います。 MuttとNeomuttには、ユーザーがファイル名を指定できる変数はありません。しかし、私はそれを達成するためにmailcapを使用する方法を知っています。

次のようなマクロがあるとしましょう。

  • 現在の値をmailcap_path変数に保存し、
  • 新しいエントリを設定しますmailcap_path(下記のmailcapファイルの例を参照)。
  • 添付ファイルを表示するには、mailcapを強制します。
  • mailcap_path前のパスに戻ります。
macro attach S\
<enter-command>set my_mailcap_path=$mailcap_path<enter>\
<enter-command>set mailcap_path=~/.mailcap2<enter>\
<view-mailcap>\
<enter-command>set mailcap_path=$my_mailcap_path<enter>\

可能なmailcapタイプごとにmailcapエントリを生成する必要があります(サブタイプを除く、ワイルドカードが利用可能です)。

はい~/.mailcap2

application/*; /your/script %s
audio/*;       /your/script %s
font/*;        /your/script %s
image/*;       /your/script %s
message/*;     /your/script %s
model/*;       /your/script %s
text/*;        /your/script %s
video/*;       /your/script %s

スクリプトを少し変更する必要があります。添付ファイルがパイプに接続されなくなったためです。ファイル名をパラメータとして取得します。または、mailcap2ファイルを直接変更して含めてみてください。filetype/*; urxvt -e ranger --choosefile=%s

#!/bin/sh
urxvt -e ranger --choosefile=$1

また、100%はわかりませんが、マクロの最初のコマンドを削除し、<enter-command>set my_mailcap_path=$mailcap_path<enter>\その前に変数を割り当てる必要があるかもしれません。私の考えには前にもこんなことを経験したことがあるようだ。単一のマクロで変数を設定または設定解除することは正しく機能しません。

免責事項:テストしていませんが、これがうまくいくと確信しています。

おすすめ記事