私の記事では、次のようにシミュレートされたOutlookスタイルのメッセージ引用符を設定しました.muttrc
。attribution
set attribution="\n\n-----Original Message-----\nFrom: %f\nSent: %d\n%t\nSubject: %s\n"
ただし、%t
Expandoは「To」の後にコロンなしで「To Persons_Name」と評価されるため、シェルコマンドを介して実行してコロンを追加しようとします。バックティックを使用してシェルコマンドを実行できますが、%t
シェルコマンドからExpando値を取得する方法がわかりません。私はこれを試しましたがうまくいきません:
set attribution="\n\n-----Original Message-----\nFrom: %f\nSent: %d\n`echo %t | sed s/^To/To:/`\nSubject: %s\n"
答え1
シェルコマンドは、各応答ではなく構成設定を読み取ると実行されます。表示するには入力してください
set attribution="Date: `date`"
決して変わらないでしょう。もちろん、現在Expandosは拡張されていません。
方法があります:文字列をaで終わると、|
muttはそれがコマンドであると仮定してそれを実行し、その出力を使用します(文書には次のように表示されます)。管路最初の言葉による主張ですが、それは嘘です)。
問題は、引数に正規表現を適用して結果を出力できる(私が知っている)unixコマンドがないことです。sed
たとえば、ファイルまたは標準入力でのみ機能します。
このコマンドはユーザーが直接作成する必要があります。 Perlでは:
#!/usr/bin/perl
my $regexp = shift;
my @out;
for (@ARGV) {
eval $regexp;
push @out, $_;
}
print join " ", @out;
パスに入れて名前を付けると仮定するとr.pl
(chmod-xを覚えておいてください)、次のようにプロパティを設定できます。
set attribution="r.pl 's/^To /To: /m' 'From: %n\n%t\netc...\n'|"
man perlre
正規表現を終了する理由を学びます/m
。
HTH。