Gaucheのリファレンスを検索するlocal CGI

w3mからローカルのGauche リファレンスマニュアルを検索するlocal CGIです。REPLから使えるinfoaproposで十分なことも多いですが、w3mも一緒に使うことが多いので書いてみました。Gauche 0.9.1以降が必要です。

インストール

w3m-gref-0.1.tar.gzをダウンロードして展開します。

$ curl -L http://github.com/downloads/teppey/w3m-gref/w3m-gref-0.1.tgz | tar xzf -
$ cd w3m-gref-0.1
$ ls
MIT-LICENSE.txt  README  setup.scm  w3m-gref.cgi

もしくはgithubからcloneしてください。

$ git clone git://github.com/teppey/w3m-gref.git
$ cd w3m-gref

次にデータベースを作成します。setup.scmにリファレンスマニュアルのアーカイブのURLを渡すと、ダウンロード・展開したのち、それを元に$HOME/.w3m-gref/内へデータベースを作成します。すでにリファレンスマニュアルのアーカイブやそれを展開したディレクトリを持っている場合、setup.scmにそれらを指定することもできます。

$ gosh setup.scm http://practical-scheme.net/gauche/vault/gauche-refj.tgz
$ cp w3m-gref.cgi $HOME/.w3m/cgi-bin
$ chmod +x $HOME/.w3m/cgi-bin/w3m-gref.cgi
$ echo "gref: file:/cgi-bin/w3m-gref.cgi?%s" >> $HOME/.w3m/urimethodmap

w3m-gref.cgiをコピーして、urimethodmapにエントリを追加すれば完了です。
ちなみに"gref:"というprefixは好みのものに変更してもらって構いません。

使い方

gref:<トピック>で検索します。<トピック>には手続き名・モジュール名・リファレンスのセクション名などが指定できます。結果が一意に決まる場合は該当するページを表示し、複数の検索結果があった場合はそれらがリスト表示されます。

gref:/<パターン> あるいは gref:<パターン>/とすると、<パターン>を正規表現と見なして検索します(前後を'/'ではさんでもOK)。

末尾の'/'の後に'i'が与えられると大文字小文字を区別せずに検索します。

'/'で終わるパターンは、末尾の'/'をバックスラッシュでエスケープしてください。
gref:call/

gref:call\//


よかったら使ってみてください。おかしなところを見つけたら、コメントやTwitterで教えてもらえるとありがたいです。