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>\
その前に変数を割り当てる必要があるかもしれません。私の考えには前にもこんなことを経験したことがあるようだ。単一のマクロで変数を設定または設定解除することは正しく機能しません。
免責事項:テストしていませんが、これがうまくいくと確信しています。