次: , 前: Daylight Savings, 上: Calendar


39.6 日誌のカスタマイズ

通常、日誌用バッファのウィンドウのモード行には、 日誌記録の日付に一致する祝祭日があれば表示されます。 祝祭日を検査する処理には数秒を要するので、 祝祭日情報を含めると日誌用バッファの表示に遅れが生じます。 祝祭日情報をなくして日誌用バッファの表示を速くしたい場合には、 変数holidays-in-diary-buffernilを設定します。

変数number-of-diary-entriesは、 一度に表示する日誌記録の日数を制御します。 これは、view-diary-entries-initiallytであるときの 最初の表示に影響します。 たとえば、デフォルト値は1で、現在の日付の日誌記録のみを表示します。 値が2であると、現在とつぎの日付の日誌記録を表示します。 この値は7要素のベクトルでもかまいません。 たとえば、値が[0 2 2 2 2 4 1]であると、 日曜日には日誌記録をなにも表示せず、 月曜日から木曜日には現在とつぎの日付の日誌記録を表示し、 金曜日には金曜日から月曜日の日誌記録を表示し、 土曜日にはその日だけの日誌記録を表示します。

変数print-diary-entries-hookは、 日誌用バッファで現在見えている日誌記録のみを収めた一時的なバッファの 準備ができると実行されるノーマルフックです。 (他の関係ない日誌記録は一時的なバッファには入っていない。 日誌用バッファではそれらは隠されている。) このフックのデフォルト値は、コマンドlpr-bufferで印刷します。 別のコマンドで印刷したい場合には、単にこのフックの値を変更します。 別の用途は、たとえば、行を日付と時刻で並び替えることです。

diary-date-formsに設定すれば、 目的に合うように個人の日誌ファイル内の日付の書式を アメリカスタイルやヨーロッパスタイルにカスタマイズできます。 この変数は、日付を認識するパターンのリストです。 各パターンは、正規表現(see Regular Expressions)や monthdayyearmonthnamedaynameのシンボルを要素とするリストです。 これらの要素すべては、日誌ファイル内の特定種類のテキストに一致する パターンとして働きます。 全体として日付パターンとして一致するには、 すべての要素が順に一致する必要があります。

日付パターンの正規表現は、`*'を単語構成文字に変更した 標準の構文テーブルを用いて通常どおりに一致をとります。

monthdayyearmonthnamedaynameの シンボルは、対象にしている月、日、年、月の名前、曜日です。 数に一致するシンボルは、数の先頭にある0を許します。 名前に一致するシンボルは、3文字の省略形や大文字で始まることを許します。 日誌記録では`*'は『任意の日』『任意に月』などを表し、 対象とする日付に関係なく一致するべきなので、 すべてのシンボルは`*'に一致できます。

アメリカスタイルのdiary-date-formsのデフォルト値はつぎのとおりです。

     ((month "/" day "[^/0-9]")
      (month "/" day "/" year "[^0-9]")
      (monthname " *" day "[^,0-9]")
      (monthname " *" day ", *" year "[^0-9]")
      (dayname "\\W"))

リスト内の日付パターンは、互いに排他的であり、 日誌記録の日付と1つの白文字以外には他の部分に一致してはいけません。 互いに排他的であるためには、 パターンは日付を終える白文字を越えて日誌記録本文に一致する必要があります。 それには、日付パターンの最初の要素はbackupである必要があります。 これにより、日付を認識する処理では、 一致し終えてから日誌記録の現在の単語の先頭に戻ります。 たとえbackupを使ったとしても、 日付パターンは日誌本体の最初の単語を越えて一致してはいけません。 ヨーロッパスタイルのdiary-date-formsのデフォルト値は、 つぎのとおりです。

     ((day "/" month "[^/0-9]")
      (day "/" month "/" year "[^0-9]")
      (backup day " *" monthname "\\W+\\<[^*0-9]")
      (day " *" monthname " *" year "[^0-9]")
      (dayname "\\W"))

ここでは、3番目のパターンでbackupを使っています。 4番目のパターンと区別するために、 日付のつぎの単語の一部と一致する必要があるからです。