org-mode + remember-mode で挿入される日付フォーマットを変更するには

org-mode + remember-mode でメモを取ると日付が自動的に挿入されるのだけど、デフォルトだと 日本語と英語(「土」の箇所)が入り混じって何だかダサイ。(>_<) これを日本語か英語かどちらかに統一することにする。

マニュアルを見るとカスタマイズ変数 org-display-custom-formats を用意してくれているのでこれを利用して独自フォーマットを定義し、org-display-custom-times を t にすることで定義した独自フォーマットをデフォルト表示にすることができる。英語表記はちょっとアドホックかもしれないけれど、(current-time-string) から引っ張ってきてしまったアドバイスロケールを変更してしまった。(元々は org-mode 内部の format-time-string の曜日変換がローカルタイムの"土"になってしまうのが原因ぽいけど…)

■設定方法(日本語表記)

(custom-set-variables
  '(org-display-custom-times t)
  '(org-time-stamp-custom-formats (quote ("<%Y年%m月%d日(%a)>" . "<%Y年%m月%d日(%a)%H時%M分>")))
)

スクリーンショット(日本語表記)


なお、この変更は Emacsテキスト属性を利用して見せ方を変えているだけのようで、内部的にはデフォルトのフォーマットのままになっている。(cat org/*.org すると元の日本語と英語が入り混じったフォーマットのまま。また、英語表記にしてバッファ内を「Sat」で検索してもひっかからないが、「土」で検索すると「Sat」にひっかかる)

データ自体はデフォルトフォーマットで保存されるが、独自フォーマットと「C-c C-x C-t」で簡単にトグルすることが可能なので、見やすい独自フォーマットで行こうと思う。(^-^)

また、ここで変更した日付フォーマットは「C-c .」や「C-c !」にも適用される。d(^-^)

 Org mode needs the default format for scanning, so the custom date/time format
 does not replace the default format - instead it is put over the default format
 using text properties. This has the following consequences:

■参考 URL
Org Mode Manual - 8.2.2 Custom time format

http://orgmode.org/manual/Custom-time-format.html#Custom-time-format