Auto Complete ModeのPerl辞書を作ってみた
EmacsのAuto Complete Modeはデフォルトでいくつかの辞書が用意されているんですが,何故かPerlは用意されていません.
ってことで作成しました.ここの内容そのまんまみたいなもんなんですが…
1. 次のようなスクリプトを作成します.
mkdict.pl
#!/usr/bin/perl
my $n = 1; # 何文字以上の関数を登録するか
while (<STDIN>) {
last if /__DATA__/;
}
while (<STDIN>) {
my $command = (split)[0];
$command =~ s/\W.*\W$//;
print $command."\n" if $command =~ /^\w{$n}/;
}
print join("\n", qw/for while until foreach if elsif else unless/) . "\n";
2. Functions.pmの場所を確認します.
$ locate Functions.pm
/System/Library/Perl/5.10.0/File/Spec/Functions.pm
/System/Library/Perl/5.10.0/Pod/Functions.pm
/System/Library/Perl/5.8.9/File/Spec/Functions.pm
/System/Library/Perl/5.8.9/Pod/Functions.pm
※Macでの実行結果です
3. スクリプトを実行します.
$ perl mkdict.pl < /System/Library/Perl/5.10.0/Pod/Functions.pm | sort > ~/.emacs.d/site-lisp/ac-dict/perl-mode
※辞書(perl-mode)の作成場所は環境に合わせて変更してください
完成!
これでperl-modeで開いたときに作成した辞書が読み込まれます.