Hoogleをローカルで使う
Haskellのマニュアル検索のHoogleってシステムがある。
http://www.haskell.org/hoogle/
便利なんだけど、manに慣れた我々としてはコマンドで使いたいじゃない。Erlangもmanっぽいの用意してくれてるし。
ということで、パッケージがありそうなので入れてみることにしました。
% cabal install hoogle
何故か、コマンドは入らないけどライブラリだけできてるっぽかった? なんかもう先に進んじゃったからよくわかんないけど、エラーメッセージを見ながら、確かnetworkパッケージをupgradeした。と思う。
パッケージを入れ直してcabal install hoogleしたらとりあえずhoogleコマンドが使えるようになった。
さっそく使ってみる。なにはなくともhelpである。
% hoogle --help Hoogle v4.2.9, (C) Neil Mitchell 2004-2012 http://haskell.org/hoogle hoogle [COMMAND] ... [OPTIONS] Commands: [search] Perform a search data Generate Hoogle databases server Start a Hoogle server combine Combine multiple databases into one convert Convert an input file to a database test Run tests dump Dump sections of a database to stdout rank Generate ranking information log Analyse log files Common flags: -? --help Display help message -V --version Print version information -v --verbose Loud verbosity -q --quiet Quiet verbosity
csvパッケージについて調べる。
% hoogle csv Could not find some databases: default Searching in: . /Users/nomurayuusuke/Library/Haskell/ghc-7.0.4/lib/hoogle-4.2.9/share/databases There are no available databases, generate them with: hoogle data
最初にデータベースを作らないといけないらしい。これバージョン変わったら作りなおさなきゃいけないのかなぁ。やだなぁ。昨日の時点では4.2.8だった気がするし。まあいいけど。
% hoogle data
で、検索してみる。
% hoogle csv package csv package csv-enumerator package bytestring-csv package cursedcsv
できた。けど、あれ、これの中身を見たいんだけどどうするの?
serverってコマンドがあって、なんかそれでサーバを立ててブラウザで見る感じ?
% hoogle server --port 31011 Starting Hoogle Server on port 31011
これで、
http://127.0.0.1:31011/
にアクセスするとHoogleのトップページと同じようなものが見られた。検索もできる。どうもこれで正解っぽい。
が、私はターミナルから手軽に参照したいのである。
ということで、.bashrcとか.zshrcにこんなのを書いた。
hman() { w3m http://127.0.0.1:31011/¥?hoogle=$1 }
これで、
% hman csv
とかやると、w3mでページが開きます。hoogleは起動スクリプトとかを書いてしまって自動起動するようにしておけばいいんじゃないでしょうか。
まあ、作ってみてナンだけど、つ か い づ ら い。
w3mとscreen縦分割の相性が悪いですね。tmuxだと解決したりとか、しないのかなぁ。縦分割標準だし。というかChromeで表示するようにした方がまだいい気がする。
まあ、なんでも、いいですけれど。
で、リンク先はWebだったりするのであんまし意味は無かった。なんのためにあるの。