Next: , Previous: , Up: Rmail   [Contents][Index]


33.4 メッセージの削除

メッセージを残す必要がなくなったとき、それを削除(delete)できます。これはそのメッセージを無視するフラグをつけ、いくつかのRmailコマンドは、そのメッセージが存在しないかのように振る舞います。しかし、そのメッセージはまだRmailファイルの中にあり、メッセージ番号ももっています。

Rmailファイルにたいして完全な削除(expunging)を行なうことにより、削除されたメッセージを実際に消去します。残ったメッセージには新たに連番が振られます。

d

カレントメッセージを削除して、次の削除されていないメッセージに移動します(rmail-delete-forward)。

C-d

カレントメッセージを削除して、前の削除されていないメッセージに移動します(rmail-delete-backward)。

u

カレントメッセージの削除を取り消すか、前の削除されたメッセージに後方へ移動して、そのメッセージの削除を取り消します(rmail-undelete-previous-message)。

x

Rmailファイルにたいして完全な削除を行ないます(rmail-expunge)。

Rmailには、メッセージを削除するためのコマンドが2つあります。両方ともカレントメッセージを削除して、他のメッセージを選択します。d (rmail-delete-forward)は、すでに削除されたメッセージをスキップして次のメッセージに移動し、C-d (rmail-delete-backward)は、前の削除されていないメッセージに移動します。指定方向に、移動先となる削除されていないメッセージが存在しない場合は、単にそのメッセージを削除するだけで、カレントメッセージはそのメッセージのままです。数引数は繰り返し回数を指定します。これにより1つのコマンドで複数のメッセージを削除できます。負の引数はdC-dの意味を逆転します。

Rmailがメッセージを削除するときは、フックrmail-delete-message-hookが実行されます。フック関数が呼び出されるとき、そのメッセージは削除とマークされますが、そのメッセージがRmailバッファーのカレントメッセージのままです。

すべての削除されたメッセージを最終的にRmailファイルから消すには、x (rmail-expunge)とタイプします。これを行なうまでは、削除されたメッセージの削除を取り消す(undelete)ことができます。削除の取り消しコマンドu (rmail-undelete-previous-message)は、ほとんどのケースにおいてdコマンドの効果を取り消すようにデザインされています。カレントメッセージが削除されている場合は、カレントメッセージの削除を取り消します。そうでない場合は、削除されたメッセージが見つかるまで後方に移動して、そのメッセージの削除を取り消します。数引数は繰り返し回数を指定します。これにより1つのコマンドで複数のメッセージを削除できます。

通常、duで取り消すことができます。なぜならuは後方に移動して、dで削除されたメッセージの削除を取り消すからです。しかしこれは、削除するメッセージの前にすでに削除されたメッセージがある場合、dはこれらのメッセージをスキップするのでうまく機能しません。その後でuコマンドを実行すると、スキップされた最後のメッセージの削除を取り消すからです。この問題を避ける明解な方法はありません。しかしuコマンドを繰り返すことにより、削除を取り消したいメッセージに戻ることができます。M-pコマンドで特定の削除されたメッセージを選択してから、uをタイプして削除を取り消すこともできます。

削除されたメッセージは‘deleted’の属性をもち、結果として、カレントメッセージが削除されている場合はモードラインに‘deleted’が表示されます。実際のところ、メッセージの削除と削除の取り消しは、この属性の追加または削除に過ぎません。Rmail Attributesを参照してください。