emacsで2019/2/5「(火)」みたいな曜日文字列を補完する

むかしから、日本語の日付の曜日をタイプするのが面倒で嫌いだった。

「(月)」みたいなやつ。

英字モードにして括弧を打ち、
日本語モードにして「げつ」とか「か」とか「すい」とかタイプして変換し、
いやそれじゃ変換候補を送るのが面倒なので「かよう」「みず」「つち」とか入れて変換し、余計な漢字を消し、
また英字モードにして打つ。

気が散る。時間がかかる。生産性が悪すぎる。

なのでいつも効率優先でmon tue wedとか書いているが、気障っぽく感じられそうでちょっと気にかかるし、あまり付き合いのない相手や社外に出す文章には気が引ける。

ATOKみたいな凝った売り物を導入すればいいのかもしれないが、ベンダーロックインはいやだし、なるべく手元の道具は薄味で整えていたい。

帰宅後に日程調整メールを書いていて、これらのことを思い出し、カッとなって久しぶりにemacs lispを書く。

insert-japanese-day-of-the-week

gist.github.com

適当に ~/.emacs.el などに入れてください

コード例では

(global-set-key "\C-x\C-d" 'insert-japanese-day-of-the-week)

としてC-x C-dにバインドしちゃっています

バッファにこのような文章があるとして

1.1
1/2
今年の2019/1/3
そういえば2019.1.4に
では、2019.01.05ないしは1/6でいかがでしょうか

日付文字列の直後でC-x C-dしてみてください。
直前の日付文字列を適宜解釈し、曜日を挿入します。
西暦が書かれていない場合は今年の日付と解釈します。

1.1(火)
1/2(水)
今年の2019/1/3(木)
そういえば2019.1.4(金)に
では、2019.01.05(土)ないしは1/6(日)でいかがでしょうか

過去の年の日付の曜日も大丈夫です。

2019/12/24
2018.12.24
2017/12/24
1970.12.24
2019/12/24(火)
2018.12.24(月)
2017/12/24(日)
1970.12.24(木)

日付として異常なもの、1970/1/1以前の日付に対する挿入内容は不定です。

2019.2.29
1970.13.45
1969.12.31
2019.2.29(金)
1970.13.45(日)
1969.12.31(水)