パソコンでメモを取る2

昨日に続き、ChangeLogを使い切るために頑張っています。
K2Editor*1のマクロを使ってChangeLog作成支援。(ChangeLog.mac

//ChangeLog作成支援K2Editor用マクロ
BeginUpdate
InputDateTime(%YYYY%/%ZM%/%ZD%(%JWEEK%) %ZH%:%ZF%:%ZS%)
InputStr("  ")
InputStr("Alice")
InputStr("  ")
InputStr("<foo@bar.com>")
Enter
InsertIndent
InputStr("* ")
EndUpdate

現在のカーソル位置に日時・名前・メールアドレス、先頭文字を挿入。日時の書式はK2Editorのヘルプ参照。
ProgramExecを使えばWSH他好きなスクリプトが使えるので改良の余地十分にあり。vimスクリプトに比べたら弱すぎる。
ということで、VxEditor*2の標準マクロ、DMonkeyを使ってvimスクリプトに近づけてみる。(ChangeLog.dms)

//Changelog作成支援VxEditor用スクリプト
//dtformat:日時書式
//ggg(gg,g)ee:元号 yyyy(yy):西暦
//mmmm(mmm,mm):月 dd(d):日 aaaa(=dddd,aaa=ddd):曜日
//hh(h):時 nn(n):分 ss(s):秒 ampm:AM/PM
var dtformat="yyyy/mm/dd(aaa) hh:mm:ss";
//name:名前
var name="Michael";
//mail:メールアドレス
var mail="hoge@hogehoge.com";

var e=new Editor;
e.BeginUpdate();
e.Row=0;
e.Col=0;
e.FindSet(100000,'^%changelog');
if(e.Find(true)) {
 e.Row=1;
 e.Col=0;
}else {
 println("%changelog");
 println("%changelog");
 e.Row=1;
}
e.FindSet(0,'');
Date.format=dtformat;
println(Date.toLocaleString()+"  "+name+"  <"+mail+">");
var r=e.Row;
print("\n\n");
e.Row=r;
print("\t* ");
e.EndUpdate();

ファイル先頭の"%changelog"から次の"%changelog"までをChangeLogスペースとして使用する。
ファイル先頭に"%changelog"が無ければ対の"%changelog"を挿入し、その間に日時・名前・メールアドレス、先頭文字を挿入。以降、実行するたびに日時・名前・メールアドレス、先頭文字をChangeLogスペース内最上部に挿入する。
ファイル先頭ではない箇所に"%changelog"があると無視してしまうから、改良の余地あり。vimスクリプトに結構近い動作。
メモの書式を決めるだけで、凄く効率が良くなった。vimgrep|copenしたり、MeadowでM-x occurしたりしています。