パソコンでメモを取る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スクリプトに結構近い動作。
メモの書式を決めるだけで、凄く効率が良くなった。vimでgrep|copenしたり、MeadowでM-x occurしたりしています。