オンラインドキュメントの参照。

■ Schemeの勉強、10日目

で、結城さんが、

  • perldocやriやrefeのような、コマンドラインベースで読めるドキュメントツールがあるとよいなあ。

と仰っています。
これについて shiro さんが、gauche.interactive の `info' を紹介されています。

やはりオンラインドキュメント環境は重要ですよね。それも、より簡単に、素早く対象にアクセスできる事が望ましい訳です。とにかく、できるだけ思考の流れを妨げたくありませんから。

結城さんが仰る様に、コマンドラインツールとして存在していれば、万人に便利なのは間違い無いと思うのですが、gosh をインタラクティブに起動できる環境さえあれば (そして、Gauche ユーザであればその環境があると思うのですが) gauche.interactive の info で十分に活用できるとは思います。
shiro さんのコメントにある様に、Info ページを表示してしまうので冗長というのはその通りかとは思いますが。
また、gauche.interactive には `apropos', `describe' なんかもあって便利ですし。

ただ、表示される内容は英語のものなんですよねえ。Gauche の make 時に何とかすれば、日本語で表示することも可能かとは思うのですが……
;; 英語がダメってのは技術者として致命的という意見もあるかとは存じますが……

私は、以前にこのエントリで紹介した (誰に?) `mode-info' で Gauche の Info が引ける様にしています。この mode-info というツールは本当に便利で、私の環境では、Perl, Ruby, Emacs Lisp, Gauche, libc の Info が一発で引ける様になっています。(libc だけ英語だ……)
mode-info を使っても、gauche.interactive の info と同様に、Info のノード単位に表示されてしまうのですが、その結果は Emacs のバッファとしてポップアップされ、対象の手続きやマクロの記述位置をポイントしてくれるので、気になることは無いと思います。
インデックスの作成時に、入力となる Info を日本語版にしてやれば、日本語の Info を引くことができますので、私にはとても重宝しているのです。

但し、mode-info では、対象とする Info ごとに説明文を抽出するモジュールを書き起こさなければならないということで、現在、対象とされている Info 以外については、モジュールの作成が必須となってしまいます。
幸い、Gauche の Info は既に対応されており、モジュールが存在していますので、そのまま行けました。

使い方は簡単で、基本的には mode-info のインストール時に make index として、対象の Info からインデックスを生成してやれば良いです。
デフォルトでは Gauche の Info は、実行するバッファが scheme の mode になっているときに引ける様になります。
私は、gauche-mode を利用しているため、`mode-info-class-alist' にモード名を追加してやる必要がありました。

インストールできたら、Gaucheスクリプトを開いているバッファで、引きたい単語にポイントを合わせた状態で、

  M-x mode-info-describe-{function,variable}
  (通常は C-h f が置き換えられる様です)

してやれば、該当する Info のノードが表示されたバッファがポップアップされます。

結城さんが Emacsen を利用されているという話はこれまで耳にしたことが無い気がします (私が知らないだけの可能性高し) し、Emacsen の利用を前提にした話は不毛という気もしますが、まあ、こんな環境もありますと言うことで。;-)
ひょっとしたら Emacs を利用していて、使ってみようと思う方もいらっしゃるかもしれませんよね。