【Haskell (その2) Advent Calendar 2017】Vim から Hoogle の検索が出来るプラグインをつくった【16日目】

Haskell (その2) Advent Calendar 2017 16日目の記事です。
ちょっと時間が過ぎてしまってすみません…。
Haskell 関連のネタが特に思いつかなかったので『Vim から Hoogle を Web 検索する』簡単な Vim プラグインをつくりました。
ちなみに既存のプラグインとして vim-hoogle があるのですが、こちらはローカルのコマンドを利用しているようです。
体調不良で時間がなかったのでしょぼいです…

インストール

Vim ではプラグインをインストールする手段はいくつかあるんですが、neobundle.vim を使用する場合は以下のような感じです。

NeoBundle 'osyo-manga/vim-hoogle-web'

要求

Website を Vim で読み込む場合

使い方

基本的には unite.vim 経由で使いますdenite.vim?知らない子ですねえ…

" unite.vim で {keyword} を検索する場合
" Unite hoogle/web:{keyword}
:Unite hoogle/web:foldr

" keyword に : を含める場合は \ でエスケープしてください
" '::a' で検索する
:Unite hoogle/web:\:\:a

" プレビューウィンドウの高さを指定
:Unite hoogle/web:map -previewheight=6

hoogle

操作

キー 動作
<CR> ブラウザで該当するページを開く
p 詳細をプレビュー表示
a アクション一覧表示

検索結果のサイトを Vim で開く

unite.vim で検索結果が出ている時に a キーを押して open を選択するとそのリンク先を Vim で開きます。

hoogle2

もし、デフォルトのアクション(<CR>)で open をしたければ以下の設定を追加してください。

" "hoogle/web" だとうまく設定できなかったので適当に alias しておく…
" ちなみにこの設定は unite.vim 読み込み時でなければ反映されない
let g:unite_source_alias_aliases = {
\   "hoogle_web" : {
\       "source" : "hoogle/web"
\   }
\}
" デフォルトアクションを変更
call unite#custom#default_action('source/hoogle_web/*' , 'open')

また、この機能を利用する場合は以下のコマンドなどが別途必要になります。

必要なコマンドや Vim のバージョン

ちなみに手元の MacWindows だと lynx が悪いのかうまく動作しませんでした

おわり

と、言うことで簡単につくってみました。
割と突貫工事で作ったので不具合等があれば教えてもらえると助かります(と、いうか絶対にある)。
また、要望なんかも出来る範囲であれば取り込みますので Issues でも @pink_bangbi でもいいのでなにかあればリプください。