Emacsでテンプレートの変数を埋めて生成する機能つくりました。

はじめに

同じようなテンプレメールの日付や名前を変更してメールを送る作業が何度も続いたので、用意したテンプレに変数埋めて生成する機能を作りました。


なにするの?

テンプレートに予め設定しておいた変数を埋めたり日付を埋めたりします。


導入方法

事前準備

動作のためには、以下のものが必要になります。

  • popup.el
導入
install-elisp RET https://gist.github.com/sanryuu/7842967/raw/0f73205b75ad172faf98a357d73a3982a11a20b1/fill-in-template.el RET
C-c C-c

設定ファイルに以下の行を追加します。

(require 'reference-user-comment)

使い方

テンプレートの登録

変数名は、変数名と変数値を登録します。

(fit:register-variable "name" "田中")

テンプレートとして、表示名、ファイル名(.txt除く)、曜日を登録します。

(fit:register-template "経営会議" "management-meeting" fit:week-tuesday)
(fit:register-template "開発会議" "develop-meeting" fit:week-friday)

テンプレートには、埋めたい変数名を"#{$"と"}"で括っておきます。
埋めたい日程は、"#{"と"}"で括っておきます。フォーマットは、EmacsLispのformat-time-stringと同じです。
"%Y/%m/%d %H:%M:%S"→"2010/12/12 23:22:34"

参加者各位。

お疲れさまです、#{$name}です。

#{%m/%d}の会議のお知らせです。
テンプレートの生成

以下のコマンドで利用できます。

M-x fit:generate

実行したあとに、表示されたポップアップからテンプレートを選択したら生成されたテンプレートを新しいバッファで表示します。

おわりに

メールなどに使う、テンプレート生成に使うテンプレートからの生成機能を作りました。
まだまだ、使いつらい部分があるのですが、最低限使える状態になったので公開しました。
ご意見頂けましたら改善します。

もともと、一般人(Emacsユーザ以外)に使わせようと思って作ってたのですが、完全に設定書かない状態では使うところまでいきました。
Emacsユーザ以外が使うとすると、Emacsのメニューバーみたいに、設定は裏で掃き出せるようにしないとですね。勉強になりました。