メッセージを保存しておく必要がなくなったら、 そのメッセージを削除(delete)できます。 「無視せよ」という意味の削除印をメッセージに付けます。 すると、いくつかのrmailコマンドはそのメッセージが存在しないものとして扱います。 しかし、そのメッセージはまだrmailファイルの中にあって、 メッセージ番号も付いています。
rmailファイルを抹消(expunging)すると、 削除印が付いたメッセージを本当に消し去ります。 残ったメッセージには番号を順に振り直します。 抹消は、アンダイジェスト(see Rmail Digest)を除いて、 メッセージ番号を変更する唯一の動作です。
rmail-delete-forward
)。
rmail-delete-backward
)。
rmail-undelete-previous-message
)。
rmail-expunge
)。
rmailにはメッセージを削除するコマンドが2つあります。
どちらもカレントメッセージを削除し、別のメッセージを選択します。
d(rmail-delete-forward
)は
すでに削除したメッセージを飛ばしてつぎのメッセージへ移動しますが、
C-d(rmail-delete-backward
)はまえのメッセージへ移動します。
指定した方向に削除されていないメッセージがないときは、
削除したばかりのメッセージがカレントメッセージのままです。
どちらのコマンドに対しても、数引数を指定すると、
削除後の移動方向を反転します。
rmailがメッセージを削除するときはいつでも、
rmail-delete-message-hook
に登録されている関数(群)を起動します。
フック関数が起動されるときには、メッセージに削除印が付いていますが、
rmailバッファではそのメッセージはカレントメッセージのままです。
削除したすべてのメッセージをrmailファイルから本当に消すには
x(rmail-expunge
)と打ちます。
これを実行するまえならば、アンデリート(undelete)、つまり、
メッセージの削除印を消すことができます。
アンデリートコマンド、u(rmail-undelete-previous-message
)は
dコマンドの効果をほとんどの場合打ち消します。
カレントメッセージが削除されていれば、
カレントメッセージをアンデリートします。
そうでなければ、削除されたメッセージが
みつかるまでまえへ戻り、そのメッセージをアンデリートします。
普通はuでdをアンドゥできます。 なぜなら、dで削除したメッセージを まえへ戻って探してそのメッセージをuがアンデリートするからです。 しかし、dがメッセージを削除してから 後続のすでに削除されたメッセージを飛び越す場合には、 うまくいきません。 この場合、uコマンドは飛び越したメッセージのうちの 最後のものをアンデリートします。 この問題を回避する簡単な方法はありません。 ですが、uコマンドを繰り返せば、 最終的にはアンデリートしたいメッセージに辿り着きます。 あるいは、M-pコマンドで目的の削除されたメッセージに移動してから uを打ってアンデリートします。
削除されたメッセージには、‘deleted’という属性が付きます。 その結果、カレントメッセージが削除されていると モード行に‘deleted’と表示されます。 メッセージを削除する、あるいは、アンデリートすると、 実際には、メッセージにこの属性を付加する、あるいは、取り去るだけです。 See Rmail Attributes。