Perldoc を引きたい。(続き)

■[Emacs][perl] Perlモジュールのソースを簡単に開く機能の話の続き

と、先日のエントリで Trackback を送った id:higepon さんに取り上げて貰っておきながら、全く反応できませんでした。申し訳ないことです。
このところ、公私共に色々とあって (と言っても圧倒的に `私' の方が上なのですが)、すっかり忙殺されてしまっていますもので。

一応、少し前には言及されていることに気付いており、また、

cperl-modeに取り込んでもらうようにするってのはとても良いアイデアですね。

やり方は二つあると思っていて

  • id:tokuhiromさんや、id:tenyさんの実装のほうが優れているのでどちらかにお任せする
  • id:higeponが言いだしっぺなので、自分のLispにお二人の成果を入れてから cperl-mode作者に突入する。

のどちらがよいでしょうか。>コメント・トラックバック下さった皆様。

と振られていたことにも気付いたんですが、如何せん反応する余裕がありませんでした。
ごめんなさい。

higepon さんには優れている実装の仲間に私のものも含めて頂いてますが、私のアプローチは単なる小技ですし、且つ、完全に Man パッケージにおんぶにだっこなので、cperl-mode の様なパッケージからすると取り込みたくないだろうという気持ちもありました。
この様なコマンドの出力を取り込む類いのパッケージについて、コマンドやオプションスイッチを変更して上手いことやるってのは色んな人がやってる小技系のアプローチなので Emacsen のカスタマイズの一環とも言えますし。

ところが、cperl-mode のコードを覗いてみたところ、cperl-perldoc() ではしっかりと、

  (require 'man)

してました。
というか、やってることは殆ど一緒ですね、私のコードと。
但し、cperl-mode では perl で使われるシンボルのリストを抱えているので、それらと対象の単語を照合して関数名か否かを判別し、関数名なら `-f' を指定して perldoc を実行する様になっています。
そのため、私が示したコードの様な無理矢理な部分 (コンテンツが存在するまでスイッチを変更しながら perldoc コマンドを実行する) はなくてスッキリしたものです。

とはいえ、私のコードでは、perldoc の出力となったモジュールのソースを manual-mode で開くことになりますが、id:higepon さんや id:tokuhirom さんのコードの場合、モジュールのソースは cperl-mode で開かれますので、より実用的かと思います。
;; それでも find-file よりも find-file-read-only とかの方が良さげな気はしますが。
;; でも、通常、モジュールは一般ユーザから更新可能とは思えないので、結果的に read only になるから良いという気もしますね。

という訳で、遅蒔きながら、

■[Perl][Emacs] cperl-find-module

id:tokuhiromさんがブラッシュアップしてくれた、cperl-find-moduleをcperl-modeのメンテナー( Ilya Zakharevich )にメールしたところ、User unknownで返って来てしまいました。

cperl-find-moduleとして配布したほうが良いのかな。

という動きで宜しいかと思っています。

が、User unknown ですか。これって最新の cperl-mode.el に書かれたアドレスですか?

wget http://math.berkeley.edu/~ilya/software/emacs/cperl-mode.el.5.15.bz2

として download した、

;; $Id: cperl-mode.el,v 5.15 2006/01/28 20:01:45 vera Exp vera $

では、cperl@ilyaz.org となっていますが、これが unknown だったのでしょうか。