Mode-info

■Irb/TipsAndTricks

という記事で、irb を利用中に RD を引く Tips が紹介されています。

Ruby使いなら誰もが愛用している(と思われる)irbのtipsなどが書かれている rubygarden の1ページなんですが、ここのriを使ってリファレンス引く方法が超便利!
refeに変えたら鼻血が出るほど便利だったので紹介。

と素晴しい褒め讃えようです。
確かに素晴しいツールで、今度、セットアップさせて頂きたいと思います。
当初、Trackback させて頂こうと思ったのですが、どうやら Trackback は受け付けておられない様でしたのでコメントだけさせて頂きました。

ところで私は、以前から、Emacs で Info が引ける、mode-info という優れたツールを利用しています。
こちらも Refe に負けず劣らず大変素晴しいツールで、競う訳ではないですが、紹介させて貰おうかと思います。
作者は土屋雅稔さんで、Emacs-w3m などに代表される様々なツールを公開して下さっている、幾ら感謝しても足りない程の Lisper です。
こんなところからですみませんが、ありがとうございます、土屋さん。

こちらは Refe と異なり Info を基にしますので、純粋な Rubyist にはちょっと微妙かもしれませんが。
何故に Info かと言いますと、そもそもこれは Emacs 上で Lisp プログラミングを行なう際に、同様にリファレンスを引くために作られたものだからです。
そして、Info を対象にしていることから、他の言語にも応用が効き、elisp, C, Perl, Ruby と、様々な言語のリファレンスを引くことが可能になっている優れものです。

インストールは configure && make && make install で簡単にセットアップできます。
やはり索引は必要ですが、それも make index && make install-index で行けます。
(当然ですが make install と make install-index は sudo などして root 権限で。詳細については上記の url を参照して下さい。.emacs への記述も必要です)

対象とする言語の索引が作成されていれば、その言語のソースを開いたバッファ上で、mode-info-describe-function か mode-info-describe-variable を実行すれば良いだけです。
上述の url にある説明の通りに .emacs を設定していれば、C-h f 関数名 RET または C-h v 変数名 RET と入力すれば、指定された関数や変数に関する説明を表示したバッファが pop up されます。(その代り、通常の describe-{function,variable} を行なって doc strings を見たいときは、明示的に M-x describe-function などとしなければなりませんが)
引きたい関数名、変数名にポイントを置いた状態であれば、その単語が default となりますので、関数名や変数名を入力する必要すらありません。

対象とするリファレンス (Info) は、そのバッファの major mode から自動的に判断しますので、Info がインストールされ、索引が作成されていれば、ほぼ自動的に引きたい情報を得ることができます。

但し、元記事にある様に irb の場合ですと、shell mode で実行していると自動的に ruby を選択してはくれないため、前置引数を置いて実行する必要があります。
前置引数を置いて実行すると、どの言語 Class の索引を引くかミニバッファで訊ねられるので、そこで ruby を指定してやれば目出たく Ruby の索引を引くことができます。

ところが SXEmacs でこれを実行すると前置引数を認識した挙動をしてくれませんでした。XEmacs では問題無いのですが。

ちょっと調べてはみましたが時間が無く、詳細は不明なままです……
あ、それに irbsh が動かなくなってる…… 一瞬、漢字コードが間違っているとミニバッファに表示され…… これは XEmacs もだ…… もうやだ。