vim2hs
vim2hsはHaskellのハイライト表示を強力にしてくれます。
vimのデフォルトのハイライト表示では、トップレベルに記述した関数名がハイライトされなかったり、
QuasiQuoteがハイライトされなかったりと、若干貧弱です。
vim2hsを入れておけば、全体的に色分けが細かくなるし、
メジャーなQuasiQuoteはハイライト表示してくれます。
他にもgfでimport先に飛んだりとか、\x -> というラムダの表示を
λx -> に置き換えてくれるという、良く分からん機能もあります。
ghcmod-vim
ghcmod-vimはhaskellの静的解析をやってくれるghcmodを
vimと連携させて使うためのプラグインです。
以下の設定をしておくことで、ファイルを保存した際にコンパイラがエラーをチェックし、
エラー箇所をQuickfixに表示することが出来ます。
augroup ghcmodcheck
autocmd! BufWritePost <buffer> GhcModCheckAsync
augroup END
" $VIMRUNTIME/after/ftplugin/haskell.vimに保存しておく
Haskellではこまめにコンパイルして型のエラーをチェックするのが重要なので、
自動でチェックできるとかなり捗ります。
また、型推論によって、カーソルが示している関数がどういう型なのかを表示する機能があります。
ソースコードの状態によるので、常に動作するわけでは無いですが、
あれ、これ今どういう型になってんだろう、って時に非常に役に立ちます。
モナドのdo記法の中とか、型がイメージしづらい時などにも使えます。
html-template-syntax
HaskellのWebフレームワークYesodでは、hamletやjulius等、
Haskell独自のテンプレートエンジンを使っています。
html-template-syntaxはそれらをハイライト表示してくれます。
neco-ghc
neco-ghcはneocomplecacheでHaskellの関数を補完できるようにします。
import宣言時のモジュール名を補完したり、import済みの関数名を補完してくれます。
また、GHCの言語拡張機能の利用宣言も補完してくれます。
unite-haddock
unite-haddockはuniteのインターフェースからhaddockを検索して開くことができます。
デフォルトではローカルにインストールされているhaddockを開きますが、
tabキーでアクションを指定すれば、hackageのサイトを開くこともできます。
~/.cabal/configの設定がdocumentation: True
になっていれば、ローカルにhaddockがインストールされるので、
ネットが無い環境でも開きたい場合は、ローカルにhaddockごとインストールしておきましょう。
以上、Haskellを勉強中のVimmerによる、Haskellを書く時に役に立つVimプラグイン5つでした。