メッセージを残す必要がなくなったとき、それを削除(delete)できます。これはそのメッセージを無視するフラグをつけ、いくつかのRmailコマンドは、そのメッセージが存在しないかのように振る舞います。しかし、そのメッセージはまだRmailファイルの中にあり、メッセージ番号ももっています。
Rmailファイルにたいして完全な削除(expunging)を行なうことにより、削除されたメッセージを実際に消去します。残ったメッセージには新たに連番が振られます。
カレントメッセージを削除して、次の削除されていないメッセージに移動します(rmail-delete-forward
)。
カレントメッセージを削除して、前の削除されていないメッセージに移動します(rmail-delete-backward
)。
カレントメッセージの削除を取り消すか、前の削除されたメッセージに後方へ移動して、そのメッセージの削除を取り消します(rmail-undelete-previous-message
)。
Rmailファイルにたいして完全な削除を行ないます(rmail-expunge
)。
Rmailには、メッセージを削除するためのコマンドが2つあります。両方ともカレントメッセージを削除して、他のメッセージを選択します。d
(rmail-delete-forward
)は、すでに削除されたメッセージをスキップして次のメッセージに移動し、C-d
(rmail-delete-backward
)は、前の削除されていないメッセージに移動します。指定方向に、移動先となる削除されていないメッセージが存在しない場合は、単にそのメッセージを削除するだけで、カレントメッセージはそのメッセージのままです。数引数は繰り返し回数を指定します。これにより1つのコマンドで複数のメッセージを削除できます。負の引数はdとC-dの意味を逆転します。
Rmailがメッセージを削除するときは、フックrmail-delete-message-hook
が実行されます。フック関数が呼び出されるとき、そのメッセージは削除とマークされますが、そのメッセージがRmailバッファーのカレントメッセージのままです。
すべての削除されたメッセージを最終的にRmailファイルから消すには、x
(rmail-expunge
)とタイプします。これを行なうまでは、削除されたメッセージの削除を取り消す(undelete)ことができます。削除の取り消しコマンドu
(rmail-undelete-previous-message
)は、ほとんどのケースにおいてdコマンドの効果を取り消すようにデザインされています。カレントメッセージが削除されている場合は、カレントメッセージの削除を取り消します。そうでない場合は、削除されたメッセージが見つかるまで後方に移動して、そのメッセージの削除を取り消します。数引数は繰り返し回数を指定します。これにより1つのコマンドで複数のメッセージ削除を取り消すことができます。。
通常、dをuで取り消すことができます。なぜならuは後方に移動して、dで削除されたメッセージの削除を取り消すからです。しかしこれは、削除するメッセージの前にすでに削除されたメッセージがある場合、dはこれらのメッセージをスキップするのでうまく機能しません。その後でuコマンドを実行すると、スキップされた最後のメッセージの削除を取り消すからです。この問題を避ける明解な方法はありません。しかしuコマンドを繰り返すことにより、削除を取り消したいメッセージに戻ることができます。M-pコマンドで特定の削除されたメッセージを選択してから、uをタイプして削除を取り消すこともできます。
削除されたメッセージは‘deleted’の属性をもち、結果として、カレントメッセージが削除されている場合はモードラインに‘deleted’が表示されます。実際のところ、メッセージの削除と削除の取り消しは、この属性の追加または削除に過ぎません。Rmailの属性を参照してください。