autoinsertで対話形式でテンプレートを作る
これの利点はプライベートと仕事でメールアドレスやコピーライトが違ったりするときにその場でテンプレートの各部分を変更して挿入できる点だと思います。
例としてPerlの.pm、.pl、.cgiという拡張子のファイルを作成する際のコードを下記に書いておきます。このコードの各部分を適当に編集すればそのまま使えるはずです。
これを.emacsに設定しておけば、ファイルを作成する際に「Your e-mail: 」「Copyright: 」というのプロンプトがミニバッファーに出て入力待ちになるので、そこで入力したものがテンプレートに挿入されます。なにも入力をしないでリターンをすればデフォルトで設定されているものが挿入されるので、デフォルトのものはよく使うメールアドレスとコピーライトを設定しておけばよいでしょう。
elispは得意ではないので、もっと効率よい方法もあると思いますので、その辺は適宜変更して下さい。
;; auto-insert (require 'autoinsert) (add-hook 'find-file-not-found-hooks 'auto-insert) (add-hook 'find-file-hooks 'auto-insert) (setq auto-insert-alist (append '( (("\\.pm$" . "Perl Module Header") "Your e-mail: " "package " _ "; # $Id$ # # Your Name <" str | (setq insert "foo@example.com") "> # " (read-string "Copyright: ") | (setq insert "Example Co.,Ltd.") " # use strict; 1;") (("\\.pl$" . "Perl Script Header") "Your e-mail: " "#!/usr/local/bin/perl # $Id$ # # Your Name <" str | (setq insert "foo@example.com") "> # " (read-string "Copyright: ") | (setq insert "Example Co.,Ltd.") " # use strict; " _ ) (("\\.cgi$" . "CGI Script Header") "Your e-mail: " "#!/usr/local/bin/perl # $Id$ # # Your Name <" str | (setq insert "foo@example.com") "> # " (read-string "Copyright: ") | (setq insert "Example Co.,Ltd.") " # use strict; " _ )) auto-insert-alist))