「Emacs Lispでコードを書く場合は出来るだけコマンドを使わないようにしよう」
というルール?があったと思います。たとえばbeginning-of-bufferのHelpを見
ると「Don't use this command in Lisp programs!」と書かれていると思います。
代わりに(goto-char (point-min))を使いますね。next-lineやprevious-lineな
ども同様です。なので、私の中ではコード中にキーボードマクロを埋め込むこと
自体あり得ないのですが、そういうのをバッチで実行してしまおうという発想は
理解できません。
tanaka@ubuntu:~/elisp$ emacs --batch -Q -l test1.el -f blog-maker
date?: 2010-09-13
Title for new entry?: New
Contents: I am a boy.
Wrong type argument: number-or-marker-p, nil
tanaka@ubuntu:~/elisp$ emacs --batch -Q -l test2.el -f blogman
日付を入力してください(ex 2006-01-01): 2010-09-13
題名: New
内容: I am a boy.
Saving file /home/tanaka/elisp/Blog.txt...
Wrote /home/tanaka/elisp/Blog.txt
日付: 2010-09-13
題名: New
内容: I am a boy.
tanaka@ubuntu:~/elisp$ emacs --batch -Q -l test2.el -f blogman
日付を入力してください(ex 2006-01-01): 2010-09-12
題名: Last day
内容: I was a girl.
Saving file /home/tanaka/elisp/Blog.txt...
Wrote /home/tanaka/elisp/Blog.txt
日付: 2010-09-12
題名: Last day
内容: I was a girl.
tanaka@ubuntu:~/elisp$ emacs --batch -Q -l test2.el -f blogman
日付を入力してください(ex 2006-01-01): list
日付: 2010-09-12
題名: Last day
内容: I was a girl.
日付: 2010-09-13
題名: New
内容: I am a boy.
tanaka@ubuntu:~/elisp$ emacs --batch -Q -l test2.el -f blogman
日付を入力してください(ex 2006-01-01): 2010-09-12
日付: 2010-09-12
題名: Last day
内容: I was a girl.
""
riki@burnacid:~/temp/lq$ emacs --batch -Q -l diary-maker.el -f blog-maker
date?: 2010-09-13
Title for new entry?: date
Contents: date with Cindy
Wrote /home/riki/temp/lq/blog.txt
riki@burnacid:~/temp/lq$ emacs --batch -Q -l diary-maker.el -f blog-maker
date?: list
"2010-09-13,date,date with Cindy
"
riki@burnacid:~/temp/lq$ emacs --batch -Q -l diary-maker.el -f blog-maker
date?: 2010-09-13
2010-09-13,date,date with Cindy