特定のファイルのタイムスタンプをカスタマイズするには、そのファイルのローカル変数リストに変数 time-stamp-pattern を設定します(ファイル変数の指定を参照)。time-stamp-pattern を使用すると、テンプレートを識別するために time-stamp
が照合するパターンや、ファイル内のどの箇所でそのパターンを検索するかを変更できます。詳細については、当該変数の組み込みドキュメントを参照してください(C-h v については、コマンドまたは変数名によるヘルプを参照してください)。
簡単な例として、原稿に出版年と都市名を記載したいとします。修正を加えるたびに年が更新されるようにしたい場合、ファイルの冒頭付近に次のような行を設けることができます。
publishing_year_and_city = "Published nnnn in Boston, Mass.";
また、同じファイルの末尾に、time-stamp
にそのカスタムテンプレートの識別方法と更新方法を伝えるための以下のコメントを記述します:
// Local variables: // time-stamp-pattern: "Published %Y in Boston" // End:
このパターンでは、タイムスタンプの開始前のテキストが "Published" で、終了後のテキストが " in Boston" となります。もし
time-stamp
が最初の8行のいずれかで開始位置と終了位置の両方を見つけた場合、その間の内容はフォーマット(この例では %Y)で指定された通りに更新されます。%Y
は年を要求しているため、結果は次のようになる可能性があります:
publishing_year_and_city = "Published 2025 in Boston, Mass.";
フォーマットに %Y
を指定すると、年のみが置換されます。デフォルトフォーマットの他の部分(日、時刻、著者)はこの例のパターンに含まれていないため、結果には表示されません。
time-stamp-pattern(または任意のファイルローカル変数)の値を変更した後、Emacsが認識するように
M-x normal-mode と入力してください。
もう一つの例を挙げます。HTMLドキュメントの最後の段落にタイムスタンプが挿入されています。このテンプレートは冒頭の8行ではなくドキュメントの末尾にあるため、time-stamp-patternは-10/から始まり、time-stampに最後の10行を参照するよう指示しています。%%ではデフォルトのフォーマット(time-stamp-formatで指定)を要求しています。
...
<p>Last modified: </p>
</body>
</html>
<!--
Local variables:
time-stamp-pattern: "-10/Last modified: %%</p>$"
End:
-->
デフォルトでは、タイムスタンプはロケール設定(環境変数を参照)およびタイムゾーン(The Emacs
Lisp Reference ManualのTime
of Dayを参照)に従ってフォーマットされます。 使用するタイムゾーンを上書きするには、time-stamp-time-zone を設定してください。
フォーマットの詳細や、それに影響を与えるその他の変数については、変数 time-stamp-format の組み込みドキュメントを参照してください。