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

35.7 メッセージのファイルへのコピー

これらのコマンドは、Rmailファイルから別のファイルへメッセージをコピーします。

o file RET

現在のメッセージの全文をファイル file (rmail-output) に追記する。

C-o file RET

表示されている現在のメッセージのコピーを、ファイル file (rmail-output-as-seen) に追加する。

w file RET

メッセージ本文のみをファイル file に出力します。ファイル名はメッセージのヘッダー ‘Subject’ のデフォルト名が使用されます。

コマンド o および C-o は、現在のメッセージを指定したファイルにコピーし、末尾に追加します。正の接頭辞引数は繰り返し回数として機能し、現在のメッセージから順に、削除済みメッセージを無視して、指定されたファイルに連続するその数だけのメッセージがコピーされます。

これら2つのコマンドの主な違いは、コピーする範囲にあります。o は、すべてが表示されていなくてもメッセージヘッダー全体をコピーしますが、C-o は現在表示されているヘッダーのみをコピーし、それ以上はコピーしません。メッセージの表示を参照してください。さらに、o は、ファイルが Babyl 形式である場合にメッセージを Babyl 形式(Emacs バージョン 22 以前の Rmail で使用)に変換します。一方、C-o は Babyl ファイルへの出力を一切行えません。

出力ファイルが現在Emacsのバッファで開かれている場合、出力コマンドはそのメッセージを当該バッファに追記します。最終的にバッファをファイルに保存するかどうかは、ユーザー次第です。

メッセージの本文にファイルの内容が含まれている場合があります。w コマンド(rmail-output-body-to-file)を使用すると、本文をファイルに保存できます(メッセージヘッダーは除きます)。こうしたメッセージでは、‘Subject’ フィールドに意図したファイル名が含まれていることが多いため、w コマンドでは ‘Subject’ フィールドを出力ファイル名のデフォルトとして使用します(ファイル名としてポータブルに使用できない一部の文字を置換した後)。ただし、ファイル名はミニバッファを使用して読み込まれるため、必要に応じて別の名前を指定することも可能です。

また、メニューで選択したRmailファイルにメッセージを出力することもできます。「Classify」メニューで「Output Rmail File」メニュー項目を選択し、次に目的のRmailファイルを選択してください。これにより、oコマンドと同様に、現在のメッセージがそのファイルに出力されます。変数rmail-secondary-file-directoryとrmail-secondary-file-regexpで、メニューに表示するファイルを指定します。1つ目の変数はファイルを探すディレクトリを、2つ目の変数はそのディレクトリ内で表示するファイル(正規表現に一致するものすべて)を指定します。一致するファイルがない場合は、このメニュー項目を選択できません。

o または C-o でメッセージをコピーすると、元のメッセージに ‘filed’ 属性が付与され、そのようなメッセージがカレントの状態にあるとき、モードラインに ‘filed’ が表示されます。

各メールメッセージのコピーを1通だけ残したい場合は、変数 rmail-delete-after-output に t を設定してください。すると、o、C-o、w コマンドは、コピーした後に元のメッセージを削除します。(必要に応じて、後から復元することも可能です。メッセージの削除 を参照してください。)

デフォルトでは、o は出力されるメッセージの削除状態を元のメッセージの状態のまま保持します。そのため、出力前に削除されたメッセージは、出力ファイルにおいても削除済みとして表示されます。変数 rmail-output-reset-deleted-flag に nil 以外の値を設定すると、この動作が無効になります。メッセージのコピーの削除状態がリセットされるため、出力ファイルでは削除されていないメッセージとして表示されます。さらに、この変数が nil 以外の場合、o に正の引数を指定しても、出力する連続したメッセージを検索する際に削除済みメッセージが無視されることはありません。

変数 rmail-output-file-alist を使用すると、現在のメッセージの内容に基づいて、出力ファイルのインテリジェントなデフォルト値を指定できます。値は、各要素が以下の形式を持つリストである必要があります:

(regexp . name-exp)

現在のメッセージに regexp に一致するものがある場合、出力のデフォルトファイル名は name-exp となります。複数の要素がメッセージに一致する場合、最初に一致した要素がデフォルトファイル名を決定します。部分式 name-exp は、使用するファイル名を指定する文字列定数であってもよいですし、より一般的には、ファイル名を文字列として返す任意の Lisp 式であっても構いません。rmail-output-file-alist は o と C-o の両方に適用されます。

Rmailでは、変数rmail-automatic-folder-directivesの値に基づいて、メインのRmailファイル(rmail-file-nameで指定されるもの)から他のファイルへメッセージを自動的に保存できます。この変数は、どのメッセージをどこに保存するかを指定する要素(‘directives’)のリストです。各ディレクティブは、出力ファイルに続き、ヘッダー名と正規表現のペアが1組以上並んだリスト形式となっています。メッセージのヘッダーが指定された正規表現に一致する場合、そのメッセージは指定のファイルに保存されます。ディレクティブに複数のヘッダーエントリがある場合は、すべてが一致する必要があります。Rmailはファイルrmail-file-nameからメッセージを表示する際にディレクティブを確認し、最初に一致したもの(もしあれば)を適用します。出力ファイルがnilの場合、メッセージは保存されずに削除されます。例えば、この機能を利用して、特定のアドレスからのメッセージや、特定の件名を持つメッセージを専用のファイルに保存することができます。