GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Deletion.html ・ emacs-doc.conao3.com

35.4 メッセージの削除

メッセージを保持する必要がなくなった場合は、それを削除できます。これにより無視可能なメッセージとしてマークされ、一部のRmailコマンドでは既に存在しないものとして扱われますが、Rmailファイル内には引き続き保持されており、メッセージ番号もそのまま維持されます。

Rmailファイルの消去を行うと、実際に削除されたメッセージが削除されます。残ったメッセージには連番が振り直されます。

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回のコマンドで複数のメッセージを削除できます。負の引数を指定すると、d および C-d の動作が反転します。

Rmailがメッセージを削除するたびに、フック rmail-delete-message-hook が実行されます。フック関数が呼び出される時点では、メッセージは削除済みとしてマークされていますが、依然としてRmailバッファ内の現在のメッセージとなっています。

削除済みのメッセージをRmailファイルから完全に消去するには、x (rmail-expunge) と入力してください。この操作を行うまでは、削除済みのメッセージを復元することが可能です。復元コマンドであるu (rmail-undelete-previous-message) は、ほとんどの場合においてdコマンドの効果を打ち消すように設計されています。現在のメッセージが削除されている場合は、そのメッセージを復元します。そうでない場合は、削除済みのメッセージが見つかるまで前のメッセージへと遡り、そのメッセージを復元します。数値の接頭辞引数は繰り返し回数として機能し、1回のコマンドで複数のメッセージを復元することができます。

通常、d は u で元に戻せます。というのも、u が d で削除されたメッセージまで戻り、それを復元するからです。しかし、d が削除対象のメッセージに続く、すでに削除済みのメッセージをいくつかスキップした場合、この方法は機能しません。その場合、u コマンドによってスキップされたメッセージの最後の一つが復元されてしまいます。この問題を回避する確実な方法はありません。とはいえ、u コマンドを繰り返すことで、最終的には復元したいメッセージまで戻ることができます。また、M-p コマンドで特定の削除済みメッセージを選択し、u と入力して復元することも可能です。

削除済みメッセージには ‘deleted’ 属性が付与されており、その結果、現在のメッセージが削除されるとモードラインに ‘deleted’ が表示されます。実際、メッセージの削除や復元は、この属性の追加または削除にほかなりません。Rmail 属性を参照してください。