Emacs のテンプレート機能

| コメント(0) | トラックバック(0)

なんか毎回毎回ファイルを作るたびに手打ちで use strict を打ち込むのが面倒になってきたので(これで怠慢なプログラマの仲間入りかなw) Emacs のテンプレート機能を使って拡張子が Perl のファイルだった場合は自動で最初の決まり事の 3 行を入れてくれるようにしてみた。とりあえずはモードでの判定と拡張子での判定でやってみる。

僕の場合は template ってフォルダを作って、そのなかにテンプレートになるファイルを放り込んだだけ。今は Perl でしか使ってないけど、他に雛形が必要な言語があったら便利に使えそう。HTML の場合は psgml-mode 使えばもっと便利らしい。

;; Mode Check Template
(setq auto-insert-directory "~/site-lisp/template/")
(auto-insert-mode t)
(setq auto-insert-query nil) ;; テンプレート挿入時に尋ねない

(setq auto-insert-alist
      (append
       '(
         (cperl-mode . "default.pl")  ;; もしかしたらこの行は要らないかも
         ("\\.pm$" . "default.pm)
         ("\\.\\(pl$\\|cgi$\\)\\'" . "default.pl")
         )
       auto-insert-alist))

.pl のテンプレートになるファイルの内容。

#!/usr/local/bin/perl
use strict;
use warnings;

追記:date 01/17/2007 09:10

.pm ファイルの場合は別のテンプレートを開くように修正。まぁモジュール作る時は h2xs -AX -n Module::NAME でいいやと思ったけど自分モジュール用にw

package Module::Name;

use strict;
use warnings;

require Exporter;
our @ISA = qw(Exporter);
our %EXPORT_TAGS = ( 'all' => [ qw(
        
) ] );
our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
our @EXPORT = qw(
        
);
our $VERSION = '0.01';

とかしてみたんだけど、どうも .emacs に直打ちで対話的に使えるらしいので後日モジュール名とかは対話的に入力出来るように変える可能性あり。