Posted at

VimでHaskellを書く時に入れておきたいプラグイン5つ

More than 5 years have passed since last update.


vim2hs

vim2hsはHaskellのハイライト表示を強力にしてくれます。

vimのデフォルトのハイライト表示では、トップレベルに記述した関数名がハイライトされなかったり、

QuasiQuoteがハイライトされなかったりと、若干貧弱です。

vim2hsを入れておけば、全体的に色分けが細かくなるし、

メジャーなQuasiQuoteはハイライト表示してくれます。

他にもgfでimport先に飛んだりとか、\x -> というラムダの表示を

λx -> に置き換えてくれるという、良く分からん機能もあります。

導入前

導入前

導入後

導入後


ghcmod-vim

ghcmod-vimはhaskellの静的解析をやってくれるghcmodを

vimと連携させて使うためのプラグインです。

以下の設定をしておくことで、ファイルを保存した際にコンパイラがエラーをチェックし、

エラー箇所をQuickfixに表示することが出来ます。


.vim/after/ftplugin/haskell.vim

augroup ghcmodcheck

autocmd! BufWritePost <buffer> GhcModCheckAsync
augroup END

" $VIMRUNTIME/after/ftplugin/haskell.vimに保存しておく


Haskellではこまめにコンパイルして型のエラーをチェックするのが重要なので、

自動でチェックできるとかなり捗ります。

また、型推論によって、カーソルが示している関数がどういう型なのかを表示する機能があります。

ソースコードの状態によるので、常に動作するわけでは無いですが、

あれ、これ今どういう型になってんだろう、って時に非常に役に立ちます。

モナドのdo記法の中とか、型がイメージしづらい時などにも使えます。

GhcModType

GhcModType


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つでした。