次: , 前: Rmail Motion, 上: Rmail


25.4 メッセージの削除

メッセージを保存しておく必要がなくなったら、 そのメッセージを削除(delete)できます。 「無視せよ」という意味の削除印をメッセージに付けます。 すると、いくつかのrmailコマンドはそのメッセージが存在しないものとして扱います。 しかし、そのメッセージはまだrmailファイルの中にあって、 メッセージ番号も付いています。

rmailファイルを抹消(expunging)すると、 削除印が付いたメッセージを本当に消し去ります。 残ったメッセージには番号を順に振り直します。 抹消は、アンダイジェスト(see Rmail Digest)を除いて、 メッセージ番号を変更する唯一の動作です。

d
カレントメッセージを削除し、 削除されていないつぎのメッセージへ移動する (rmail-delete-forward)。
C-d
カレントメッセージを削除し、 削除されていないまえのメッセージへ移動する (rmail-delete-backward)。
u
カレントメッセージをアンデリートする、あるいは、 削除されたまえのメッセージへ戻ってアンデリートする (rmail-undelete-previous-message)。
x
rmailファイル(の削除の付いたメッセージ)を抹消する (rmail-expunge)。

rmailにはメッセージを削除するコマンドが2つあります。 どちらもカレントメッセージを削除し、別のメッセージを選択します。 drmail-delete-forward)は すでに削除したメッセージを飛ばしてつぎのメッセージへ移動しますが、 C-drmail-delete-backward)はまえのメッセージへ移動します。 指定した方向に削除されていないメッセージがないときは、 削除したばかりのメッセージがカレントメッセージのままです。 どちらのコマンドに対しても、数引数を指定すると、 削除後の移動方向を反転します。

rmailがメッセージを削除するときはいつでも、 rmail-delete-message-hookに登録されている関数(群)を起動します。 フック関数が起動されるときには、メッセージに削除印が付いていますが、 rmailバッファではそのメッセージはカレントメッセージのままです。

削除したすべてのメッセージをrmailファイルから本当に消すには xrmail-expunge)と打ちます。 これを実行するまえならば、アンデリート(undelete)、つまり、 メッセージの削除印を消すことができます。 アンデリートコマンド、urmail-undelete-previous-message)は dコマンドの効果をほとんどの場合打ち消します。 カレントメッセージが削除されていれば、 カレントメッセージをアンデリートします。 そうでなければ、削除されたメッセージが みつかるまでまえへ戻り、そのメッセージをアンデリートします。

普通はudをアンドゥできます。 なぜなら、dで削除したメッセージを まえへ戻って探してそのメッセージをuがアンデリートするからです。 しかし、dがメッセージを削除してから 後続のすでに削除されたメッセージを飛び越す場合には、 うまくいきません。 この場合、uコマンドは飛び越したメッセージのうちの 最後のものをアンデリートします。 この問題を回避する簡単な方法はありません。 ですが、uコマンドを繰り返せば、 最終的にはアンデリートしたいメッセージに辿り着きます。 あるいは、M-pコマンドで目的の削除されたメッセージに移動してから uを打ってアンデリートします。

削除されたメッセージには、`deleted'という属性が付きます。 その結果、カレントメッセージが削除されていると モード行に`deleted'と表示されます。 メッセージを削除する、あるいは、アンデリートすると、 実際には、メッセージにこの属性を付加する、あるいは、取り去るだけです。 See Rmail Attributes