北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

Devel::PerlySense

id:antipopさんとこで公開されてた発表資料を元に色々試したのですが、その中でDevel::PerlySenseが導入がとても簡単で、かつ、使いやすく実用性が高いです。

特に、プロジェクトごとにyamlでインクルードパスを変更できるのが素敵です。*1

導入

まあ、書いてる通りなんですが、英語なんで一応。

  1. cpan Devel::PerlySense してインストール
  2. .emacsに、これを追記

使用法

Ctrl+o Ctrl+oでファイル開いたり、Ctrl+o Ctrl+d でperldoc見たり。その他たくさんバインディングがあるので、From Emacsを参考にしましょう。

flymakeも使う

flymakeを使うと、編集中にperl -cの結果がエディタ上に見えて便利です。要は、typoとかコンパイルエラーがすぐわかります。PerlySenseにはflymakeと連動する機能があるので、簡単にflymakeの恩恵が受けれます。

ただし、セキュリティの都合上*2、flymake機能はオフになっています。オンにするには、以下のようにプロジェクトを作成して、yamlで設定を有効にする必要があります(たぶん)。

  • flymakeを有効にしたいディレクトリ(プロジェクトルート)で以下を実行
$ perly_sense create_project
  • できた .PerlySenseProject/project.yml を編集
flymake:
  syntax: 1

プロジェクトごとにライブラリパスを追加

これが一番便利かなと思う点。プロジェクトごとに、特定のパスを@INCに入れられます。project.ymlの、以下の部分をいじって下さい

project:
  inc_dir: 
    - hogehoge/lib
    - foofoo/lib/perl

これで、モジュールへのジャンプとかの恩恵を最大限に受けれるようになります。

*1:プロジェクトの概念を無視して単純に言えば、.yamlファイルがあるところから下のディレクトリ全てにyamlの設定の影響が及ぶイメージです。

*2:perl -cってBEGINの内容は実行されるため